Question

Here is the deal:

  1. I created an SVN repository, say, foo. It is at http://www.example.com/foo.

  2. Then I did an svn checkout.

  3. I made some updates and changes to my local copy of the code over the week. I haven't committed yet.

  4. I realized that I wanted to rename the repository. So I did this:

svn copy http://example.com/foo http://example.com/bar

svn delete http://example.com/foo

  1. I finish my changes (and local svn still thinks I'm working under "foo".) svn commit fails because the repo has been renamed.

  2. I try to use svn switch --relocate but it yells at me because svn is awful.

  3. I try using the script here to replace "foo" with "bar" in my billion .svn/ folders.

  4. This replace is taking a long time. I wonder if something hung? Or maybe sshfs failed? I kill it. Ctrl-C.

  5. I look and see that half my files have "foo" and the others have "bar" in the URLs in the sundry .svn/ folders.

All I want to do is commit my files with the new name. I could re-checkout the branch, but then I have no way to remember which files I changed, which is why I was using version control in the first place, and svn is so godawful at moving and renaming things.

What do I need to do to:

  1. Have a "clean" copy of my "bar" svn branch? and, most importantly:

  2. Commit the changes I made?

Was it helpful?

Solution

--relocate is only used for base URL changes.

Try svn cleanup then svn switch --force

OTHER TIPS

If you do need to checkout a fresh version and then make all your changes again it should be a fairly simply process of just pushing them over to the new checkout - you don't need to remember them, use a tool like Beyond Compare to quickly show you the diffs and copy them over.

Even when source control is working perfectly I spend a fair bit of time reviewing diffs (ie: before commit etc).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top