问题
I have recently moved the SVN server and now i am tring to relocate the working copies from my computer to the new server. But i get the strangest error. i do :
svn switch http://99.99.99.new/svn/company/project/trunk/web
but i get
svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'
the move was made with dump and import ... and the repo root is on http://99.99.99.new/svn/company/project
Do you guys have any ideas of what might be wrong ? thanks a lot
回答1:
Try using
svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
As noted by Sporino in the comments, since Subversion 1.7, there's a seperate relocate
command:
svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
回答2:
Also, in TortoiseSVN there is "Relocate" option, which you should use in situations like these (instead of the "Switch" option).
回答3:
My best way to do an SVN relocation is this:
svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
new_url_or_repository
In this way, using the right old url from the svn info
command, you are sure to not enter a wrong one, which is one of the common erros.
If everything is correct, you will be prompted with the auth details for the new location, if they are different.
After issuing the command, be sure to double check that the change has been applied looking at the URL parameter, issuing
svn info
After relocating, update your working copy, to check that everything is ok:
svn update
My 2c ..
回答4:
Use the relocate
command line parameter to the switch
command.
svn switch documentation
Sometimes an administrator might change the "base location" of your repository — in other words, the contents of the repository doesn't change, but the main URL used to reach the root of the repository does. For example, the hostname may change, or the URL schema, or perhaps just the path which leads to the repository. Rather than checkout a new working copy, you can have the svn switch command "rewrite" the the beginnings of all the URLs in your working copy. Use the --relocate command to do the substitution. No file contents are changed, nor is the repository contacted. It's similar to running a perl script over your working copy .svn/ directories which runs s/OldRoot/NewRoot/.
回答5:
You need to use the --relocate option :
svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web
see svnbook for more details.
来源:https://stackoverflow.com/questions/925698/svn-switch-error-is-not-the-same-repository