svn-backup-dumps(1)

NAME
svn-backup-dumps - Create dumpfiles to backup a subversion repository.

SYNOPSIS
svn-backup-dumps <repos> <dumpdir>

DESCRIPTION
svn-backup-dumps creates dumpfiles from a subversion repository. It is intended for use in cron jobs and post-commit hooks.

The basic modes of operation are:

•   Create a full dump (revisions 0 to HEAD)

•   Create incremental dump containing at most N revisions.

•   Create incremental single-revision dumps (for use in post-commit).

Dumpfiles are named in the format basename.rev.svndmp or basename.rev.rev.svndmp, where basename is the repository directory name, and the rev arguments are the first and last revision numbers represented in the dumpfile, zero-padded to 6 digits.

Optionally, svn-backup-dumps can compress dumpfiles with gzip or bzip2, and can transfer them to another host using FTP or SMB (using smbclient).

OPTIONS

--version
    Show program's version number and exit.

-h, --help
    Show this help message and exit.

-b  Compress the dump using bzip2.

--deltas
    This is passed through to svnadmin dump.

-c count
    Maximum number of revisions per dumpfile.

-o  Overwrite files.

-O  Overwrite all files.

-q  Quiet.

-r rev
    Specify a single-revision dumpfile.

-t ftp:host:user:password:path
-t smb:share:user:password:path
    Transfer dumps to another machine using the FTP or SMB protocols. path is where to store the dumpfiles on the remote server; any occurrence of %r in the path is replaced by the repository name. Support for "smb:" requires the smbclient program.

-z  Compress the dump using gzip.

EXAMPLES
To create a full dump of all revisions of a repository /srv/svn/foo in the directory /var/backup/svn:

svn-backup-dumps /srv/svn/foo /var/backup/svn

The dumpfile will be named src.000000-NNNNNN.svndmp.gz where NNNNNN is the head revision number.

To create incremental dumps containing at most 1000 revisions:

svn-backup-dumps --deltas -z -c 1000 /srv/svn/foo /var/backup/svn

If the youngest revision is 2923, it creates the following files:

    foo.000000-000999.svndmp.gz
    foo.001000-001999.svndmp.gz
    foo.002000-002923.svndmp.gz

If run again, later, when the youngest revision is 3045, it creates these two files:

    foo.002000-002999.svndmp.gz
    foo.003000-003045.svndmp.gz

Note that it does not remove the redundant file foo.002000-002923.svndmp.gz.

To create incremental single-revision dumps from a post-commit hook:

svn-backup-dumps -r $rev $repos /var/backups/svn

where $rev and $repos are variables previously set in the post-commit script from its command line. The dumpfile name will be in the form foo.000352.svndmp.

To send the dumpfiles to the SMB share \\\\ERNEST\\BACKUPS in a directory \\svn\\foo with user svnuser and password w0rth1ng:

    svn-backup-dumps -t "smb://ERNEST/BACKUPS:svnuser:w0rth1ng:svn/%r /srv/svn/foo /tmp/tmpbackup

Note that the %r in the path is replaced by the repository name foo. Note also that a local backup directory is required, at present, even when using the -t option.

AUTHOR
Voluntary contributions made by many individuals. Copyright © 2006 CollabNet.