views:

2891

answers:

2

I have an svn repository where I have trunk and a branch.

I intend to merge the trunk into the branch at regular intervals, however, when I do this I see many property status changes, in additional to actual file content changes.

On further investigation the property changes are mergeinfo properties. I wouldn't expect this because we always branch and merge from the top root level.

I used the svn propdel command and removed all mergeinfo properties from the branch WC (then reverted the change on the root) before merging trunk in, and the problem went away.

So the question is, how did my branch get all these mergeinfo changes in it at sub-directory levels?

+14  A: 

Subversion 1.5.x adds a lot of svn:mergeinfo properties, even on files/folders which you think have nothing to do with the merge. But Subversion still uses those to reduce the merge time for subsequent merges.

If you don't like those, you can safely remove those modified/added svn:mergeinfo properties from all files/folders which were not part of the merge (leave it on the working copy root and the files/folders that got changes from the merge).

Subversion 1.6 will have those svn:mergeinfo properties reduced a lot if everything goes as planned with the 1.6 release.

Stefan
+1. Good explanation. Possibly you know is it possible to disable modification of properties for those files which were not modified? It could be good to set up some option and don't worry about this any more. Thanks.
sergdev
Any idea whether this is server-side or client-side functionality?
ddimitrov
+3  A: 

Although this is quite an old question, I just thought that I would add that at least one part of this bug was fixed in subversion 1.5.5. From the 1.5.5 CHANGES file:

do not create mergeinfo for wc-wc moves or copies (r34184, -585)

That is, there was a bug in svn prior to 1.5 where it would create mergeinfo entries that it didn't use, and were superfluous.

Paul Wagland