Skip to content

Instantly share code, notes, and snippets.

@MikeChristianson
Created November 30, 2016 18:04
Show Gist options
  • Save MikeChristianson/52f58af829c77c8d66747332508a4ee9 to your computer and use it in GitHub Desktop.
Save MikeChristianson/52f58af829c77c8d66747332508a4ee9 to your computer and use it in GitHub Desktop.
Restores a compressed Subversion dump to a new Subversion repository with its original repository UUID.
#!/bin/zsh -ex
# Restores a compressed Subversion dump to a new Subversion repository with its original repository UUID.
# Uses `svndumptool` to ensure improper EOLs in svn:log and svn:ignore are fixed.
# Paths are hardcoded, but easily changed to suit needs.
repo=$1
cd /data/svn
source svnenv/bin/activate
gunzip /extract/Recover/${repo}.gzip -c | pv -eta > ${repo}.svn
svndumptool.py eolfix-revprop svn:log ${repo}.svn ${repo}.eolfix-revprop-log.svn
rm ${repo}.svn
svndumptool.py eolfix-prop svn:ignore ${repo}.eolfix-revprop-log.svn ${repo}.eolfix-prop-ignore.svn
rm ${repo}.eolfix-revprop-log.svn
svnadmin create ${repo}
pv -eta -n ${repo}.eolfix-prop-ignore.svn | svnadmin load --force-uuid ${repo}
rm ${repo}.eolfix-prop-ignore.svn
deactivate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment