#!/bin/sh # # func/svngit # # one-time conversion of SVN repositories to Git repositories # # Copyright © 2006–2009 martin f. krafft # 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 -