[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Question about excessive mergeinfo

From: Dave Huang <khym_at_azeotrope.org>
Date: Fri, 08 Jan 2010 19:09:27 -0600

Hi, I'm using svn 1.6.6 to merge a single revision from trunk to a branch,
and am getting a bunch of seemingly-unneeded mergeinfo. I've read
http://blogs.open.collab.net/svn/2009/11/where-did-that-mergeinfo-come-from.html
, but as far as I can tell, it doesn't address what I'm seeing.

Trunk has a bit of mergeinfo, which seems related to some renames that were
done a while back:

. - /branches/B1:20664-20666
Data\File.zip - /branches/B1/Data/file.zip:20664-20666
Other Data\File.zip - /branches/B1/Other Data/file.zip:20664-20666
Reports\SummaryByPeriod.rpt -
/branches/B1/Reports/SummaryByMonth.rpt:20664-20666
Other Reports\TopNSalesSummary.rpt - /branches/B1/Other
Reports/TopNCustomersSales.rpt:20664-20666
Reports\TopNSalesSummary.rpt -
/branches/B1/Reports/TopNCustomersSales.rpt:20664-20666
Other Reports\SummaryByPeriod.rpt - /branches/B1/Other
Reports/SummaryByMonth.rpt:20664-20666

The branch, NewBranch, was recently created, and the mergeinfo looks the same:

. - /branches/B1:20664-20666
Data\File.zip - /branches/B1/Data/file.zip:20664-20666
Other Data\File.zip - /branches/B1/Other Data/file.zip:20664-20666
Reports\SummaryByPeriod.rpt -
/branches/B1/Reports/SummaryByMonth.rpt:20664-20666
Other Reports\TopNSalesSummary.rpt - /branches/B1/Other
Reports/TopNCustomersSales.rpt:20664-20666
Reports\TopNSalesSummary.rpt -
/branches/B1/Reports/TopNCustomersSales.rpt:20664-20666
Other Reports\SummaryByPeriod.rpt - /branches/B1/Other
Reports/SummaryByMonth.rpt:20664-20666

Now, I cd into NewBranch's WC and do:

svn merge -c 26096 ^/trunk .

--- Merging r26096 into '.':
U Installers\Projects\CA\CA.ism

I now have a ton of mergeinfo on files that previously didn't have any.

svn propget svn:mergeinfo -R . [extra line breaks added to hopefully make it
easier to read]

Other Data\Stored Procedures - /trunk/Other Data/Stored Procedures:26096*
/branches/B1/Other Data/Stored Procedures:20664-20666

. - /trunk:26096
/branches/B1:20664-20666

Data\Views\v1.sql - /trunk/Data/Views/v1.sql:26096
/branches/B1/Data/Views/v1.sql:20664-20666

Other Data\Views\flatten.bat - /trunk/Other Data/Views/flatten.bat:26096

Other Data\Views\v2.sql - /trunk/Other Data/Views/v2.sql:26096
/branches/B1/Other Data/Views/v2.sql:20664-20666

Other Data\Views\v3.sql - /trunk/Other Data/Views/v3.sql:26096
/branches/B1/Other Data/Views/v3.sql:20664-20666
   [ ... a bunch more in Other Data\Views ... ]

Data\Views\v4.sql - /trunk/Data/Views/v4.sql:26096
/branches/B1/Data/Views/v4.sql:20664-20666
   [ ... a bunch more in Data\Views ... ]

Other Data\Stored Procedures\sp1.sql - /trunk/Other Data/Stored
Procedures/sp1.sql:26096
/branches/B1/Other Data/Stored Procedures/sp1.sql:20664-20666
   [ ... a bunch more in Other Data\Stored Procedures ... ]

Data\Stored Procedures\flatten.bat - /trunk/Data/Stored
Procedures/flatten.bat:26096
Data/Stored Procedures/sp2.sql:26096
/branches/B1/Other Data/Stored Procedures/sp2.sql:20664-20666
   [ ... a bunch more in Data\Stored Procedures ... ]

Other Data\Stored Procedures\flatten.bat - /trunk/Other Data/Stored
Procedures/flatten.bat:26096

Other Data\Views\flattenall.bat - /trunk/Other Data/Views/flattenall.bat:26096

Data\Stored Procedures\flatten_a.sed - /trunk/Data/Stored
Procedures/flatten_a.sed:26096

Data\Stored Procedures\flatten_b.sed - /trunk/Data/Stored
Procedures/flatten_b.sed:26096

Other Data\Stored Procedures\flatten_a.sed - /trunk/Other Data/Stored
Procedures/flatten_a.sed:26096

Other Data\Stored Procedures\flatten_b.sed - /trunk/Other Data/Stored
Procedures/flatten_b.sed:26096

Data\Views - /trunk/Data/Views:26096*
/branches/B1/Data/Views:20664-20666

Data\Views\flatten_a.sed - /trunk/Data/Views/flatten_a.sed:26096

Data\Views\flatten_b.sed - /trunk/Data/Views/flatten_b.sed:26096

Other Data\Views - /trunk/Other Data/Views:26096*
/branches/B1/Other Data/Views:20664-20666

Other Data\Views\flatten_a.sed - /trunk/Other Data/Views/flatten_a.sed:26096

Other Data\Views\flatten_b.sed - /trunk/Other Data/Views/flatten_b.sed:26096

Data\Views\flattenall.bat - /trunk/Data/Views/flattenall.bat:26096

Data\Stored Procedures - /trunk/Data/Stored Procedures:26096*
/branches/B1/Data/Stored Procedures:20664-20666

Data\Views\flatten.bat - /trunk/Data/Views/flatten.bat:26096

Data\File.zip - /trunk/Data/File.zip:26096
/branches/B1/Data/file.zip:20664-20666

Other Data\File.zip - /trunk/Other Data/File.zip:26096
/branches/B1/Other Data/file.zip:20664-20666

Other Reports\SummaryByPeriod.rpt - /trunk/Other
Reports/SummaryByPeriod.rpt:26096
/branches/B1/Other Reports/SummaryByMonth.rpt:20664-20666

Reports\SummaryByPeriod.rpt - /trunk/Reports/SummaryByPeriod.rpt:26096
/branches/B1/Reports/SummaryByMonth.rpt:20664-20666

Reports\TopNSalesSummary.rpt - /trunk/Reports/TopNSalesSummary.rpt:26096
/branches/B1/Reports/TopNCustomersSales.rpt:20664-20666

Other Reports\TopNSalesSummary.rpt - /trunk/Other
Reports/TopNSalesSummary.rpt:26096
/branches/B1/Other Reports/TopNCustomersSales.rpt:20664-20666

It's probably relevant to note that the various flatten* files are externals:

Other Data\Stored Procedures - -r26096
^/Build%20Scripts/flattensp/flatten.bat flatten.bat
-r26096 ^/Build%20Scripts/flattensp/flatten_a.sed flatten_a.sed
-r26096 ^/Build%20Scripts/flattensp/flatten_b.sed flatten_b.sed

Other Data\Views - -r26096 ^/Build%20Scripts/flattenview/flatten.bat flatten.bat
-r26096 ^/Build%20Scripts/flattenview/flatten_a.sed flatten_a.sed
-r26096 ^/Build%20Scripts/flattenview/flatten_b.sed flatten_b.sed
-r26096 ^/Build%20Scripts/flattenview/flattenall.bat flattenall.bat

Data\Stored Procedures - -r26096 ^/Build%20Scripts/flattensp/flatten.bat
flatten.bat
-r26096 ^/Build%20Scripts/flattensp/flatten_a.sed flatten_a.sed
-r26096 ^/Build%20Scripts/flattensp/flatten_b.sed flatten_b.sed

Data\Views - -r26096 ^/Build%20Scripts/flattenview/flatten.bat flatten.bat
-r26096 ^/Build%20Scripts/flattenview/flatten_a.sed flatten_a.sed
-r26096 ^/Build%20Scripts/flattenview/flatten_b.sed flatten_b.sed
-r26096 ^/Build%20Scripts/flattenview/flattenall.bat flattenall.bat

The externals originally didn't have the "-r26096"; I added that in both
trunk and the branch to see if it'd change anything, but it didn't. It seems
that the extra mergeinfo has something to do with the externals though...
each directory that has an external definition gets non-inheritable
mergeinfo for /trunk, and every file in that directory gets inheritable
mergeinfo for the same revision.

Why is svn doing that? Putting non-inheritable mergeinfo on the directory,
then putting the same mergeinfo on the files in that directory seems to be
the equivalent of just putting inheritable mergeinfo on the directory. Is it
to prevent mergeinfo from propagating down to any new files/directories that
are added later? Not really sure what the purpose of that would be though...

In any case, is there something I can do to have it not touch a bunch of
mergeinfo each time I merge to this branch?
Received on 2010-01-09 02:10:03 CET

This is an archived mail posted to the Subversion Users mailing list.