I had to make a change to a subversion repository database. I created a dump, filtered out a revision and created a new database.
This new repository of course shares a lot of content with the working copies clients of the old repo already checked out, however, it is missing a revision inbetween.
The revision that was removed did not add any data, it only changed some files.
Is it possible to simply replace the old server database with the new one without causing havoc on existing clients working copies? Or do I have to have all clients check out a fresh copy of the new repo instead?
More generally, how do subversion clients deal with a change in structure on the server side? I'm primarily interested in TortoiseSVN.
As long as the revision numbers weren't changed in the dump, and the UUID was kept, it shouldn't make much difference. Subversion tracks the revision number of the working copy files and the UUID and URL of the repository. Even if the history was changed, it shouldn't affect the working copies.
HOWEVER, there's always a difference between theory and fact. Before doing a dump and load, I'll warn the developers in advance. I have them check in their code. Then, I do a dump and load, then tell the developers to do a clean checkout.
Just to be safe, do a clean checkout. You can do a
svn status
on the old working copies to find files that were changed but not committed and copy them off to your new clean checkout. Thesvn status
doesn't ping the repository, so that's a safe operation.