Repository Addresses

Each repository has an address which other repositories use to contact it. These addresses are made up of a host and a port and are written "host:port". They're used with vrepl's -s flag and the -R flag used with many of the repository tools.

These addresses are automatically recorded by the repository in the master-repository attributes which are used by peer repositories to locate the repository with the master copy of an object. They're also used in the #replicate-from, #replicate-from-noac, #mastership-from, and #mastership-to attributes which control which peer repositories your repository can interact with. (See RemoteCheckoutSetup.)

Address Changes

In some cases your repository may need to change its address.

If this happens, you'll need to update the attributes which contain repository addresses.

fixup-master-repos.pl

fixup-master-repos.pl is a script which can correct the master-repository attributes for you. There are two ways to use it:

  1. "fixup-master-repos.pl" by itself will find all the objects mastered in the local repository and correct their master-repository attributes. This is how you should use it on the repository which is having its address changed.

  2. "fixup-master-repos.pl -o oldhost[:oldport] -n newhost[:newport]" will find any master-repository attributes which contain the address "oldhost[:oldport]" and replace it with "newhost[:newport]". This is how you should use it on peer repositories which contain replicas of objects mastered in the repository having its address changed.

There are a few things which this script does not do which perhaps it should: