svn-backup-dumps

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 R basename . rev .svndmp or R 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 R gzip or bzip2 , and can transfer them to another host using FTP or SMB (using R smbclient ).

OPTIONS

--version
Show program's version number and exit.
R -h , --help
Show this help message and exit.
-b
Compress the dump using R bzip2 .
--deltas
This is passed through to R svnadmin dump .
I -c count
Maximum number of revisions per dumpfile.
-o
Overwrite files.
-O
Overwrite all files.
-q
Quiet.
I -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 R gzip .

EXAMPLES

To create a full dump of all revisions of a repository R /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 R $rev and $repos are variables previously set in the post-commit script from its command line. The dumpfile name will be in the form R foo.000352.svndmp .
To send the dumpfiles to the SMB share \\\\ERNEST\\BACKUPS in a directory \\svn\\o with user svnuser and password R 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 R 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.