views:

753

answers:

3

I've been developing a project locally and using a local svn server for versioning in visual studio. I now want to switch to xp-dev hosted versioning but cannot seem to get rid of the svn bindings on my solution? Is there an easy way to duplicate a solution without its versioning settings or to simply switch to the other svn (which is completely empty)?

+1  A: 

Edit: Note that this assumes that you are trying to move to a new repository, dropping all your history, not move a repository. Thinking about it you might want to replace the removing all .svn folders with simply exporting the folder into the newly created workspace for the new repo.

Not that I know of. I'd probably do this,

  • Remove all the .svn folders from your solution
  • Create a folder for the solution in the new repo,
  • Check it out,
  • Move your current solution into that folder,
  • Load up the solution in Visual Studio
  • Use AnkhSvn to add it again. It should pick up the fact that it's in a subversioned directory and allow you to do that.
Colin Newell
This makes you loose history. The last point isn't valid either. When you remove all .svn folders, it's no longer in a working copy / 'subversioned directory'
Sander Rijken
Yes, I was under the impression that he was trying to move to a new subversion server not move the subversion repository. Otherwise I'd have suggested he relocate it.
Colin Newell
The last point should be valid because assuming your solution is now in a directory in the new workspace AnkhSvn normally picks that fact up. I guess it depends on exactly what folder structure you've created as to whether it works, worst case you might want to add the folder that the actual .sln folder is in manually then use AnkhSvn because it's a lot better at adding the right files for a solution.
Colin Newell
When moving the repository to a new server, it's better to check out http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate on this. If you do it like you said, you will still loose all history.
Sander Rijken
Yes, I don't disagree, I was just under the impression that the original questioner didn't care about the history.
Colin Newell
I was initially hoping to keep my history but in the end i have actually done it this way!
Paulo
A: 

Try going to File > Subversion > Change Source Control... and changing the SCC Binding URL.

EDIT: I see that's not editable. You may need to drop to the command line for this.

In your base directory, issue this svn command:

svn switch --relocate http://old.repo.location http://new.repo.location

with your speific URLs, of course. I'd recommend reading up on the switch command so you're sure of what you're doing. When you reopen VS, AnkhSVN should pick up the new bindings. If you've added the solution through the File > Subversion menu, you may need to edit the .sln file. Just open it in a text editor and change all of your old repository URLs to the new URL.

You could also install TortoiseSVN and use the context menu to issue the Relocate command.

Back up your directory before any of these changes, of course.

Don
Hmm, it won't let me change the text in that field
Paulo
The relocate is what you do if you've just moved the repository, like you've changed the folder it's in or moved it onto a web server. I don't think it works if you're pointing to another completely different repository. I believe the revision numbers, history, etc. essentially have to be the same, i.e. essentially the same repo for it to be useful.
Colin Newell
Sander Rijken
Or use the switch command on the solution, pending changes window or ...
Bert Huijben
+1  A: 

There's a switch/relocate built-in:

  • Open View -> Pending Changes
  • Click the dropdown that shows the current repository url, or the button to the right of that
  • Enter / browse to the new location
  • A dialog comes up wether you want to relocate (because switching isn't enough here)
Sander Rijken
Just adding that this is implemented as a switch with automatic relocate suppoprt if a switch would fail.
Bert Huijben