--- /dev/null
+#!/bin/sh
+#
+# func/svngit
+#
+# one-time conversion of SVN repositories to Git repositories
+#
+# Copyright © 2006–2009 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: git://git.madduck.net/etc/zsh.git
+#
+
+local svnrepo dest args
+args=()
+
+for arg in "$@"; do
+ case "$arg" in
+ (svn+*|svn://|http://)
+ if [[ -z $svnrepo ]]; then
+ svnrepo="$arg"
+ else
+ echo "E: SVN repository multiply defined." >&2
+ exit 1
+ fi
+ ;;
+ (*)
+ if [[ -e $dest ]]; then
+ if [[ -d $dest ]] && [[ -z $svnrepo ]] && svn info $svnrepo >/dev/null 2>&1; then
+ svnrepo="$arg"
+ else
+ echo "E: destination $dest already exists." >&2
+ exit 1
+ fi
+ fi
+ if [[ -z $dest ]]; then
+ dest="$arg"
+ else
+ args+="$arg"
+ fi
+ ;;
+ esac
+done
+
+git svn clone --no-metadata $args "$svnrepo" "$dest"
+
+cd "$dest/.git"
+
+test -d svn && rm -r svn
+rm -rf **/git-svn*
+
+cd -