You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Baeriswyl Kuno - Extern (IT-BA-MV)" <ku...@sbb.ch> on 2008/06/30 06:59:59 UTC

Issue found: rename prior to merge --reintegrate

Hello!

Windows XP
svn, version 1.5.0 (r31699)

I've found an issue with renames and merge --reintegrate. After any rename operation in my repository, the merge --reintegrate operation complains about unmerged revisions. Even if, the rename was been made prior the branch initiation.

CASE:
  1. Setup repo

   -trunk
      -test1.txt
      -test2.txt
   -branches

2. move trunk/test1.txt to trunk/test3.txt and commit

d:\temp\subversion-1.5-repo\checkout\test\trunk>svn move test1.txt test3.txt
A         test3.txt
D         test1.txt

d:\temp\subversion-1.5-repo\checkout\test\trunk>svn commit -m ""
Deleting       trunk\test1.txt
Adding         trunk\test3.txt

Committed revision 2.

3. copy trunk to branches/a and commit
d:\temp\subversion-1.5-repo\checkout\test\branches>svn copy svn://localhost/temp/subversion-1.5-repo/test/trunk svn://localhost/temp/subversion-1.5-repo/test/branches/a -m ""

Committed revision 3.

d:\temp\subversion-1.5-repo\checkout\test\branches>svn update
A    a
A    a\test2.txt
A    a\test3.txt
Updated to revision 3.


 4. cd branches/a

 5. merge trunk and commit
d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn merge svn://localhost/temp/subversion-1.5-repo/test/trunk

d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn commit -m ""
Sending        a

Committed revision 4.

 6. Go trunk, update and reintegrate branch/a to trunk.

d:\temp\subversion-1.5-repo\checkout\test\trunk>svn update
At revision 4.

d:\temp\subversion-1.5-repo\checkout\test\trunk>svn merge --reintegrate svn://localhost/temp/subversion-1.5-repo/test/br
anches/a
svn: Cannot reintegrate from 'svn://localhost/temp/subversion-1.5-repo/test/branches/a' yet:
Some revisions have been merged under it that have not been merged
into the reintegration target; merge them first, then retry.

It seems that any rename lead to an inconsistent state of the repository. Given that renames are a quite commen operation on a repository, the merge --reintegration operation turns to be totally useless. I tried to debug the mergeinfo properties. I don't understand how it works in details, though, following output seems to be strange to me:

d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn pg -R svn:mergeinfo
. - /trunk:3
test3.txt -

test3.txt was never part of branch a, since the branch has been made after the rename.

Thanks

Kuno







Re: Issue found: rename prior to merge --reintegrate

Posted by Kamesh Jayachandran <ka...@collab.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Kuno,

This looks serious.
Root cause remains to be the same as
http://subversion.tigris.org/issues/show_bug.cgi?id=3128


With regards
Kamesh Jayachandran
Baeriswyl Kuno - Extern (IT-BA-MV) wrote:
> Hello!
> 
> Windows XP
> svn, version 1.5.0 (r31699)
> 
> I've found an issue with renames and merge --reintegrate. After any rename operation in my repository, the merge --reintegrate operation complains about unmerged revisions. Even if, the rename was been made prior the branch initiation.
> 
> CASE:
>   1. Setup repo
> 
>    -trunk
>       -test1.txt
>       -test2.txt
>    -branches
> 
> 2. move trunk/test1.txt to trunk/test3.txt and commit
> 
> d:\temp\subversion-1.5-repo\checkout\test\trunk>svn move test1.txt test3.txt
> A         test3.txt
> D         test1.txt
> 
> d:\temp\subversion-1.5-repo\checkout\test\trunk>svn commit -m ""
> Deleting       trunk\test1.txt
> Adding         trunk\test3.txt
> 
> Committed revision 2.
> 
> 3. copy trunk to branches/a and commit
> d:\temp\subversion-1.5-repo\checkout\test\branches>svn copy svn://localhost/temp/subversion-1.5-repo/test/trunk svn://localhost/temp/subversion-1.5-repo/test/branches/a -m ""
> 
> Committed revision 3.
> 
> d:\temp\subversion-1.5-repo\checkout\test\branches>svn update
> A    a
> A    a\test2.txt
> A    a\test3.txt
> Updated to revision 3.
> 
> 
>  4. cd branches/a
> 
>  5. merge trunk and commit
> d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn merge svn://localhost/temp/subversion-1.5-repo/test/trunk
> 
> d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn commit -m ""
> Sending        a
> 
> Committed revision 4.
> 
>  6. Go trunk, update and reintegrate branch/a to trunk.
> 
> d:\temp\subversion-1.5-repo\checkout\test\trunk>svn update
> At revision 4.
> 
> d:\temp\subversion-1.5-repo\checkout\test\trunk>svn merge --reintegrate svn://localhost/temp/subversion-1.5-repo/test/br
> anches/a
> svn: Cannot reintegrate from 'svn://localhost/temp/subversion-1.5-repo/test/branches/a' yet:
> Some revisions have been merged under it that have not been merged
> into the reintegration target; merge them first, then retry.
> 
> It seems that any rename lead to an inconsistent state of the repository. Given that renames are a quite commen operation on a repository, the merge --reintegration operation turns to be totally useless. I tried to debug the mergeinfo properties. I don't understand how it works in details, though, following output seems to be strange to me:
> 
> d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn pg -R svn:mergeinfo
> . - /trunk:3
> test3.txt -
> 
> test3.txt was never part of branch a, since the branch has been made after the rename.
> 
> Thanks
> 
> Kuno
> 
> 
> 
> 
> 
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIaIjL3WHvyO0YTCwRAr0dAJ9fG0r+hIVMy3dpWtlcJlgO6cBSFgCdFFAj
2lDYT/9GV0Vi/kRVBtR+4pU=
=hCU4
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Issue found: rename prior to merge --reintegrate

Posted by Mark Phippard <ma...@gmail.com>.
On Mon, Jun 30, 2008 at 2:59 AM, Baeriswyl Kuno - Extern (IT-BA-MV)
<ku...@sbb.ch> wrote:

> Windows XP
> svn, version 1.5.0 (r31699)
>
> I've found an issue with renames and merge --reintegrate. After any rename
> operation in my repository, the merge --reintegrate operation complains
> about unmerged revisions. Even if, the rename was been made prior the branch
> initiation.

This is something we have known about for a while.  I posted a
detailed followup to your post on users@.

There is nothing wrong with the repository.  Merge --reintegrate just
does a bunch of pre-merge checks and it does not pass those checks in
this situation.  You can still use the older 2-URL merge syntax that
--reintegrate uses internally when the checks pass.  There are a
couple ideas for how we can improve this so that you can use
--reintegrate.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org