3

我正在使用 SVN 1.6 版,并且在使用命令行合并时遇到了很多问题。我正在尝试将单个修订版(我们称之为修订版#5)从一个分支合并到另一个分支。

我正在使用命令行进行合并。我在要合并的分支中进行了 CD,并且正在尝试以下命令:

  • svn 合并 -r4:5 FROMBRANCH 。
  • svn 合并 -r4:5 FROMBRANCH
  • svn 合并 -c5 FROMBRANCH 。
  • svn 合并 -c5 FROMBRANCH

这些命令似乎都不能正常工作。每次我发出合并命令然后执行“svn 状态”时,我都会得到一个很长的文件列表。该列表包括修订版 #5 中的文件,以及我不想合并的许多其他文件。

(注意:我一直在确保没有使用“svn status”在本地更改任何文件。我还一直在使用“svn revert .-R”在每次合并尝试后恢复更改)

有任何想法吗?谢谢!

4

1 回答 1

3

“svn status”显示的文件的长列表可能是由于“ mergeinfo ”属性更新。

正如这里解释的那样, 当合并到 <target branch> 时,Subversion 会更新 <target branch> 的所有子树中的现有 mergeinfo,这些子树具有 mergeinfo 属性集。

这种意外行为已在 Subversion 1.7 中得到解决

(来自Subversion 1.7更新日志)

如果子树不受合并影响,则合并不再在子树(具有自己的显式合并信息)上记录合并信息(描述合并)。对于拥有大量具有显式合并信息的子树的用户,这应该会大大减少虚假 svn:mergeinfo 属性更改的数量。

如果正在合并的更改包含 svn:mergeinfo 修改,这些仍将被应用,就像任何其他属性修改一样。因此,如果要合并的更改本身是使用 1.5 或 1.6 客户端执行的另一个合并的结果,则仍然可能发生过多的子树合并信息更改。仅由 1.7 客户端创建和维护的新分支将获得最佳结果。

于 2012-09-28T23:48:15.607 回答