You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Clem Taylor <cl...@gmail.com> on 2005/11/28 04:23:41 UTC

svn merge 'breaks' working copy...

I think I've triggered a bug with 'svn merge'.

I have a vendor tree that contained a 2.6.13 linux kernel. I updated
this tree to 2.6.14 plus some heavily broken stuff. So, I backed out
this change so my vendor tree now has a clean 2.6.14 kernel. Next, I
attempt to merge the vendor tree with my development tree and I get a
large number of merge failures in the form of "Skipped missing target
'file'" and "Skipped 'file'" errors. This seemed to be the result of
the 2.6.14+ tree deleting a number of files and having to revert those
files (broken ancestry). After far too many manual merges, I now have
a happy working tree. However, I do a 'svn status -u' and it fails
with: "svn: Working copy path '...' does not exist in repository.". An
info for the failed file shows that the file in question is a new flie
that was copied (replaced) as part of the merge. This file existed in
the 2.6.13 tree was removed by the 2.6.14+ update and then replaced
when I reverted back to 2.6.13. If I do a status -u in other
sub-directories I see the error in other places.

So now I'm trying to recover from this without any luck. I checked out
a fresh working copy and managed to trigger the same problem again. I
tried doing a 'svn remove' of the broken file and that does not
eliminate the status error (because the file still has a history
commit pending).

Any ideas how to recover from this? The client is running 1.2.3 and
the server is running 1.1.4.

                                     Thanks,
                                     Clem Taylor

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


Re: svn merge 'breaks' working copy...

Posted by kf...@collab.net.
Wow.

I hate to be a heartless bastard, but I'm going to have to pass on
trying to reproduce this; it just seems like there's a high risk of
being unable to.  If you can make a reproducible case (ideally, a
script we can run to make it happen), we can look at the bug.

And of course, I speak only for myself when it comes to allocation of
time.  Someone else may decide to try reproducing this, and I hope
they succeed if so.

Good luck,
-Karl

