代码之家  ›  专栏  ›  技术社区  ›  Thomas Owens

DVC对一个开发者有用吗?

  •  16
  • Thomas Owens  · 技术社区  · 16 年前

    还是传统的客户机-服务器VCS更合适?我目前正在使用Tortoissesvn,但我对DVC感兴趣,但我不确定尝试使用这种独奏是否是个好主意。

    6 回复  |  直到 13 年前
        1
  •  15
  •   Runevault    16 年前

    因为您仍然可以推到另一台运行git/mercurial/bzr/etc的机器上,所以您仍然有多台计算机的备份安全性,您希望这两种方法都有。但是,如果您在旅行中编写代码,拥有完整的存储库访问权限可能是一个巨大的优势,那么当您再次拥有网络连接/get home/etc时,只需重新同步到服务器即可。

        2
  •  9
  •   community wiki Kristopher Johnson    16 年前

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

    另一方面,如果你是单飞的话,你可能不会注意到DVC和SVN之间的生产力差异。

        3
  •  5
  •   EfForEffort    16 年前

    我想是的。首先,它是有刻度的。 许多的 如果使用多台计算机更好,因为合并更容易。第二,您可以离线提交,这通常非常好。

        4
  •  3
  •   mmiika    16 年前

    我真的建议使用分布式的。在Windows上,我选择了Mercurial,并对此非常满意。

    大利弊:

    • 本地提交速度快,可以经常提交(测试、代码、重构、提交)
    • 分支很简单
    • 你可以在任何地方承诺。
    • 移动文件很简单(不再像我使用SVN那样混乱)
    • 更简单。一个软件可以完成所有任务(包括管理任务)
    • 文件系统更干净。没有了。SVN无处不在,只有一个文件夹
    • 忽略的文件列表只是存储库中的另一个文件,并自动复制到每个克隆。比SVN更容易保持清洁。
    • bitback.com很不错,提供了一个免费的私有存储库

    欺骗:

    • (对于某些人)没有GUI工具
    • 您可能仍然需要SVN来连接到各种源存储库。例如,需要使用两个系统。
        5
  •  3
  •   Spoike Otávio Décio    15 年前

    对。有两个主要原因,我切换到DVC(Git和Mercurial)为我自己的爱好项目。第一个问题是 备份备份 另一个是我经常四处旅行 使用几个地理上独立的计算机 .

    快速简便的备份

    我至少使用两个存储库克隆。一个是明显的本地工作区,另一个是保存在文件服务器(或在线存储库,如 github bitbucket )每当我在本地完成这些工作时,我都会把它扔掉。进行备份和同步存储库一样简单,也就是说,将更改推到上游。

    在不同的位置或计算机上工作

    对于有爱好项目的开发人员来说,这可能是不太常见的情况,因为我喜欢四处旅行。除了家里的电脑之外,我有时会呆在父母家里,把旧电脑放在那里(这对于业余爱好编程来说,速度相当快)。每当我想破解新功能时,我都可以在那台计算机上完成,然后只需同步存储库,这样我回家后就能收到这些更改。

    易于分支/合并

    DVC可以非常自动地处理分支/合并,这不是什么秘密。合并冲突确实会发生,但即使没有集中的版本控制工具(如Subversion)中的冲突,即使在简单的场景中,也无法真正帮助合并。尽管我不经常在个人项目中使用这个特性,但还是有一些开发人员会这样做。

    我认识一个编程承包商,他使用Git跟踪自己在公司的一个专有系统上的工作,该系统仍在使用SourceSafe进行版本控制。Git通过对每个补丁进行分支,使他能够轻松地跟踪单独的补丁,即使他最终不得不手动合并文件。当他将文件签入到SourceSafe时,他将查看不同分支中的差异,以了解需要进行哪些更改,然后执行这些更改。我们可以说,他的大部分时间都花在了等待他的同龄人赶上。

        6
  •  1
  •   Mecki    16 年前

    对于一个开发者来说,每一个风投都是如此。我会选择一个,这很容易设置,而且根本不需要配置。我个人喜欢 Monotone . 这是第一次,我仍然认为它是最好的一次。

    实际上,我有过的最有趣的事情就是 darcs 但它是用一种相当难看的语言(haskell)编写的,实际上从源代码构建在MacOSX上已经很痛苦了。

    据说Git是一个很好的系统,但我不喜欢它由多个二进制文件和脚本等组成。对于像darcs和单调这样的系统,我真正喜欢的是,有一个二进制…就是这样。在二进制文件上没有杂乱的二进制文件,在这个或那个语言中没有脚本,它可以做到这一切。