我不是一名专业程序员,但是我做了一些小型独奏项目,我希望进行一些版本控制和同步,但是通过记住提交和结帐(在不同的计算机上)的过程更麻烦,比如说,将代码保存在一个Dropbox文件夹中,该文件夹会在文件更改时自动上传到云端。使用当前副本对我来说完全透明,但没有版本控制。 (同步也是一种痛苦,因为我回家后经常几天都不打开笔记本电脑。)
有没有办法让代码库在文件更改时自动提交(或者每隔几分钟),如果我想从另一台计算机上继续工作,是否会自动下载最新版本?
谢谢!
答案 0 :(得分:5)
这取决于你的“项目”是什么。
Flashbake是在科幻作家Cory Doctorow想要定期自动捕捉和编写他的写作过程之后创建的:
每隔15分钟,Flashbake会查看您要求它检查的任何文件(我看看我正在进行的所有虚构,我的待办事项列表,我的有用信息文件以及已完成的电子版本我记录了自上次检查以来所做的任何更改,用系统时钟上的当前时区注释它们,从Google获取该时区的天气,以及最后三个标题与你的下线你的博客RSS源(我一直把它描述为“我在哪里,它在那里是什么样的,我在想什么?”)。它还记录您的计算机的正常运行时间。对于未来版本,我认为播放音乐播放器播放的最新三首歌会很有趣。 (source)
它基于用于版本控制的git和用于自动更新的cron(git足够节省空间以使其易于处理)。 您可能需要查看another review。代码为here。
如果你真的非常希望文件修改检测而不是每隔X分钟提交一次(也就是对数据的偏执),你可能需要something based on inotify(details - 注意那些自动提交可能会很快加起来!)。
另一个选项(不一定解决自动提交问题,所以你可能想要混合)是看看在dropbox上运行git。这有already been discussed here on SO。
答案 1 :(得分:1)
Dropbox在历史记录中保留了少量版本的文件。很难称之为“版本控制”,但您可以在过去的某个时间恢复文件。
如果你真的不能为提交和合并而烦恼,我会说只使用Dropbox,因为它很好并且是自动的。
您可以设置每5分钟进行一次提交/推送的计划任务(如果在Windows上)或Cron作业(如果是Linux)。每次启动计算机时都会拉/更新。 但是,当需要手动合并时,我可以看到潜在的噩梦等待发生,特别是在拉/更新时。
另外,我建议使用Mercurial,因为它比git更容易学习/处理,并且比svn更先进。这将从版本控制系统中消除一些痛苦。