Clem Taylor <cl...@gmail.com> writes:
> On 28 Nov 2005 11:14:08 -0600, kfogel@collab.net <kf...@collab.net> wrote:
> > I can't tell if you have found a bug here or not yet.  Would it be
> > possible to get a transcript?  (Verbs "updated this tree" and "backed
> > out this change" are okay in conversation, but for a reproduction
> > recipe we need more precision -- what exact commands did you use?)
> 
> I can't easily provide a transcript for the vendor tree. Basically, I
> removed all the files in a working copy, leaving the directories and
> .svn stuff alone. Next, I copied the new version (from a git tree) and
> ran a script that deletes missing files and adds new files. I checked
> in the result at tagged it 2.6.14. I've done this many times without
> any problems. However in this case it turned out that what I thought
> was 2.6.14 was actually 2.6.14 plus some badly broken stuff. So, the
> "backed out this change" step just repeated the above, copying a
> different git view. I deleted the old 2.6.14 tag and created a new
> 2.6.14 tag. The problem is that the 2.6.14+ version had a huge number
> of changes and a number of files that were deleted.  When I checked in
> the proper 2.6.14 code, some of the ancestry was lost.
> 
> So next I wanted to merge my 2.6.13 based devel tree with the new 2.6.14 tree:
> # check out clean working copy of the trunk
> $ svn co svn+ssh://.../trunk/np/linux
> $ svn status -u
> ... no error ...
> # merge previous linux tag with new linux tag from vendor tree
> $ svn merge svn+ssh://.../vendor/linux-mips/2.6.13 \
>     svn+ssh://.../vendor/linux-mips/2.6.14 .
> ... 645 deletes, 733 adds, 4227 updates, 1 'Skipped missing target' ...
> ... NOTE: The merge doesn't finish, it fails with:
> svn: URL 'svn+ssh://.../vendor/linux-mips/2.6.14/drivers/acpi/ospm'
> doesn't match existing
> URL 'svn+ssh://.../trunk/np/linux/drivers/acpi/ospm' in 'drivers/acpi/ospm'
> # at this point the working copy is broken:
> $ svn status -u
> svn: Working copy path 'include/asm-ppc64/hw_irq.h' does not exist in repository
> $ svn status include/asm-ppc64/hw_irq.h
> R  +   include/asm-ppc64/hw_irq.h
> $ svn info include/asm-ppc64/hw_irq.h
> Path: include/asm-ppc64/hw_irq.h
> Name: hw_irq.h
> URL: svn+ssh://.../trunk/np/linux/include/asm-ppc64/hw_irq.h
> Revision: 0
> Node Kind: file
> Schedule: replace
> Copied From URL:
> svn+ssh://.../vendor/linux-mips/2.6.14/include/asm-ppc64/hw_irq.h
> Copied From Rev: 1089
> Last Changed Author: ctaylor
> Last Changed Rev: 4
> Last Changed Date: 2005-03-18 01:14:14 -0500 (Fri, 18 Mar 2005)
> Text Last Updated: 2005-11-28 14:06:09 -0500 (Mon, 28 Nov 2005)
> Properties Last Updated: 2005-11-28 14:06:09 -0500 (Mon, 28 Nov 2005)
> Checksum: eb2908eef2a030257f9ec40b9543d23d
> 
> One interesting thing the merge had a number of lines like:
> D  include/asm-ppc64/hw_irq.h
> A  include/asm-ppc64/hw_irq.h
> 
> So the file was deleted (2.6.14+) and then added back (2.6.14). This
> seems to be the root of the problem.
> 
> I tried doing the merge with '--ignore-ancestry', but this didn't work
> either, it failed with:
> Skipped missing target: 'kernel/fork.c'
> ... many more skipped missing targets ...
> Skipped missing target: 'include/asm-ia64/socket.h'
> Skipped 'include/asm-ia64/hdreg.h'
> Skipped missing target: 'include/asm-ia64'
> svn: Working copy 'include' is missing or not locked
> 
>                                       --Clem
> 

-- 

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

Re: svn merge 'breaks' working copy...

Posted by Clem Taylor <cl...@gmail.com>.
On 28 Nov 2005 11:14:08 -0600, kfogel@collab.net <kf...@collab.net> wrote:
> I can't tell if you have found a bug here or not yet.  Would it be
> possible to get a transcript?  (Verbs "updated this tree" and "backed
> out this change" are okay in conversation, but for a reproduction
> recipe we need more precision -- what exact commands did you use?)

I can't easily provide a transcript for the vendor tree. Basically, I
removed all the files in a working copy, leaving the directories and
.svn stuff alone. Next, I copied the new version (from a git tree) and
ran a script that deletes missing files and adds new files. I checked
in the result at tagged it 2.6.14. I've done this many times without
any problems. However in this case it turned out that what I thought
was 2.6.14 was actually 2.6.14 plus some badly broken stuff. So, the
"backed out this change" step just repeated the above, copying a
different git view. I deleted the old 2.6.14 tag and created a new
2.6.14 tag. The problem is that the 2.6.14+ version had a huge number
of changes and a number of files that were deleted.  When I checked in
the proper 2.6.14 code, some of the ancestry was lost.

So next I wanted to merge my 2.6.13 based devel tree with the new 2.6.14 tree:
# check out clean working copy of the trunk
$ svn co svn+ssh://.../trunk/np/linux
$ svn status -u
... no error ...
# merge previous linux tag with new linux tag from vendor tree
$ svn merge svn+ssh://.../vendor/linux-mips/2.6.13 \
    svn+ssh://.../vendor/linux-mips/2.6.14 .
