Abh*_*L L 5 svn merge mergeinfo
我们正在合并从主干到分支的变化.在我们执行此操作时,会记录合并信息.
由于分支中可能存在其他更改,是否有一种安全的方法只提交由于合并而受影响的文件(假设没有其他更改)以及合并属性/信息?
"假设我想从主干到分支合并修订版'r1'.我从主干到分支合并'r1'.现在为'r1',在分支文件夹中,记录合并信息.如果我做了在分支中的svn diff,它显示'.' 已修改,并显示'r1'是合并属性的一部分.现在我如何提交由于'r1'仅被合并而修改的文件,以及合并属性,其中显示'r1'."
如果您使用 TortoiseSVN 之类的 SVN 客户端,在正常合并中,它将mergeinfo
自动更新为根文件夹的文件夹属性,并且它将在提交文件列表期间列出属性发生更改的文件夹。
如果您的提交没有自动执行此操作,那么如果您使用 TortoiseSVN 客户端,您甚至可以通过以下步骤手动执行此操作(假设root
作为父级,mytask
作为当前任务分支,subtask
作为已从当前分支合并的反向分支以及programs
作为每个分支中的代码文件夹):
programs
分支的工作副本上的文件夹mytask
,然后选择选项TortoiseSVN-->Properties
。在新窗口中,如果您之前已经mergeinfo
记录过,那么它将列出属性svn:mergeinfo
,其值类似于以下值:
根/程序:1-489
根/任务/mytask/任务/子任务/程序:380-410
然后您可以执行以下步骤:
a) 通过选择 svn:mergeinfo 项在窗口中选择选项编辑-->高级,然后更新要提交的合并信息,然后单击“确定”。
在新窗口中,如果您之前没有任何内容mergeinfo
,则可以执行以下步骤:
a) 选择选项New-->Advanced
。
b)svn:mergeinfo
从下拉列表中选择,mergeinfo
在值文本框中添加适当的内容并保存。
programs
,它将列出programs
要提交的文件中的文件夹,只需更改属性即可提交。另一方面
如果您想在从父级到工作副本的合并过程中仅提交合并的文件,并保持本地修改的其他文件不提交,那么,没有直接的方法可以实现此目的。间接方法是保留任务分支 ( ) 的两个单独的工作副本(例如副本 1 和副本 2)mytask
并执行以下步骤:
copy1
正在进行所有本地更改,您可以将其搁置一段时间copy2
SVN 签出您分支的新工作副本。copy2
并提交。这可确保您仅将合并的更改与您想要的所有更改提交到服务器mergeinfo
。copy1
,执行 SVN 更新,它将获得从服务器到此工作副本的新合并更改。(如果有一些文件在合并期间更新,并且在本地更改期间也被您更改,那么在本次 SVN 更新期间将会发生冲突)。解决冲突后您就可以继续进行本地更改。 归档时间: |
|
查看次数: |
3514 次 |
最近记录: |