Question

I have recently migrated my SVN repository from SERVER1 to SERVER2.

  • installed SVN on SERVER2.
  • used svnrdump utility to dump the repository.
  • used svndump load utility to load the dump file to new svn server.

I checked out a working copy WC from path http://SERVER1/project1/data from SERVER1 svn.

Note one thing here:

  • When I took dump, SVN revision on SERVER1 was 12345.
  • When I checked out WC , SVN revision was 13456.

Now, using relocate from tortoise svn on windows, I have relocated WC to SERVER2 svn to path http://SERVER2/project1/data.

Relocation is successfull.

After this, I am trying to check-in changes which were made from rev-12345 till rev-13456 to http://SERVER2/project1/data.

But, here is what is happening:

  • Commit operation does not show any files to be committed.
  • Check for modification does not show any changes.
  • SVN Update shows error 'No Such Revision: 13456'.
  • I changed a file which existed on WC and on http://SERVER2/project1/data as well, and tried to commit it. Here also it gives 'No Such Revision: 13456'.

I was expecting that when WC at rev-13456 from SERVER1 will be relocated to http://SERVER2/project1/data at rev-12345 from SERVER2, it will show all the differences which were made between these two revisions.

NOTE: I am trying above because SERVER1 will be shutdown in some time. As of now, both repositories exist. SERVER1 is still being used by people and SERVER2 is to be kept up-to-date with SERVER1.

Was it helpful?

Solution

Because you checked out your working copy at a later revision than what exists on the server you relocated to, it has no reference point to calculate changes. This method of updating SERVER2 will not work. You have two options:

  1. To properly update SERVER2 with all revisions that are missing, you must do a partial dump/load of the remaining revisions. svnadmin dump repo_path -r 12346 --incremental, then load on new server. It will dump only revisions for 12346 forward. This will only work if you have not added other revisions to SERVER2 that were not part of SERVER1.

  2. If you don't care about the intervening revision history and just want to dump all the changes in that time into the new server as 1 revision, do a fresh check out from the new server first. Then copy all changes over from your WC from SERVER1 into this WC of SERVER2 and commit.

The first option is better and probably even less work depending on how complicated the changes are.

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