### NOT READY! This page is currently being written and is not yet finished so do not use it.

How to repair a damaged master repository by copying data back from an svnsync mirror repository that is complete and in good working order.

The Scenario

FSFS repository, svnsync mirror, used in a write-through proxy configuration.

Both the master and the mirror repository are the same repository format.

The master repository has corruption in some of its revision files, but the mirror repository does not. (Issue 3845).

Master and slave are still live since commits that don't access the corrupt data still work. We want to copy the slave to the master with minimal downtime.

The Repair

  1. Create a new repository that will become the new master.
  2. Use 'svnsync init' to setup the slave as the temporary source for the new master.
  3. At this point 'svnsync synchronize' can be used to bring the new master up-to-date, but rsync is probably faster.
  4. Adjust svn:sync-last-merged-rev to the youngest revision in the new master and run 'svnsync sync'.
  5. Disable revprop changes on the master, or make the master read-only.
  6. Copy 'db/revprops' from the master into the new master excluding db/revprops/0/0.
  7. Make the master read-only if not already.
  8. Ensure slave is up-to-date and run 'svnsync sync' to get any final commits.
  9. Copy 'db/revprops/0/0' from the master to the new master (removing svn:sync- revprops).
  10. Take master offline.
  11. Replace master 'db' with 'db' from new master.
  12. Check whether 'db/fsfs.conf' needs to be adjusted.
  13. Bring master back online.