Archive revisions

Set up a separate disk device and store large revisions there so they don't take up unnecessary space in the database.

Some files, such as third-party compiled tools, programs, binaries, and other large files, rarely change and you rarely access them in a production environment. It costs disk space and time to store and retrieve these revisions from the database, so you can archive these files instead. Then, when you need to access those revisions, Unity Version Control (UVCS) searches for them in the external storage to retrieve them.

Archive a revision

Note: The repository owner needs to execute the archive command for the revisions to archive correctly, otherwise UVCS continues to use the database to access the revisions.

To archive a revision, use the cm archive command, for example:

cm archive C:\mybigfile.tar#br:/main#0 -c="big file of libraries" -f="/home/plastic/bigfileTARrev0"
  • The command archives revision 0 of the main branch of the mybigfile.tar item. It creates several chunks of the revision, each one of which contains a part of the revision content.
  • UVCS creates the archive files in /home/plastic/bigfileTARrev0.
  • The -f parameter is a prefix for the archive files that you can use as a destination path for the archives. If you omit the -f switch, UVCS creates the archived files in the current directory.

To archive several revisions, specify them one after the other in the same command. For more information, use the cm archive --help command.

Access archived revisions

To access data stored in an external location, you need to create an externaldata.conf file. This file contains a path per line, with each path as the locations of the stored revisions. The following is an example of an externaldata.conf file:

E:\archivesOfRepository1
D:\mybigfiles\revisionsOfBigFileTAR
F:\revisionsOfThe2_9Release

There are two locations that you can create the externaldata.conf file:

  • If you place the configuration file in the UVCS server location, you allow every user to automatically access those revisions as long as the external storage area is available.
  • If you place the configuration file in the UVCS client folder or in the user local directory, you can supply the archived contents to users individually and they can configure externaldata.conf on the client side.

Configuration file in the GUI

If a user tries to access any stored revision from the GUI and there is no externaldata.conf, a dialog appears to ask for the location of the data. After you identify the first chunk of the revision, UVCS can find the other chunks of the revision. UVCS can then create an externaldata.conf file in the local user directory, and from that moment on, UVCS tries to access the archived revisions from that location. If UVCS can't access the data at a certain point in time, it shows the same dialog again. If you identify a new location, UVCS adds this location to the existing externaldata.conf file.

Configuration file in the CLI

From the CLI (command-line interface) an externaldata.conf needs to always be available. If not, the command line asks you for an externaldata.conf to look for the revisions.

Restore archived revisions

You can use the command line to restore archived revisions back into the database, so you can safely delete the archives. Then, UVCS returns to using the database to retrieve the data.

To restore archived revisions, use the --restore command, for example:

cm archive C:\mybigfile.tar#br:/main#0 --restore

The example restores revision 0 of the main branch of the file mybigfile.tar into the database. UVCS no longer uses the archives of that revision.