views:

7068

answers:

11

I would like to move a file or folder from one place to another within the same repository without having to use Repo Browser to do it, and without creating two independent add/delete operations. Using Repo Browser works fine except that your code will be hanging in a broken state until you get any supporting changes checked in afterwards (like the .csproj file for example).

Update: People have suggested "move" from the command line. Is there a TortoiseSVN equivalent?

A: 

From the command line, you can type svn mv path1 path2. This will create an add and a delete operation, but there's not really a way around that - as far as I know - in Subversion.

Clinton R. Nixon
A: 

Use "svn move" command

acemtp
+11  A: 

svn move — Move a file or directory.

http://svnbook.red-bean.com/en/1.0/re18.html

StocksR
+2  A: 

If you want to move files around and keep the csproj files up to date, the easiest way is to use a Visual Studio plugin like AnkhSVN. That will automatically commit both the move action (as an delete + add with history, because that's how Subversion works) and a change in the .csproj

Sander Rijken
+1  A: 

Subversion does not yet have a first-class rename operations.

There's a 6-year-old bug on the problem: http://subversion.tigris.org/issues/show_bug.cgi?id=898

It's being considered for 1.6, now that merge tracking (a higher priority) has been added (in 1.5).

swmc
+37  A: 

To move a file or set of files using tortoise, right-click-and-drag the target files to their destination and release the right mouse button. The popup menu will have a 'SVN move versioned files here' option.

Note that the destination folder must have already been added to the repository for the 'SVN move versioned files here' option to appear.

Splash
I needed to do the same and this worked perfectly. Never knew about this option. Big thanks!
DavGarcia
A: 

As mentioned earlier, you'll create the add and delete commands. You can use svn move on both your working copy or the repository url. If you use your working copy, the changes won't be committed - you'll need to commit in a separate operation.

If you svn move a URL, you'll need to supply a --message, and the changes will be reflected in the repository immediately.

dwilkins
+5  A: 

In Windows Explorer, with the right-mouse button, click and drag the file from where it is to where you want it. Upon releasing the right-mouse button, you will see a context menu with options such as "SVN Move versioned file here".

http://tortoisesvn.net/most-forgotten-feature

yknott
+2  A: 

Under TortoiseSVN, see the following page: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-copy.html

+1  A: 

Using the 'svn move' command. I talk about it in the following tutorial: The Not-So-Boring Guide to Subversion.

CodingWithoutComments
Link is broken.
Abhijeet Kashnia
A: 

Use Tortoise's RENAME command, and type in a relative path ("folder/file.ext").

Hugo