On 1/9/2010 11:36 AM, David Huang wrote:
On Jan 9, 2010, at 7:58 AM, Geoff Rowell wrote:
I follow a few rules to avoid this:
1) Remove obsolete merge info as part of the branch creation process
(svn pd -R svn:mergeinfo /my/branch).
I don't do that regularly (but have done it once or twice), but from my understanding,
that fixes the "problem"/annoyance where existing subtree mergeinfo gets
updated every time a merge is done, even if the merge doesn't affect the files with
mergeinfo. That's not the same issue as what I'm seeing though; in my case, mergeinfo is
being created on files that didn't have it before.
FWIW, I made a backup of my repo, then in the backup, removed all mergeinfo
from trunk and made a new branch off of trunk. I confirmed that the branch
also has no mergeinfo. I then made a commit to the trunk and merged that
commit to the branch. It caused the same problem where mergeinfo was added
to every file in those 4 directories that have externals.
As a second test, I removed all the external definitions from trunk, made
yet another branch off of trunk, committed a change to trunk, then merged
the change to the branch. Mergeinfo was created on the root of the branch,
but nowhere else--which is what I wanted and expected.
So, it seems to have something to do with the externals, but I don't know what.