X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/177abc159286a0e1c19614a169aeae6036b5955a..93537291cc8fdeb834b8bcffaa5882d753dafd2c:/lib/git-svn?ds=sidebyside

diff --git a/lib/git-svn b/lib/git-svn
index 4edda1d..7e42b88 100644
--- a/lib/git-svn
+++ b/lib/git-svn
@@ -3,14 +3,33 @@
 # To make mr use this file, add a line like this inside the [DEFAULT]
 # section of your ~/.mrconfig
 #include = cat /usr/share/mr/git-svn
-
-git_test = test -d "$MR_REPO"/.git && ! test -d "$MR_REPO"/.git/svn/git-svn
-git_svn_test = test -d "$MR_REPO"/.git/svn/git-svn
-git_svn_update = git-svn fetch
+#
+# Note that by default this makes mr update do a git svn fetch.
+# Some might prefer it to do a git svn rebase, if you do, you can
+# configure that as follows in your ~/.mrconfig:
+#git_svn_update = git svn rebase
+git_svn_update = git svn fetch
 git_svn_status = git status "$@" || true
-git_svn_commit = git-svn dcommit
+git_svn_commit = git svn dcommit
+git_svn_push = git svn dcommit
 git_svn_record = git commit -a "$@"
 git_svn_diff = git diff "$@"
-git_svn_log = git log "$@"
+git_svn_log = git svn log "$@"
+
+git_test =
+	test -d "$MR_REPO"/.git &&
+	test -z "$(GIT_CONFIG="$MR_REPO"/.git/config git config --get svn-remote.svn.url)"
+
+git_svn_test =
+	test -d "$MR_REPO"/.git &&
+	test -n "$(GIT_CONFIG="$MR_REPO"/.git/config git config --get svn-remote.svn.url)"
+
+git_svn_register =
+	url="`LC_ALL=C git config --get svn-remote.svn.url`" || true
+	if [ -z "$url" ]; then
+		error "cannot determine git svn url"
+	fi
+	echo "Registering git svn url: $url in $MR_CONFIG"
+	mr -c "$MR_CONFIG" config "`pwd`" checkout="git svn clone '$url' '$MR_REPO'"
 
 # vim:sw=8:sts=0:ts=8:noet