What does _M mean as a result of svn status
I used the "svn merge" command to merge a code change from branch to trunk. After completing the merge, I found that some files that hadn't changed in the branch were makred "M" in the torso. I diff these files and get below output (for example);
xxxxx$ svn diff knife.sh
Property changes on: knife.sh
___________________________________________________________________
Modified: svn:mergeinfo
Merged /branches/development/LTE1227/knife.sh:r12198-14851
When I submit the code, I found that this file was marked as "_M" in the svn editor () as shown below
2 --This line, and those below, will be ignored--
... ...
10 _M xxx.sh
11 _M knife.sh
... ...
What does _M mean in svn editor? And I don't want to commit these changes and how can I remove these "_M" files from the commit list?
source to share
This means that the file has property changes, and in your case it is a property svn:mergeinfo
. In SVN 1.7.0, an API was introduced to distinguish between modifications to the content of a file or its SVN properties. Although the property change looks like this:
_M knife.sh
The text modification looks like what you would expect:
M knife.sh
The property is svn:mergeinfo
added to files when you merge from another source into them, that is, from the trunk to the branch. SVN uses this information to remember what has already been and has not been merged, so it no longer merges.
It is usually useful to keep it (assuming you have the latest version, where some bugs with it appear too often, have been fixed), but if you really want to get rid of it, you can simply return this file. If already done, use the command propdel
:
svn propdel svn:mergeinfo knife.sh
source to share