我使用“svn merge”命令将代码更改从分支合并到主干。合并完成后,我发现一些未在分支中修改的文件在trunk中被标记为“M”。我将这些文件区分开来并得到以下结果(例如);
xxxxx$ svn diff knife.sh
Property changes on: knife.sh
___________________________________________________________________
Modified: svn:mergeinfo
Merged /branches/development/LTE1227/knife.sh:r12198-14851
当我提交代码时,我发现这些文件在svn editor()中标记为“_M”,如下所示
2 --This line, and those below, will be ignored--
... ...
10 _M xxx.sh
11 _M knife.sh
... ...
_M在svn编辑器中的含义是什么?我不想提交这些更改以及如何从提交列表中删除这些“_M”文件?
答案 0 :(得分:3)
这意味着文件已更改属性,在您的情况下,它是svn:mergeinfo
属性。在SVN 1.7.0中,引入了API来区分对文件内容或其SVN属性的修改。房产变更看起来像这样:
_M knife.sh
纯文本修改看起来像您期望的那样:
M knife.sh
当您从不同的源合并到它们(即从主干到分支)时,svn:mergeinfo
属性会添加到文件中。 SVN使用此信息来记住已合并但尚未合并的内容,因此不会再次合并。
通常情况下保持开启(假设你有一个最近的版本,其中一些错误出现的常常被修复),但如果你真的想摆脱它,你可以恢复该文件。如果已提交,请使用propdel
命令:
svn propdel svn:mergeinfo knife.sh