You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Joakim Tjernlund <jo...@transmode.se> on 2010/05/25 13:27:24 UTC

peculiar svn:mergeinfo

rm -rf my_repo
rm -rf my_wc
REPO=file:///"$PWD"/my_repo
svnadmin create my_repo
mkdir -p my_wc/trunk
mkdir -p my_wc/tags
mkdir -p my_wc/branches
svn import -m "std layout" my_wc $REPO
rm -rf my_wc
svn mkdir -m "mkdir bin" $REPO/trunk/bin
svn mkdir -m "mkdir proj" $REPO/trunk/proj
svn co $REPO my_wc
echo rev1 > my_wc/trunk/bin/file
svn add my_wc/trunk/bin/file
svn propset svn:externals "../bin/file file" my_wc/trunk/proj
svn commit -m "svn:externals ../bin/file file" my_wc
svn copy -m "branch b1" $REPO/trunk/ $REPO/branches/b1
svn up my_wc

# set some dummy external in branch
rm -rf my_branch
svn co --depth empty $REPO/branches/b1 my_branch
ARGS="../bin/file kalle
../bin/file sven"
svn propset "svn:externals" "$ARGS" my_branch
svn commit -m "Setup externals" my_branch

rm -rf my_trunk
svn co --depth empty $REPO/trunk my_trunk

#Rev 6 is the above dummy external
svn merge --record-only -c 6 $REPO/branches/b1 my_trunk
#svn merge --record-only $REPO/branches/b1 my_trunk
svn merge $REPO/branches/b1 my_trunk

Now I see:
svn diff my_trunk/

Property changes on: my_trunk
___________________________________________________________________
Added: svn:mergeinfo
   Merged /branches/b1:r5-6*

Which looks OK to me.

Then I do the same except
  svn merge --record-only -c 6 $REPO/branches/b1 my_trunk
is replaced with
  svn merge --record-only $REPO/branches/b1 my_trunk

Now I get:
svn diff my_trunk/

Property changes on: my_trunk
___________________________________________________________________
Added: svn:mergeinfo
   Merged /trunk:r2-4*
   Merged /branches/b1:r5-6*

What is /trunk:r2-4* ? Should it be at all?

Re: peculiar svn:mergeinfo

Posted by Paul Burba <pt...@gmail.com>.
On Tue, May 25, 2010 at 12:24 PM, Joakim Tjernlund
<jo...@transmode.se> wrote:
> Paul Burba <pt...@gmail.com> wrote on 2010/05/25 17:22:52:
>
>> From: Paul Burba <pt...@gmail.com>
>>
>> On Tue, May 25, 2010 at 9:27 AM, Joakim Tjernlund
>> <jo...@transmode.se> wrote:
>> >
>
> [SNIP]
>
>> >
>> > What is /trunk:r2-4* ? Should it be at all?
>>
>> Hi Joakim,
>>
>> That is what we usually call self-referential mergeinfo, i.e.
>> mergeinfo that explicitly describes what is already part of a path's
>> history.  Typically it is harmless, though it is certainly needless
>> "noise".  I was unaware of this particular method of generating it;
>> which certainly looks to be a bug.
>>
>> I replicated this with 1.6.12 and trunk.  I will look into this shortly.
>
> OK, thanks for the clarification.

Tracking this bug in http://subversion.tigris.org/issues/show_bug.cgi?id=3646

Paul

Re: peculiar svn:mergeinfo

Posted by Joakim Tjernlund <jo...@transmode.se>.
Paul Burba <pt...@gmail.com> wrote on 2010/05/25 17:22:52:

> From: Paul Burba <pt...@gmail.com>
>
> On Tue, May 25, 2010 at 9:27 AM, Joakim Tjernlund
> <jo...@transmode.se> wrote:
> >

[SNIP]

> >
> > What is /trunk:r2-4* ? Should it be at all?
>
> Hi Joakim,
>
> That is what we usually call self-referential mergeinfo, i.e.
> mergeinfo that explicitly describes what is already part of a path's
> history.  Typically it is harmless, though it is certainly needless
> "noise".  I was unaware of this particular method of generating it;
> which certainly looks to be a bug.
>
> I replicated this with 1.6.12 and trunk.  I will look into this shortly.

OK, thanks for the clarification.
Perhaps you have seen my other mail titled
"file externals fails to commit after merge" ?

That script generates extra mergeinfo where it should not.

 Jocke

Re: peculiar svn:mergeinfo

Posted by Paul Burba <pt...@gmail.com>.
On Tue, May 25, 2010 at 9:27 AM, Joakim Tjernlund
<jo...@transmode.se> wrote:
>
> rm -rf my_repo
> rm -rf my_wc
> REPO=file:///"$PWD"/my_repo
> svnadmin create my_repo
> mkdir -p my_wc/trunk
> mkdir -p my_wc/tags
> mkdir -p my_wc/branches
> svn import -m "std layout" my_wc $REPO
> rm -rf my_wc
> svn mkdir -m "mkdir bin" $REPO/trunk/bin
> svn mkdir -m "mkdir proj" $REPO/trunk/proj
> svn co $REPO my_wc
> echo rev1 > my_wc/trunk/bin/file
> svn add my_wc/trunk/bin/file
> svn propset svn:externals "../bin/file file" my_wc/trunk/proj
> svn commit -m "svn:externals ../bin/file file" my_wc
> svn copy -m "branch b1" $REPO/trunk/ $REPO/branches/b1
> svn up my_wc
>
> # set some dummy external in branch
> rm -rf my_branch
> svn co --depth empty $REPO/branches/b1 my_branch
> ARGS="../bin/file kalle
> ../bin/file sven"
> svn propset "svn:externals" "$ARGS" my_branch
> svn commit -m "Setup externals" my_branch
>
> rm -rf my_trunk
> svn co --depth empty $REPO/trunk my_trunk
>
> #Rev 6 is the above dummy external
> svn merge --record-only -c 6 $REPO/branches/b1 my_trunk
> #svn merge --record-only $REPO/branches/b1 my_trunk
> svn merge $REPO/branches/b1 my_trunk
>
> Now I see:
> svn diff my_trunk/
>
> Property changes on: my_trunk
> ___________________________________________________________________
> Added: svn:mergeinfo
>   Merged /branches/b1:r5-6*
>
> Which looks OK to me.
>
> Then I do the same except
>  svn merge --record-only -c 6 $REPO/branches/b1 my_trunk
> is replaced with
>  svn merge --record-only $REPO/branches/b1 my_trunk
>
> Now I get:
> svn diff my_trunk/
>
> Property changes on: my_trunk
> ___________________________________________________________________
> Added: svn:mergeinfo
>   Merged /trunk:r2-4*
>   Merged /branches/b1:r5-6*
>
> What is /trunk:r2-4* ? Should it be at all?

Hi Joakim,

That is what we usually call self-referential mergeinfo, i.e.
mergeinfo that explicitly describes what is already part of a path's
history.  Typically it is harmless, though it is certainly needless
"noise".  I was unaware of this particular method of generating it;
which certainly looks to be a bug.

I replicated this with 1.6.12 and trunk.  I will look into this shortly.


Paul