DVCS对一个开发人员有用吗?

时间:2008-10-07 15:53:49

标签: version-control dvcs

或者传统的客户端 - 服务器VCS会更合适吗?我目前正在使用TortoiseSVN,但我对DVCS很感兴趣,但我不确定尝试使用类似的东西是不是一个好主意。

6 个答案:

答案 0 :(得分:15)

由于你仍然可以推送到另一台运行Git / Mercurial / Bzr / etc的机器,你仍然拥有多计算机备份安全性,你希望它有任何一种方式。但是,如果您在旅行时编码,拥有完整的存储库访问权限可能是一个巨大的优势,那么当您再次拥有网络连接/回家/等时,只需重新同步到您的服务器。

答案 1 :(得分:9)

是。在我看来,DVCS比传统的基于服务器的系统更适合单独开发。当有一个开发人员时,许多基于服务器的系统的功能只是不必要的复杂功能。

另一方面,如果你是独唱者,你可能不会注意到DVCS和SVN之间存在任何重大的生产力差异。

答案 2 :(得分:5)

我想是的。例如,如果您使用多台计算机,它会更好地扩展很多,因为合并更容易。其次,你可以离线提交,这一般来说很棒。

答案 3 :(得分:3)

我认真推荐使用分布式的。在Windows上,我选择了Mercurial并对它非常满意。

大专业人士:

  • 本地提交很快,可以经常提交(测试,代码,重构,提交)
  • 分支很简单
  • 无论身在何处,都可以提交。
  • 简单地移动文件(不再像我用来进入SVN那样混乱)
  • 更简单。一个软件可以完成所有工作(包括管理任务)
  • 文件系统更清洁。没有更多.svn无处不在,只有一个文件夹
  • 被忽略文件列表只是存储库中的另一个文件,会自动复制到每个克隆。比SVN更容易保持清洁。
  • Bitbucket.com很好,并提供一个免费的私人存储库

缺点:

  • (对某些人来说)GUI工具不存在
  • 您可能还需要SVN才能连接到各种源存储库。例如。需要使用两个系统。

答案 4 :(得分:3)

是。我为自己的爱好项目切换到DVCS(Git和Mercurial)有两个主要原因。首先是保留备份的问题,另一个是我经常旅行并且使用几台地理位置独立的计算机

快速轻松备份

我使用至少两个存储库克隆。一个是我的工作区中显而易见的本地一个,另一个是我保存在我的文件服务器(或githubbitbucket上的在线存储库)中的一个,我会在每次运行时转储完成当地的东西。进行备份就像同步存储库一样简单,换句话说就是将更改推送到上游。

在不同地点或计算机上工作

对于有爱好项目的开发人员而言,这可能不太常见,因为我倾向于四处旅行。除了我家里的电脑,我有时会留在父母身边,在那里我保留了我的旧电脑(这对于业余爱好编程来说足够快)。每当我想要攻击新功能时,我都可以在该计算机上执行此操作,然后只需同步存储库,这样当我回到家时我会收到这些更改。

轻松分支/合并

DVCS很自然地处理分支/合并已经不是什么秘密了。合并冲突确实发生,但即使没有集中版本控制工具中的那些,例如即使在简单的场景中,Subversion对合并也没有多大帮助。即使我不使用这个功能,通常用于个人项目,也有一些开发人员这样做。

我知道有一位编程承包商使用git来跟踪他自己在公司的专有系统上的工作,该系统仍在使用SourceSafe进行版本控制。 Git通过分支每个修复程序使他很容易跟踪单独的修复程序,即使他最终必须手动合并文件。当他有时间将文件签入SourceSafe时,他会查看不同分支中的差异以查看需要进行哪些更改然后再进行更改。让我们说他的大部分时间花在等待同伴赶上。

答案 5 :(得分:1)

对于单个开发人员,每个VCS都可以。我会选择一个,这很容易设置,几乎不需要配置。我个人喜欢Monotone。这是第一个,我仍然认为它是最好的之一。

实际上,我曾经玩过的最有趣的事情就是使用darcs,但它是用一种相当丑陋的语言(Haskell)编写的,从源代码开始在Mac OS X上构建它实际上已经非常痛苦了。 / p> 据说Git是一个很好的系统,但我不喜欢它包含多​​个二进制文件和脚本等等。我真正喜欢darcs和Monotone这样的系统,有一个二进制......就是这样。没有二进制文件的混乱,没有这种或那种语言的脚本,二进制文件,它可以做到这一切。