代码之家  ›  专栏  ›  技术社区  ›  Martin

请帮助我论证为什么系统构建工具不应该自动执行SVN签入

  •  2
  • Martin  · 技术社区  · 17 年前

    针对版本控制的自动签入提出理由

    现在 ,作为一名程序员,我最初的直觉反应是,除了一个人之外,不应该再调用“svn up”和“svn ci”。在最近的一个案例中,一堆文件的.rNNNN合并版本破坏了这些工具,这就是本次讨论的起点。

    ,设计工具的家伙基本上承认他使用SVN是为了同步周围的文件,他基本上可以用NFS挂载取代所有这些。他甚至说他会将“svn diff”包装成“make diff”,因为这似乎比我们所有人都知道svn是如何工作的要好。

    所以 我要求这里的人群帮助我为没有makefile、shell脚本等wrap Subversion命令做一个很好的论证,因为Subversion基本上是用来在不同的机器上同步文件的。

    1. 我们并没有对这些数据进行真正的版本控制,所以它不应该放在svn中。
    2. 我们说过它可以被NFS挂载所取代,那么我们为什么不这样做呢。
    3. 国产工具现在正在包装SVN,而软件总是会有bug,因此我们的SVN修订版现在会在遇到bug时把一个修订版弄得一团糟。

    ... 请讨论/帮助我提出这个理由,或者告诉我你为什么不同意!

    4 回复  |  直到 17 年前
        1
  •  4
  •   Neil Trodden    17 年前

    SVN是在机器上同步文件的好工具!如果我想让一堆机器拥有完全相同的文件版本,那么让它们在subversion中并能够检出它们简直是天赐良机。是的,您可以使用诸如rsync或NFS挂载之类的工具使它们保持最新,但至少subversion允许您存储所有修订并在需要时回滚/转发。

    不过,我要说的一件事是,让机器从主干自动更新可能是个坏主意。当这些文件可能破坏系统时,它们应该从标记更新。通过这种方式,您可以检入内容并维护修订历史记录测试它们,然后应用一个标记,在其他计算机上的文件更新时同步这些文件。

    我理解您对这些工具自动提交的担忧,因为您可能觉得需要某种人工验证,但对我来说,删除人工交互将从流程中删除人为错误,这正是我希望从此类系统中删除的。

    在svn树上设置生产标记之前,当您确认所有操作都正常工作时,人的方面应该考虑在内。

    总之,您的流程是好的,盲目地允许自动化流程将文件推送到一个可能会破坏内容的环境中是不行的。

        2
  •  2
  •   Remus Rusanu    17 年前

        3
  •  1
  •   Binary Worrier    17 年前

    Old shoe v's the glass bottle 辩论 在这种情况下,NFS装载可能是一种方式,我们的夜间构建提交版本控制更改,就是这样。

    您可以使用SVN存储库来帮助版本和构建代码。如果你正在做的事情在任何方面危及到这一点,那么不要这样做。

    如果SVN绝对是做到这一点的最佳方法,那么创建一个单独的存储库并使用它,而不使用关键存储库。

        4
  •  0
  •   Paweł Polewicz    17 年前

    只有人类才应该提交,但我认为没有理由禁止自动签出和更新。唯一的事情是确保人类将工作和测试代码提交到进行自动更新的地方。

    ls glusterfs目录,因为它是O(文件数))。

    Neil Trodden 在这个帖子的标签上贴了一条很好的评论,我想这会解决你的问题。

    推荐文章