svn commit: r244028 - user/uqs/git_conv
Ulrich Spoerlein
uqs at FreeBSD.org
Sat Dec 8 10:23:51 UTC 2012
Author: uqs
Date: Sat Dec 8 10:23:51 2012
New Revision: 244028
URL: http://svnweb.freebsd.org/changeset/base/244028
Log:
Allow some overrides via environment, add some sanity checking.
Modified:
user/uqs/git_conv/git_conv
Modified: user/uqs/git_conv/git_conv
==============================================================================
--- user/uqs/git_conv/git_conv Sat Dec 8 09:58:11 2012 (r244027)
+++ user/uqs/git_conv/git_conv Sat Dec 8 10:23:51 2012 (r244028)
@@ -2,16 +2,16 @@
#
# Repository creation and setup
#
-# Simple for svn2git repos, need to run against local paths, using rules files in ~uqs/svn2git
-# - First svn2git run will create target git repo
+# Simple for svn2git repos, need to run against local paths, using rules files in ~git/*.rules
+# - First svn2git run will create target git repo, then
# - git remote add github github.com:freebsd/freebsd.git
# - git config --add remote.github.push '+refs/heads/master:refs/heads/master'
# - git config --add remote.github.push '+refs/heads/stable/*:refs/heads/stable/*'
# - git config --add remote.github.push '+refs/heads/projects/*:refs/heads/projects/*'
# - git config --add remote.github.push '+refs/notes/*:refs/notes/*'
# - etc.
-# - touch freebsd.git/git-daemon-export-ok
-# - ~uqs/svn2git/svn-all-fast-export --rules ~uqs/svn2git/freebsd.rules --add-metadata-notes --identity-domain FreeBSD.org /home/svn/base
+# - touch freebsd-base.git/git-daemon-export-ok
+# - svn2git/svn-all-fast-export --rules ~git/freebsd-base.rules --add-metadata-notes --identity-domain FreeBSD.org /home/svn/base
# - git push github
# done. Analog steps needed for doc and ports.
#
@@ -25,9 +25,14 @@
# - git push github
LOCK=/tmp/gitconv.lock
-RULES=/home/uqs/svn2git
-SVN2GIT=/home/uqs/svn2git/svn-all-fast-export
-BASE=/home/git
+
+: ${BASE=/home/git}
+: ${RULES_DIR=${BASE}}
+: ${SVN2GIT=${BASE}/svn2git/svn-all-fast-export}
+
+: ${SRC_REPO=/home/svn/base}
+: ${DOC_REPO=/home/svn/doc}
+: ${PORTS_REPO=/home/svn/ports}
trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
if ! shlock -p $$ -f ${LOCK}; then
@@ -46,8 +51,11 @@ svn2git()
target=${rules%.rules}.git
target=`basename $target`
- echo "Converting $source to $target using svn2git"
+ test -d "$BASE" || { echo "$BASE is not a directory, exiting ..." >&2; exit 1; }
+ test -f "$rules" || { echo "$rules do not exist, exiting ..." >&2; exit 1; }
+
cd $BASE
+ echo "Converting $source to $target using svn2git"
$SVN2GIT --add-metadata-notes --identity-domain FreeBSD.org \
--rules $rules $source
if [ $? != 0 ]; then
@@ -69,8 +77,9 @@ gitsvn()
target=$1; shift
dest="$@"
- echo "Converting $target using git-svn"
+ test -d "$BASE/$target/.git" || { echo "$BASE/$target is not a git repo, exiting ..." >&2; exit 1; }
cd $BASE/$target
+ echo "Converting $target using git-svn"
git svn rebase
if [ $? != 0 ]; then
echo "Error in git-svn conversion of $target" >&2
@@ -85,10 +94,10 @@ gitsvn()
fi
}
-svn2git $RULES/freebsd.rules /home/svn/base github
-svn2git $RULES/freebsd-doc.rules /home/svn/doc github
-svn2git $RULES/freebsd-ports.rules /home/svn/ports github
-
gitsvn src-head.git github
gitsvn doc-head.git github
gitsvn ports-head.git github
+
+svn2git $RULES_DIR/freebsd.rules ${SRC_REPO} github
+svn2git $RULES_DIR/freebsd-doc.rules ${DOC_REPO} github
+svn2git $RULES_DIR/freebsd-ports.rules ${PORTS_REPO} github
More information about the svn-src-user
mailing list