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

Re: Merging and gratuitous display of explicit mergeinfo.

From: Hyrum K. Wright <hyrum_wright_at_mail.utexas.edu>
Date: Fri, 07 Mar 2008 09:04:20 -0600

Paul Burba wrote:
> On Fri, Mar 7, 2008 at 9:22 AM, Paul Burba <ptburba_at_gmail.com> wrote:
>> On Fri, Mar 7, 2008 at 1:19 AM, Karl Fogel <kfogel_at_red-bean.com> wrote:
>> > At http://pastebin.ca/931468, you can see some merge behavior that
>> > surprised me. I merged one revision from trunk to branch, affecting
>> > two files. But afterwards, my formerly pristine branch working copy
>> > showed *10* files changed: two of them were the ones I expected, and
>> > the others had property changes to -- you guessed it -- svn:mergeinfo.
>>
>> A theory on what might have happened:
>>
>> 1) These files all had explicit svn:mergeinfo in trunk and 1.5.x:
>>
>>
>> www/images/subversion-diagram.png
>>
>> www/images/subversion_logo-200x173.png
>>
>> www/images/subversion_logo_hor-468x64.png
>>
>> www/images/subversion_logo-384x332.png
>> notes/reintegrate-todo.txt
>>
>> notes/tree-conflicts/scratch-pad.txt
>>
>> 2) Mike upgrades the server to 1.5.0 alpha 2
>>
>> 3) Hyrum checks out a new 1.5.x WC, which includes explicit mergeinfo
>> on the six files.
>>
>> 4) Mike filters out all existing mergeinfo from the repository and
>> converts svnmerge-integrated props to svn:mergeinfo. The six files in
>> 1) no longer have mergeinfo.
>>
>> 6) In r29759 Hyrum merges some changes from trunk to his 1.5.x WC,
>> which still has explicit mergeinfo on the 'six'. This mergeinfo
>> doesn't exist in the repository so when he commits the backport we see
>> mergeinfo added to the six files:
>>
>> C:\SVN\src-branch>svn info
>> Path: .
>> URL: http://svn.collab.net/repos/svn/branches/1.5.x
>> Repository Root: http://svn.collab.net/repos/svn
>> Repository UUID: 612f8ebc-c883-4be0-9ee0-a4e9ef946e3a
>> Revision: 29766
>> Node Kind: directory
>> Schedule: normal
>> Last Changed Author: kfogel
>> Last Changed Rev: 29766
>> Last Changed Date: 2008-03-07 01:30:08 -0500 (Fri, 07 Mar 2008)
>>
>> C:\SVN\src-branch>svn diff -r29758:29759 www
>>
>> Property changes on: www\images\subversion-diagram.png
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /trunk/www/images/subversion-diagram.png:r29567-29568,29578,29678
>>
>>
>> Property changes on: www\images\subversion_logo-200x173.png
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /trunk/www/images/subversion_logo-200x173.png:r29567-29568,29578,29678
>>
>>
>> Property changes on: www\images\subversion_logo_hor-468x64.png
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /trunk/www/images/subversion_logo_hor-468x64.png:r29567-29568,29578,29678
>>
>>
>> Property changes on: www\images\subversion_logo-384x332.png
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /trunk/www/images/subversion_logo-384x332.png:r29567-29568,29578,29678
>>
>> C:\SVN\src-branch>svn diff -r29758:29759 notes
>>
>> Property changes on: notes\reintegrate-todo.txt
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /branches/sqlite-mergeinfo-without-mergeinfo/reintegrate-branch-TODO:r28127-28195
>> Merged /branches/whole-branch-merge/reintegrate-branch-TODO:r28245-28427
>> Merged /branches/reintegrate/reintegrate-branch-TODO:r28428-28977
>> Merged /trunk/notes/reintegrate-todo.txt:r29567-29568,29578,29678
>> Merged /branches/sqlite-deep-copies/reintegrate-branch-TODO:r28196-28244
>> Merged /branches/sqlite-node-origins/reintegrate-branch-TODO:r27841-27889
>> Merged /branches/mergeinfoless-copies/reintegrate-branch-TODO:r27771-28001
>>
>>
>> Property changes on: notes\tree-conflicts\scratch-pad.txt
>> ___________________________________________________________________
>> Added: svn:mergeinfo
>> Merged /trunk/notes/tree-conflicts/scratch-pad.txt:r29567-29568,29578,29678
>>
>> 7) Now Karl updates his 1.5.x WC or checks out a new one, either way
>> he gets the subtree mergeinfo from 6, so diff/stat aren't going to
>> show anything unusual.
>>
>> Paul
>
> This definitely seems to be what happened, if I checkout a shiny new
> WC and attempt to replicate Hyrum's r29759, there is not explicit
> mergeinfo on the six and none gets set/modified (except on the root of
> course):