... 645 deletes, 733 adds, 4227 updates, 1 'Skipped missing target' ...
... NOTE: The merge doesn't finish, it fails with:
svn: URL 'svn+ssh://.../vendor/linux-mips/2.6.14/drivers/acpi/ospm'
doesn't match existing
URL 'svn+ssh://.../trunk/np/linux/drivers/acpi/ospm' in 'drivers/acpi/ospm'
# at this point the working copy is broken:
$ svn status -u
svn: Working copy path 'include/asm-ppc64/hw_irq.h' does not exist in repository
$ svn status include/asm-ppc64/hw_irq.h
R  +   include/asm-ppc64/hw_irq.h
$ svn info include/asm-ppc64/hw_irq.h
Path: include/asm-ppc64/hw_irq.h
Name: hw_irq.h
URL: svn+ssh://.../trunk/np/linux/include/asm-ppc64/hw_irq.h
Revision: 0
Node Kind: file
Schedule: replace
Copied From URL:
svn+ssh://.../vendor/linux-mips/2.6.14/include/asm-ppc64/hw_irq.h
Copied From Rev: 1089
Last Changed Author: ctaylor
Last Changed Rev: 4
Last Changed Date: 2005-03-18 01:14:14 -0500 (Fri, 18 Mar 2005)
Text Last Updated: 2005-11-28 14:06:09 -0500 (Mon, 28 Nov 2005)
Properties Last Updated: 2005-11-28 14:06:09 -0500 (Mon, 28 Nov 2005)
Checksum: eb2908eef2a030257f9ec40b9543d23d

One interesting thing the merge had a number of lines like:
D  include/asm-ppc64/hw_irq.h
A  include/asm-ppc64/hw_irq.h

So the file was deleted (2.6.14+) and then added back (2.6.14). This
seems to be the root of the problem.

I tried doing the merge with '--ignore-ancestry', but this didn't work
either, it failed with:
Skipped missing target: 'kernel/fork.c'
... many more skipped missing targets ...
Skipped missing target: 'include/asm-ia64/socket.h'
Skipped 'include/asm-ia64/hdreg.h'
Skipped missing target: 'include/asm-ia64'
svn: Working copy 'include' is missing or not locked

                                      --Clem

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


Re: svn merge 'breaks' working copy...

Posted by kf...@collab.net.
Clem Taylor <cl...@gmail.com> writes:
> I think I've triggered a bug with 'svn merge'.
> 
> I have a vendor tree that contained a 2.6.13 linux kernel. I updated
> this tree to 2.6.14 plus some heavily broken stuff. So, I backed out
> this change so my vendor tree now has a clean 2.6.14 kernel. Next, I
> attempt to merge the vendor tree with my development tree and I get a
> large number of merge failures in the form of "Skipped missing target
> 'file'" and "Skipped 'file'" errors. This seemed to be the result of
> the 2.6.14+ tree deleting a number of files and having to revert those
> files (broken ancestry). After far too many manual merges, I now have
> a happy working tree. However, I do a 'svn status -u' and it fails
> with: "svn: Working copy path '...' does not exist in repository.". An
> info for the failed file shows that the file in question is a new flie
> that was copied (replaced) as part of the merge. This file existed in
> the 2.6.13 tree was removed by the 2.6.14+ update and then replaced
> when I reverted back to 2.6.13. If I do a status -u in other
> sub-directories I see the error in other places.
> 
> So now I'm trying to recover from this without any luck. I checked out
> a fresh working copy and managed to trigger the same problem again. I
> tried doing a 'svn remove' of the broken file and that does not
> eliminate the status error (because the file still has a history
> commit pending).
> 
> Any ideas how to recover from this? The client is running 1.2.3 and
> the server is running 1.1.4.

I can't tell if you have found a bug here or not yet.  Would it be
possible to get a transcript?  (Verbs "updated this tree" and "backed
out this change" are okay in conversation, but for a reproduction
recipe we need more precision -- what exact commands did you use?)

Thanks,
-Karl

-- 
www.collab.net  <>  CollabNet  |  Distributed Development On Demand

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