Browse Source

2015-06-10 git2darcs.sh (initial)

Ignore-this: 4ad6fb3819de99a843226fbc7317fff3
freifunk 9 years ago
parent
commit
e7eaaa8665
1 changed files with 24 additions and 0 deletions
  1. 24 0
      _NOWIKI/git2darcs/git2darcs.sh

+ 24 - 0
_NOWIKI/git2darcs/git2darcs.sh

@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -e
+
+[ -d _darcs -a -d .git ] || exit 1
+
+TMPDIR=/tmp/git2darcs
+[ -d $TMPDIR -a -w $TMPDIR ] || mkdir -p $TMPDIR || exit 1
+
+HEAD=`git rev-list --no-walk --pretty=%H HEAD | tail -1`
+git pull --ff-only --all
+FETCH_HEAD=`git rev-list --no-walk --pretty=%H FETCH_HEAD | tail -1`
+
+[ -n "$HEAD" -a -n "$FETCH_HEAD" ] && [ "$HEAD" = "$FETCH_HEAD" ] && exit 0
+
+NEW_COMMITS="$HEAD..$FETCH_HEAD"
+
+git rev-list --reverse --no-walk "$NEW_COMMITS" > $TMPDIR/rev-list
+
+[ -s $TMPDIR/rev-list ]
+sed -n -E -e 's@^(.+)$@git reset --hard \1 \&\& git rev-list --no-walk --pretty=\"%s%n%-b%n%ad %H\" \1 \| tail +2 > '"$TMPDIR/body"' \&\& git rev-list --no-walk --pretty=format:\"darcs record --all --look-for-adds --logfile='"$TMPDIR/body"' --author \\\"%an <%ae>\\\"\" \1 | tail +2 > '"$TMPDIR/git2darcs.darcs.sh"' \&\& sh '"$TMPDIR/git2darcs.darcs.sh"'@p' $TMPDIR/rev-list > $TMPDIR/git2darcs.sh
+sh $TMPDIR/git2darcs.sh
+
+rm -rf $TMPDIR