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:41:12 UTC

Issue found: Damaged Repository with rename prior to merge

Hello!

Windows XP
svn, version 1.5.0 (r31699)

I've found an issue that damages the repository entirely. Even new a checkout or dump/load works. The damage does happen without any commit.

CASE:
  1. Setup repo

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

 2. copy trunk to branches/a and commit

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

 4. cd branches/a and update

 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
--- Merging r2 through r3 into '.':
A    test3.txt
D    test1.txt

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

Committed revision 4.

 6. merge again
d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn merge svn://localhost/temp/subversion-1.5-repo/test/trunk
svn: Working copy path 'test3.txt' does not exist in repository


After step 6, the repository is entirely damaged without any commit! I haven't found a way to recover my repository yet.

Thanks

Kuno




Re: Issue found: Damaged Repository with rename prior to merge

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

> I agree I could see the above error. I think it is one of the variants
> of issue-3067 which has been fixed in 'trunk of svn' and nominated for
> 1.5.x for backport.
> 
> Unfortunately this particular case is still failing in 'trunk of svn',
> will investigate and extend the fix.
> 

Fixed this in trunk at r31927.

With regards
Kamesh Jayachandran
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIaQeL3WHvyO0YTCwRAotNAJ4gQu7PlbXCFSL8fqiYKHJm7iQmUACfZyLf
WZ8pF9N0PZWoCWUjMgpyVm0=
=FHqy
-----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: Damaged Repository with rename prior to merge

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



Baeriswyl Kuno - Extern (IT-BA-MV) wrote:
> Hello!
> 
> Windows XP
> svn, version 1.5.0 (r31699)
> 
> I've found an issue that damages the repository entirely. Even new a checkout or dump/load works. The damage does happen without any commit.
> 
> CASE:
>   1. Setup repo
> 
>    -trunk
>       -test1.txt
>       -test2.txt
>    -branches
> 
>  2. copy trunk to branches/a and commit
> 
>  3. move trunk/test1.txt to trunk/test3.txt and commit
> 
>  4. cd branches/a and update
> 
>  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
> --- Merging r2 through r3 into '.':
> A    test3.txt
> D    test1.txt
> 
> d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn commit -m ""
> Sending        a
> Deleting       a\test1.txt
> Adding         a\test3.txt
> 
> Committed revision 4.
> 
>  6. merge again
> d:\temp\subversion-1.5-repo\checkout\test\branches\a>svn merge svn://localhost/temp/subversion-1.5-repo/test/trunk
> svn: Working copy path 'test3.txt' does not exist in repository
> 
> 
> After step 6, the repository is entirely damaged without any commit! I haven't found a way to recover my repository yet.


What do you mean by damage? I could still use the repo for other
usecases other than above merge.

I agree I could see the above error. I think it is one of the variants
of issue-3067 which has been fixed in 'trunk of svn' and nominated for
1.5.x for backport.

Unfortunately this particular case is still failing in 'trunk of svn',
will investigate and extend the fix.


Thanks for the nice bug report.
With regards
Kamesh Jayachandran
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIaLQx3WHvyO0YTCwRArrOAJ9/PPUxwThkJGWSQaC2UgDcwHELYgCgjG9g
dIDYQjtIioQu28SLAfkS9DA=
=DRDT
-----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

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

Issue found: rename prior to merge --reintegrate

Posted by "Baeriswyl Kuno - Extern (IT-BA-MV)" <ku...@sbb.ch>.
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