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

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

From: Clem Taylor <clem.taylor_at_gmail.com>
Date: 2005-11-28 21:24:15 CET

On 28 Nov 2005 11:14:08 -0600, kfogel@collab.net <kfogel@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:
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


To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Nov 28 22:19:53 2005

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