【问题标题】:SVN: Revision Numbers on a BranchSVN:分支上的修订号
【发布时间】:2013-09-20 09:22:47
【问题描述】:

关于分支上的 SVN 修订编号有几点我不清楚:

  1. 当我创建一个分支时,该分支是否有自己的修订号?
  2. SVN 如何处理分支上的修订编号?分支是否有自己的修订号序列,与主干和其他分支分开?还是整个 SVN 服务器只有一个序列号?为了澄清起见,请解释在分支上完成提交时会发生什么。

【问题讨论】:

    标签: svn version-control branch


    【解决方案1】:

    当我创建一个分支时,分支是否有自己的修订号?

    没有。整个存储库只有一个全局修订号。

    创建分支的提交将获得一个修订号。

    为了澄清,请解释在分支上完成提交时会发生什么。

    Subversion 本身并没有真正对分支有特别的支持或理解。这是所有关于如何在目录结构中布局文件的约定。

    因此,在“主干”上提交文件和在“分支”上提交文件没有区别。事实上,同一个提交可以跨多个分支更改文件。

    在内部创建分支和复制目录之间没有区别。我们(作为用户)只是赋予它不同的含义。

    与“标签”相同。这些只是您的代码在某个时间移动到另一个目录(就像一个分支)的副本,您打算保留它们而无需再次更改它们(但 Subversion 本身并不强制执行)。

    【讨论】:

    • 您提到“创建分支的提交将获得修订号。”你的意思是分支本身的创建被认为是一次提交?但是我们还没有提交任何新文件,那为什么会被认为是提交呢?
    • 创建分支意味着“将目录(通常是主干)复制到另一个位置(通常是分支/foo)”。对于只是正常提交​​的颠覆。你甚至可以将它与其他东西结合起来(但不推荐这样做)。
    • “但我们没有提交任何新文件”:您会创建(作为现有文件的副本)许多新文件,例如“branches/foo/VERSION.txt”、“分支/foo/src/main/java/x/A.java”等。可以想象,您甚至可以更改或重新排列其中一些文件,可能会在这里或那里增加版本号。
    【解决方案2】:
    1. 是的。修订号属于存储库;每个提交都有自己的修订号。

    2. 分支只是存储库中的一个子文件夹。它获取整个 repo 中唯一的修订号,就像所有其他子文件夹一样。当您提交到一个分支时,它的工作方式与您提交到 repo 的任何其他文件夹时完全相同。

    【讨论】:

    • 分支本身(我的意思是当我创建分支时)是否获得新的修订号?分支的创建本身是否被视为提交?
    • 是的,创建一个分支(复制一个文件夹)是一个提交,并获得一个修订号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多