From: martin f. krafft Date: Sun, 1 Mar 2009 17:29:20 +0000 (+0100) Subject: initial checkin of svngit script/function X-Git-Url: https://git.madduck.net/etc/zsh.git/commitdiff_plain/8048047c5304404856874683f1ca2b46fa7faf5b initial checkin of svngit script/function Signed-off-by: martin f. krafft --- diff --git a/.zsh/func/svngit b/.zsh/func/svngit new file mode 100755 index 0000000..884e727 --- /dev/null +++ b/.zsh/func/svngit @@ -0,0 +1,51 @@ +#!/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 -