#!/bin/sh set -e die () { echo "$0: Error: $1" >&2 exit 1 } if [ $# -ne 2 ] then die "Need 2 arguments: darcs-repo git-repo" fi DARCS_REPO="$1" GIT_REPO="$2" DARCS_FASTCONVERT=/srv/local/bin/darcs-fastconvert GIT_FAST_IMPORT=git-fast-import if [ ! -d "$DARCS_REPO" ]; then die "does not exist: $DARCS_REPO" fi if [ ! -d "$GIT_REPO" ]; then mkdir -p "$GIT_REPO" cd "$GIT_REPO" && git init fi DARCS_MARKS="$GIT_REPO/.darcs-marks" GIT_MARKS="$GIT_REPO/.git-marks" [ -f "$DARCS_MARKS" ] || touch "$DARCS_MARKS" [ -f "$GIT_MARKS" ] || touch "$GIT_MARKS" # echo "Mirroring $DARCS_REPO to $GIT_REPO..." ( cd "$DARCS_REPO" && "$DARCS_FASTCONVERT" export --read-marks="$DARCS_MARKS" --write-marks="$DARCS_MARKS" ) | \ ( cd "$GIT_REPO" && "$GIT_FAST_IMPORT" --quiet --import-marks="$GIT_MARKS" --export-marks="$GIT_MARKS" ) > /dev/null cd "$GIT_REPO" && git update-server-info