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.
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.