5

我会定期收到供应商软件的新版本,以压缩包中的源代码形式交付,但我无权访问供应商的源代码存储库。我们会在其发布之间更改供应商的源代码。我们的更改不会合并到他们的版本中,但我需要将他们版本中的更改合并到我的主线中。

我的存储库布局如下所示:

  • /branches/供应商 X 版本 1.0
  • /branches/供应商 X 版本 1.1
  • /树干/

我遵循的工作流程是:

  1. 我将Vendor X 1.0 版添加为分支,然后将其复制到主干。
  2. 我们对主干上的源代码进行了一些更改,然后收到了Vendor X 1.1 版
  3. 我将Vendor X 1.1 版添加到了一个分支。现在,我想将Vendor X 1.1 版合并到主干中。

我遇到的问题是,无论我如何尝试,最终都会导致合并导致树干没有变化,或者每个文件都被报告为树冲突。

我想我想以某种方式执行以下操作:告诉 Subversion 合并每个文件而不考虑文件的修订号。我认为 Subversion 正在报告每个文件的树冲突,因为这些文件并非源自修订历史中的同一点。但是,在许多情况下,这些文件是相同的。

预先感谢您的任何帮助。

4

3 回答 3

5

在非颠覆方面,您希望将 Vendor X 版本 1.0 和 Vendor X 版本 1.1 之间的更改集成到您的主干中。

我将只创建一个 Vendor X 分支并使用标签来识别版本号。每当您收到新的供应商 X 版本时,检查分支,将新版本的文件复制到您的工作目录中,应用svn addsvn delete酌情提交。现在,对于供应商 X 在两个版本中所做的一切,Subversion 都有正确的差异信息。之后,您可以将最后两个供应商版本(也就是供应商 X 分支中的最后两个修订)之间的更改与主干合并。

于 2009-11-05T20:01:49.343 回答
2

恕我直言,您可以避免合并。就这个:

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

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

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

也可能有帮助

于 2009-11-05T20:12:19.643 回答
1

我遵循的解决方案是:

  1. 为供应商软件创建了发布/行。
  2. 将Release 1.0添加到 release/ 行。
  3. 分支 release/ 以创建 trunk/ ,然后将 trunk/ 替换为包含我在Release 1.0之后所做的所有更改的工作副本。
  4. 签出 1.0 版的工作副本并在 1.1 版中添加。坚定的。
  5. 合并发布/到主干/。没有树冲突或合并冲突。
于 2009-11-05T22:15:09.863 回答