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

[TSVN] Bug in moving externals

From: Lübbe Onken <l.onken_at_rac.de>
Date: 2004-11-15 15:37:44 CET

Hi Folks,

I did some heavy project restructuring today and I think I discovered a bug
in TortoiseSVN's handling of externals.

Assume your WC is in myProject, myproject contains a subfolder named "foo"
Set svn:externals on myProject to "bar http://some/location", commit your
changes and update your working copy
You now got
myProject\foo
myProject\bar

Right drag "bar" into "foo" and select "move in subversion".
You'll get a warning about foo not being under version control, but
afterwards "foo\bar" is shown as an added folder in windows explorer.
If you try to "commit" myProject, you'll get a warning about changes to
externals which have to be committed separately.
If you try to "revert" myProject, you'll see "foo" as scheduled for deletion
(including all subdirectories) and "foo/bar" as added.

1) Why is "foo/bar" not shown as added in the commit dialog? (would be
acceptable, since it's only a copy)
2) What I consider more imortant is that right-drag-moving externals should
be forbidden. This results in a deletion in one repository and an addition
in another repository. Dangerous!

3) Even worse: I committed my working copy. Because it's not shown in the
commit dialog I hadn't noticed that "foo/bar" was actually scheduled for
addition and "bar" scheduled for deletion. The progress dialog ran until it
either hit "Delete myProject/foo" or "Add myProject/foo/bar" (Sorry I forgot
to write this and the following error down). Then I got a nasty 5xx server
message and my repository was wedged. 'svnadmin recover' did the job but I
was scared for a minute...

I cannot reproduce this "crash" (3) with my test repo, but it happened to my
life repo, maybe it has something to do with the number of actions and the
order in which they are processed. In my life repo I had done a lot more
restructuring and accidentally moving the external folder was only one of
many.

A colleague has managed to screw up his repository with right-drag-move
operations. I think he has done something like:
Create "myProject/foo", don't commit, right-drag bar into "foo", commit.
Afterwards "foo/bar" was there, but the contents in bar were gone. I'm
investigating...

Cheers
- Lübbe

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Mon Nov 15 15:38:04 2004

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.