版本控制与您自己协调

时间:2009-02-02 16:52:06

标签: svn git version-control

对于我业余时间的编程,我有一台台式机和一台笔记本电脑(两台都是Mac机,但我怀疑这会对这个问题产生影响)。我已经在他们两个上安装了VMware,使用Linux映像来运行我的代码。它们是相同的图像,所以我在两个地方都有相同的环境。

诀窍在于我喜欢对我的所有编码使用版本控制,即使我没有与其他人协调。我想在我正在使用的任何系统上看到我的代码的最新版本。

我不想一直依赖于网络访问 - 我可能在没有Wi-Fi的地方进行编码(是的,这种情况很少见,但有些地方仍处于石器时代)。我正在考虑使用git,但是如果我在本地提供了存储库,那么像SVN这样的东西也可以。或者笔记本电脑可能成为SVN服务器,而桌面则会访问它。

以前有人做过这种事吗?任何陷阱/陷阱/经验教训?

8 个答案:

答案 0 :(得分:7)

如果您无法随时访问网络,我强烈推荐使用git。

但是,如果您仍然需要使用subversion存储库,那么使用git-svn仍然可以充分利用这两个世界。

答案 1 :(得分:7)

好吧,我绝对建议您查看分布式系统而不是Subversion。这将满足您不依赖于网络访问的要求,并且可能更适合您的工作流程。分布式VCS的主要选择是gitMercurial(也称为“hg”)和Bazaar(或“bzr”)。我个人的偏好是Mercurial,但它们都相当可比。

然而,Mercurial确实拥有的一件事(并且在你的情况下它会非常有用)是“hg serve”命令。你可以在这里阅读:Informal sharing with "hg serve"。基本上它设置了一个非常简单(临时)的服务器,允许通过网络提取存储库。我一直使用它来保持我的台式机和笔记本电脑之间的代码同步。如果我在笔记本电脑上做了一些更改,我只需在那里运行“hg serve”,然后从桌面“hg pull”,或者反之亦然,如果我一直在桌面上工作。

总的来说,我肯定建议调查分布式系统,我认为他们会尽力设置你想要的环境。网上有大量有关使用所有这些信息的信息。我没有花太多时间与其他人,但如果你想尝试Mercurial,this free online book covers pretty much everything you'll need to get started

答案 2 :(得分:2)

无论您做什么,请确保定期备份您的存储库。如果您的笔记本电脑存放您的存储库,则尤其如此您还需要考虑如果您的笔记本电脑被盗会发生什么。最好使用git并将存储库保留在桌面上。

答案 3 :(得分:1)

作为已经提及的Git的替代方案,我强烈推荐Bazaar。它是一个分布式VCS,就像git一样,虽然存在一些差异。

对于(当然有点偏颇)比较,请查看this page

答案 4 :(得分:1)

如果你是在简单(设置)之后,SVN很好。它在没有网络连接的情况下工作,因为您的整个历史记录保存在每个同步的PC上,并且SVN + SSH是TRIVIAL设置的。它使用SSH的内置功能来运行程序,所以如果你设置了SSH服务器,你只需要创建一个存储库,一切正常......没有任何服务器设置。

这也可以作为您的备份,因为您在同步的每台计算机上都有整个存储库。

分布式版本控制系统也很有意思,但我认为前期投资较高,但它的优点是可以在不连接的情况下保存到存储库(如果你单独工作,但不是太关键,但能够检查点并且在任何地方回滚都可以获得它的优势。)

答案 5 :(得分:0)

当您无权访问存储库时,SVN变得非常难以使用。由于我在一台计算机上完成了所有的开发工作,所以我对SVN做得很好,但是你可能觉得它不那么容易。从我所听到的,这正是git旨在处理的问题 - 它允许你进行在本地副本中注册的提交,然后在你访问它时将它们全部上传到存储库。

答案 6 :(得分:0)

您可以考虑购买SVN主机 - 它们相当实惠,让您不必处理自己的网络连接:

http://www.google.com/search?hl=en&q=svn+hosting&btnG=Google+Search&aq=f&oq=

答案 7 :(得分:0)

我最喜欢的VCS是darcs,因为它支持补丁挑选。它是一个分布式VCS,非常易于使用。