Hmm, I could have sworn that I did a re-checkout of all my working
copies post-cmpilato's upgrade. I thought the mergeinfo conversion
happened at the same time as the upgrade, but if it didn't, I can see
how a window would have opened up to allow this to happen.

In any case, I'm sorry if I screwed stuff up. :(

> C:\SVN>svn co http://svn.collab.net/repos/svn/branches/1.5.x@29758 1.5.x -q
>
> C:\SVN>svn pg svn:mergeinfo -R 1.5.x
> 1.5.x - /trunk:1-29080,29085-29089,29091,29094-29107,29111,29114,29117,29126-29127,29129-29133,29135-29150,29153-29164,29166,29174,29176-29186,29189,29193-
> 29194,29198-29200,29202-29206,29208-29251,29254-29256,29261,29267-29273,29277,29280-29281,29284,29287-29303,29305-29307,29309-29325,29327-29343,29345-29348
> ,29358-29379,29381-29392,29397,29399,29401,29409,29412,29414-29415,29417-29423,29425-29426,29429,29433-29434,29436-29438,29440-29447,29449-29466,29468-2947
> 8,29482,29484,29486-29487,29489,29491,29493,29496,29498,29508,29527-29528,29539-29540,29546,29553,29556,29559,29565,29567-29569,29571-29578,29583,29591,295
> 94,29614,29619,29623,29625-29626,29634,29671-29672
>
> C:\SVN>svn merge http://svn.collab.net/repos/svn/trunk 1.5.x -c29678
> --- Merging r29678 into '1.5.x':
> U 1.5.x\subversion\tests\cmdline\getopt_tests.py
>
> C:\SVN>svn st 1.5.x
> M 1.5.x
> M 1.5.x\subversion\tests\cmdline\getopt_tests.py
>
> C:\SVN>svn pg svn:mergeinfo 1.5.x -R
> 1.5.x - /trunk:1-29080,29085-29089,29091,29094-29107,29111,29114,29117,29126-29127,29129-29133,29135-29150,29153-29164,29166,29174,29176-29186,29189,29193-
> 29194,29198-29200,29202-29206,29208-29251,29254-29256,29261,29267-29273,29277,29280-29281,29284,29287-29303,29305-29307,29309-29325,29327-29343,29345-29348
> ,29358-29379,29381-29392,29397,29399,29401,29409,29412,29414-29415,29417-29423,29425-29426,29429,29433-29434,29436-29438,29440-29447,29449-29466,29468-2947
> 8,29482,29484,29486-29487,29489,29491,29493,29496,29498,29508,29527-29528,29539-29540,29546,29553,29556,29559,29565,29567-29569,29571-29578,29583,29591,295
> 94,29614,29619,29623,29625-29626,29634,29671-29672,29678
>
> Seems if we just remove the mergeinfo on the six files in 1.5.x and
> commit that, this problem will go away no?

That *sounds* right, but my knowledge of the inner workings of mergeinfo
is a bit shaky.

-Hyrum

Received on 2008-03-07 16:04:35 CET

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