dropbox-style svn/git/mercurial?:更改和自动结帐时自动提交

jpm*_*ris 8 svn git version-control synchronization dropbox

我不是一个专业的程序员,但我做了一些小型独奏项目,我想要一些版本控制和同步,但是经历记住提交和结账(在不同的计算机上)的过程比说,保持更麻烦Dropbox文件夹中的代码,在文件更改时自动上传到云端.使用当前副本对我来说完全透明,但没有版本控制.(同步也是一种痛苦,因为我回家后经常几天都不打开笔记本电脑.)

有没有办法让代码库在文件更改时自动提交(或者每隔几分钟),如果我想从另一台计算机继续工作,可以自动下载最新版本?

谢谢!

hui*_*ker 5

这取决于你的"项目"是什么.

Flashbake是在科幻作家Cory Doctorow想要定期自动捕捉和编写他的写作过程之后创建的:

每隔15分钟,Flashbake会查看您要求它检查的任何文件(我看着我正在进行的所有小说,我的待办事项列表,我的有用信息文件以及我最近的书籍的完整电子版本) ),并记录自上次检查以来所做的任何更改,使用系统时钟上的当前时区注释它们,从Google获取该时区的天气,以及在博客的RSS中使用您的下划线的最后三个标题饲料(我一直把它描述为"我在哪里,那里是什么样的,我在想什么?").它还记录您的计算机的正常运行时间.对于未来版本,我认为播放音乐播放器播放的最新三首歌会很有趣.(来源)

它基于用于版本控制的git和用于自动更新的cron(git足够节省空间以使其易于处理).您可能想看另一篇评论.代码在这里.

如果你真的,真的想要文件修改检测而不是每X分钟一次提交(也就是对数据的偏执),你可能想要基于inotify的东西(细节 - 请注意那些自动提交可能会很快加起来!).

另一个选择(不一定解决自动提交问题,所以你可能想要混合)是看看在Dropbox上运行git.这已经在SO上讨论过了.


jpm*_*ris 0

所以我最终做的是使用 Synology 的云同步(但我过去使用的是 btsync )在多台计算机之间同步我的代码库。这创建了我一直在寻找的即时“自动同步”功能,并且它对我来说是完全透明的。(这也解决了如上所述的臃肿的自动提交问题)通过这种方式,您可以获得版本控制和自动同步(或者被迫每天提交,或者担心在需要离开计算机时必须提交,或者必须处理在关闭笔记本电脑之前出现的任何提交错误,或者最重要的是必须依靠自己的错误记忆来记住每天提交(对我来说是一个大错误!))。不应该使用 git 进行同步(git 的意思是版本时间点,而不是同步)。注意:只需观察如何同步 .git 文件夹,这样就不会通过同步破坏一台计算机上的工作与另一台计算机上的工作。如果您将 .git 列入黑名单,您仍然可以克隆存储库并从任一计算机推送(但仍然不会通过将 .git 从一台计算机同步到另一台计算机来破坏事情)。