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

Re: Unusual behaviour of "svn mv" on directories

From: Andy Parkins <andyp_at_leaseline.plus.com>
Date: 2004-02-18 17:16:33 CET

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wednesday 18 February 2004 15:42, Ben Collins-Sussman wrote:

> Instead, 'svn mv A B' is *exactly* the same as if you had run 'svn cp A
> B; svn rm A'. When you do this in the working copy, you get a double
> scheduling: B is new, scheduled for addition-with-history, and A is
> scheduled for deletion. When you commit, the exact same thing happens
> in the repository: B is created as a new object, copied from A, and
> then A is deleted.

AH HA! Got it now. Thank you.

> So what you're seeing in your recipe is a failure when you attempt to
> commit the deletion of A. In your case, A is an out-of-date directory.
>
> Hope this makes things clearer.

It does indeed. Unfortunately it brings me back to a variation on my original
bug report (which was wrong):

Compare:
$ svn mkdir A; svn commit -m ""
$ svn mv A B; svn commit -m ""
with:
$ svn mkdir A; svn commit -m ""
$ touch A/versionedfile; svn add A/versionedfile; svn commit -m ""
$ svn mv A B; svn commit -m ""

The second case fails with:
Deleting A
svn: Commit failed (details follow):
svn: Out of date: 'A' in transaction '3'

It can be made to complete however, with:
$ svn status
D A
D A/versionedfile
A + B
$ svn update
At revision 2.
$ svn status
D A
D A/versionedfile
A + B
$ svn commit -m ""

There is no difference between the two "svn status" outputs. "svn update"
reported no changes. Yet, after "svn update" the A directory is gone (good)
and so the svn commit can complete.

My bug report/feature request is therefore: whatever "svn update" is doing
(which in this case is not its stated function of bringing the local copy up
to date with the repository); can "svn mv"/"svn rm" not do that as well?

This only shows up for directories. Files behave as expected "svn mv A B"
when A and B are files, leaves the local copy with no A.

Andy

- --
Andy Parkins
Technical Director email: andyp@leaseline.plus.com
Leaseline Systems Limited tel: +44 (0)151 652 5551
Unit 31, Price Street Business Centre fax: +44 (0)151 652 9983
Birkenhead, CH41 4JQ

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAM4/hwQJ9gE9xL20RAjGiAJ9ujj17xGL7BDlySoS18NcMMYcAnACeJJAV
D4tuUYV1vkhkJn/zZFd0UgI=
=mBjH
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Feb 18 17:17:31 2004

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

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