仅提交svn合并信息

Abh*_*L L 5 svn merge mergeinfo

我们正在合并从主干到分支的变化.在我们执行此操作时,会记录合并信息.

由于分支中可能存在其他更改,是否有一种安全的方法只提交由于合并而受影响的文件(假设没有其他更改)以及合并属性/信息?

"假设我想从主干到分支合并修订版'r1'.我从主干到分支合并'r1'.现在为'r1',在分支文件夹中,记录合并信息.如果我做了在分支中的svn diff,它显示'.' 已修改,并显示'r1'是合并属性的一部分.现在我如何提交由于'r1'仅被合并而修改的文件,以及合并属性,其中显示'r1'."

Rin*_*Tom 2

如果您使用 TortoiseSVN 之类的 SVN 客户端,在正常合并中,它将mergeinfo自动更新为根文件夹的文件夹属性,并且它将在提交文件列表期间列出属性发生更改的文件夹。

如果您的提交没有自动执行此操作,那么如果您使用 TortoiseSVN 客户端,您甚至可以通过以下步骤手动执行此操作(假设root作为父级,mytask作为当前任务分支,subtask作为已从当前分支合并的反向分支以及programs作为每个分支中的代码文件夹):

  1. 右键单击programs分支的工作副本上的文件夹mytask,然后选择选项TortoiseSVN-->Properties
  2. 在新窗口中,如果您之前已经mergeinfo记录过,那么它将列出属性svn:mergeinfo,其值类似于以下值:

    根/程序:1-489

    根/任务/mytask/任务/子任务/程序:380-410

    然后您可以执行以下步骤:

    a) 通过选择 svn:mergeinfo 项在窗口中选择选项编辑-->高级,然后更新要提交的合并信息,然后单击“确定”。

  3. 在新窗口中,如果您之前没有任何内容mergeinfo,则可以执行以下步骤:

    a) 选择选项New-->Advanced

    b)svn:mergeinfo从下拉列表中选择,mergeinfo在值文本框中添加适当的内容并保存。

  4. 通过单击文件夹来执行 SVN Commmit programs,它将列出programs要提交的文件中的文件夹,只需更改属性即可提交。

另一方面

如果您想在从父级到工作副本的合并过程中仅提交合并的文件,并保持本地修改的其他文件不提交,那么,没有直接的方法可以实现此目的。间接方法是保留任务分支 ( ) 的两个单独的工作副本(例如副本 1 和副本 2)mytask并执行以下步骤:

  1. copy1正在进行所有本地更改,您可以将其搁置一段时间
  2. copy2SVN 签出您分支的新工作副本。
  3. 将父级的更改合并copy2并提交。这可确保您仅将合并的更改与您想要的所有更改提交到服务器mergeinfo
  4. 然后转到您的copy1,执行 SVN 更新,它将获得从服务器到此工作副本的新合并更改。(如果有一些文件在合并期间更新,并且在本地更改期间也被您更改,那么在本次 SVN 更新期间将会发生冲突)。解决冲突后您就可以继续进行本地更改。