或者传统的客户端 - 服务器VCS会更合适吗?我目前正在使用TortoiseSVN,但我对DVCS很感兴趣,但我不确定尝试使用类似的东西是不是一个好主意。
答案 0 :(得分:15)
由于你仍然可以推送到另一台运行Git / Mercurial / Bzr / etc的机器,你仍然拥有多计算机备份安全性,你希望它有任何一种方式。但是,如果您在旅行时编码,拥有完整的存储库访问权限可能是一个巨大的优势,那么当您再次拥有网络连接/回家/等时,只需重新同步到您的服务器。
答案 1 :(得分:9)
是。在我看来,DVCS比传统的基于服务器的系统更适合单独开发。当有一个开发人员时,许多基于服务器的系统的功能只是不必要的复杂功能。
另一方面,如果你是独唱者,你可能不会注意到DVCS和SVN之间存在任何重大的生产力差异。
答案 2 :(得分:5)
我想是的。例如,如果您使用多台计算机,它会更好地扩展很多,因为合并更容易。其次,你可以离线提交,这一般来说很棒。
答案 3 :(得分:3)
我认真推荐使用分布式的。在Windows上,我选择了Mercurial并对它非常满意。
大专业人士:
缺点:
答案 4 :(得分:3)
是。我为自己的爱好项目切换到DVCS(Git和Mercurial)有两个主要原因。首先是保留备份的问题,另一个是我经常旅行并且使用几台地理位置独立的计算机。
我使用至少两个存储库克隆。一个是我的工作区中显而易见的本地一个,另一个是我保存在我的文件服务器(或github或bitbucket上的在线存储库)中的一个,我会在每次运行时转储完成当地的东西。进行备份就像同步存储库一样简单,换句话说就是将更改推送到上游。
对于有爱好项目的开发人员而言,这可能不太常见,因为我倾向于四处旅行。除了我家里的电脑,我有时会留在父母身边,在那里我保留了我的旧电脑(这对于业余爱好编程来说足够快)。每当我想要攻击新功能时,我都可以在该计算机上执行此操作,然后只需同步存储库,这样当我回到家时我会收到这些更改。
DVCS很自然地处理分支/合并已经不是什么秘密了。合并冲突确实发生,但即使没有集中版本控制工具中的那些,例如即使在简单的场景中,Subversion对合并也没有多大帮助。即使我不使用这个功能,通常用于个人项目,也有一些开发人员这样做。
我知道有一位编程承包商使用git来跟踪他自己在公司的专有系统上的工作,该系统仍在使用SourceSafe进行版本控制。 Git通过分支每个修复程序使他很容易跟踪单独的修复程序,即使他最终必须手动合并文件。当他有时间将文件签入SourceSafe时,他会查看不同分支中的差异以查看需要进行哪些更改然后再进行更改。让我们说他的大部分时间花在等待同伴赶上。
答案 5 :(得分:1)