我在两台计算机上开发个人项目,而无需使用共享服务器或两者之间的网络连接。
是否有任何通用的版本控制系统可靠地支持将便携式存储设备(例如USB闪存设备)用作共享存储库?
我在两台计算机上开发个人项目,而无需使用共享服务器或两者之间的网络连接。
是否有任何通用的版本控制系统可靠地支持将便携式存储设备(例如USB闪存设备)用作共享存储库?
Answers:
分布式版本控制系统没有共享的中央服务器。
使用DVCS,存储库的每个副本都拥有完整的历史记录-所有内容。这意味着,当在USB闪存盘上使用时,您对USB闪存盘上的存储库所做的任何更改都会在此历史记录中保留。
除了上面建议的GIT,Mercurial等外,还可以看一下Fossil-它的优点是运行时二进制文件很小(对于Windows和Linux,运行时间二进制文件约为1Meg),可移植且零安装。因此,与其他设备(据我所知)不同,它可以放在存储设备上并在插入存储设备的任何计算机上运行,而无需首先在计算机上安装应用程序。它包括一个Wiki和带有仓库的变更/缺陷跟踪系统。它还内置了gui。
我没有认真使用它(我主要使用GIT),但是它的轻量级方法给人留下了深刻的印象,并且包含Wiki和缺陷跟踪器使其非常适合小型项目。我唯一担心的是,GIT的某些更强大的功能可能无法实现,并且与GIT不同,用户社区并不庞大,以至于很容易找到问题的答案。
使用DCVS可能是一个好主意,但这不是唯一的选择。
我在USB拇指驱动器上有一个小的CVS存储库。当我要访问它时,我只需要使用cvs -d <path>
或设置$CVSROOT
存储库根目录的路径(当然,这需要将拇指驱动器安装在系统上)。
如果您已经习惯使用CVS,则应该可以使用。SVN也应如此。这只是意味着您的中央存储库位于拇指驱动器上,并不总是可见的。
通常有使用DCVS而不是CVS的争论。我认为中央存储库是在拇指驱动器还是其他位置上不会特别影响那些论点。例如,您可以轻松地在拇指驱动器上创建git存储库。
作为其他答案的补充:
虽然DVCS非常适合解决此问题,但从技术上讲,如果您觉得更舒适,也可以使用Subversion。Subversion可以使用本地目录而不是中央服务器。您可以将其放在拇指驱动器上并使用。
与DVCS相比,缺点是您只能在插入拇指驱动器时使用Subversion(即提交,查看日志等)。而且,它必须始终是相同的拇指驱动器(或至少是向上驱动器) -最新副本),因为在Subversion中,您不应使用多个存储库(这是未分发的部分)。因此,如果您忘记了拇指驱动器,就无法使用它,与Git或Mercurial不同。
注意:
如上所述,在评论中,DVCS确实更适合您的问题。出于完整性考虑,我仅提到Subversion,以防万一您出于特殊原因需要使用Subversion。
svn
(或什至是Cvs)可能会偏重于使用该解决方案,但是出于全面披露的目的,还应提及该方法的缺点。随时将我评论中的要点编辑为您的答案。如果您愿意,我很乐意清理(删除)我的评论。* 8')