Created
September 13, 2018 14:01
-
-
Save approximatenumber/40cc6377027ea921ccc307a52d3ef4ee to your computer and use it in GitHub Desktop.
Another way to dump amd load path of SVN repo: creating empty repo, commiting needed commits and update props
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# set empty repo with enabled pre-revprop-change hook | |
# set first last revisions to dump and migrate | |
first_rev='1' | |
last_rev='15' | |
# range of revisions of old repo to migrate | |
revs="$(svn log -q -r$first_rev:$last_rev | grep -oE '^r[0-9]+' | tr -d 'r' | sort -n)" | |
# working copy of empty repo where old revisions will be moved | |
empty_repo='../empty_repo/' | |
new_rev=1 | |
for rev in $revs; do | |
svn up -r$rev --force | |
commit_msg=$(svn log -r$rev | sed '4!d') | |
commit_author=$(svn log -r$rev | sed '2 !d' | cut -d'|' -f2) | |
commit_date=$(date -u +"%Y-%m-%dT%H:%M:%S.000000Z" -d "$(LANG=C svn info | grep 'Date' | cut -d' ' -f4-8)") | |
echo "* Commit info to migrate: $commit_author | $date | $commit_msg" | |
rsync -av --exclude=".svn/" ./ "$empty_repo" | |
pushd "$empty_repo" | |
svn add . --force | |
svn commit -m "$commit_msg" | |
svn propset --revprop -r$new_rev svn:author $commit_author | |
svn propset --revprop -r$new_rev svn:date $commit_date | |
popd | |
let new_rev+=1 | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment