How to move svn folder one level up

10,634

Solution 1

If you are willing to use TortoiseSVN then you can simply move the folder with the repository browser. That is how I usually move folders around, very simple and painless.

Solution 2

I was just looking for this as well. Then I started looking for a solution and I didn't really find one, except that it did make me think of a solution.

You'd expect the command svn mv ./folder ./ to move everything from the ./folder to ./. This isn't actually true, it'll move folder into the current directory. Since this is where it already is, the command fails.

So, the solution would be to move everything inside ./folder to ./. Indeed, the following command does just that:

svn mv ./folder/* ./

Solution 3

Try:

svn switch --relocate https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/

Please test this in a seperate repository before you run it on your real one!

Solution 4

I don;t know if you can move it that way, personally I would checkout repository, move folder in filesystem and then commit changes, deleting it at one location and adding at another.

Solution 5

I ran into a similar issue today but I didn't know how to move it up from tortoise, since I also had settings for that folder.

If the new location https://myserver/svn/Project/ should have only the items from your old location, here is what I did:

  • Moved https://myserver.com/svn/Project/trunk/ to a new temporary location (e.g. https://myserver/svn/TempProject/);

  • Deleted the existing location you want to use (https://myserver/svn/Project/);

  • Renamed https://myserver/svn/TempProject/ to https://myserver/svn/Project/.

This worked for me. It preserved all history, svn settings, etc. The history just got a couple new entries from all the moving around thing.

Share:
10,634
ihorko
Author by

ihorko

Updated on June 11, 2022

Comments

  • ihorko
    ihorko almost 2 years

    I need to move svn folder to one level up and keep all history

    All files and directories from https://myserver.com/svn/Project/trunk/ into https://myserver/svn/Project/

    I use a command:

    svn move https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/
    

    but it says:

    svn: Cannot move path 'https://myserver.com/svn/Project/trunk/' into itself

    Who knows how can I resolve that problem? Thanks!

  • ihorko
    ihorko over 13 years
    you will not keep the history, after that you will have only last revision
  • ihorko
    ihorko over 13 years
    Thanks, I tried, but svn says: svn: '.' is not a working copy
  • Nix
    Nix over 13 years
    You ran the command from the base directory of the project on your file system?
  • Tomasz Kowalczyk
    Tomasz Kowalczyk over 13 years
    why? you'll have all changes, but in new tree.
  • Tomasz Kowalczyk
    Tomasz Kowalczyk over 13 years
    as i thought of the problem a little bit i found another solution - dump repository at a specified tree, let's say: svnadmin dump repo/path/other/inner > file.dump then delete dir "inner" -> it will remove it from repository, and now load it at another path: svnadmin load /repo/ --parent-dir /path < file.dump that way you'll have all directory tree committed and history saved
  • ihorko
    ihorko over 13 years
    Yes, I use TortoiseSVN, it's really very simple in repository browser, Thank you so much for your help!!!
  • ephraim
    ephraim over 4 years
    How do you commit that later? or is it "commited" by click? thx!
  • Stefan Egli
    Stefan Egli over 4 years
    As far as I recall this creates a commit automatically.