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

Subversion:定期将供应商的源代码发布合并到主线中

  •  5
  • RjOllos  · 技术社区  · 15 年前

    每隔一段时间,我会收到一个供应商软件的新版本,作为压缩包中的源代码交付,我无权访问供应商的源代码存储库。我们在供应商的版本之间对其源代码进行更改。我们的更改没有被合并到它们的版本中,但是我需要将它们的版本中的更改合并到我的主线中。

    我的存储库布局如下:

    • /分支机构/供应商x版本1.0
    • /分支机构/供应商x版本1.1
    • 躯干/躯干/

    我遵循的工作流程是:

    1. 我添加了 供应商x版本1.0 然后把它复制到树干上。
    2. 我们对主干上的源代码做了一些更改,然后收到 供应商x版本1.1 .
    3. 我补充说 供应商x版本1.1 到一个分支。现在,我想合并 供应商x版本1.1 进入行李箱。

    我遇到的问题是,无论我如何尝试,我最终要么合并导致主干没有更改,要么每个文件都被报告为树冲突。

    我想我应该做以下的事情:告诉Subversion在不考虑文件修订号的情况下合并每个文件。我认为Subversion正在为每个文件报告一个树冲突,因为这些文件不是来自修订历史中的同一点。但是,在许多情况下,这些文件是相同的。

    提前感谢您的帮助。

    3 回复  |  直到 9 年前
        1
  •  5
  •   Simon    15 年前

    在非Subversion术语中,您希望将vendor x release 1.0和vendor x release 1.1之间的更改集成到您的主干中。

    我只创建一个供应商X分支,并使用标记来标识版本号。每当您收到新的供应商X版本时,请签出分支,将新版本的文件复制到您的工作目录中,应用 svn add svn delete 并承诺。Subversion现在对供应商x在两个版本中所做的一切都有正确的差异信息。之后,您可以将最后两个供应商版本(即供应商x分支中的最后两个EO版本)之间的更改与主干合并。

        2
  •  2
  •   dimba    15 年前

    imho您可以避免合并。这里是:

    1. 创建1.0分支
    2. 复制1.0到1.1
    3. 在1.1上执行所有必需的更改
    4. 复制1.1到主干。

    如果你仍然坚持合并,那么:

    1. 创建1
    2. 将1.0复制到主干
    3. 拷贝1到1.1
    4. 对1.1进行必要的更改
    5. 将对1.1的更改合并到主干。变化从1.1开始到结束。

    This 也可以帮忙

        3
  •  1
  •   RjOllos    9 年前

    我遵循的解决方案是:

    1. 为供应商软件创建了一个版本/行。
    2. 补充 释放1 到释放/线路。
    3. 分支发布/创建主干/然后用一个工作副本替换主干/包含我在之后所做的所有更改 释放1 .
    4. 签出1.0版的工作副本,并添加到1.1版中。坚信的。
    5. 合并发布/到主干/中。没有树冲突或合并冲突。