12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/sh
- [ -d _darcs -a -d .git ] || exit 1
- PREFIX=/usr/local
- DARCS=$PREFIX/bin/darcs
- XSLTPROC=$PREFIX/bin/xsltproc
- TMPDIR=/tmp/darcs2git
- [ -d $TMPDIR -a -w $TMPDIR ] || mkdir -p $TMPDIR
- DARCS2GIT_XSLT=`dirname $0`/darcs2git.xslt
- [ -r $DARCS2GIT_XSLT ] || exit 1
- $DARCS fetch --all --summary --quiet > /dev/null &&
- $DARCS pull --all --quiet --dry-run --xml-output > $TMPDIR/patches.xml
- [ -s $TMPDIR/patches.xml ] || exit 2
- if head -n 1 $TMPDIR/patches.xml | grep "No remote changes to pull in!"
- then
- echo "No remote changes to pull in!" >&2
- exit 2
- fi
- $XSLTPROC --nonet --novalid --stringparam TMPDIR "$TMPDIR/" $DARCS2GIT_XSLT $TMPDIR/patches.xml > $TMPDIR/doit.sh && \
- sh -x $TMPDIR/doit.sh
- exit $?
- # Für jeden patch (identifiziert durch seinen hash):
- # 1. darcs fetch
- # 2. darcs pull --dry-run --xml-output > patches.xml
- # 3. xsltproc --nonet --novalid darcs2git.xslt patches.xml > doit.sh
- #
- # 2. darcs pull - -matches="hash $HASH" --post-hook="$DARCS_FILES und $DARCS_PATCHES_XML wegschreiben"
- # 3. git add $DARCS_FILES
- # 4. git commit -F "$name\n\n$comment" --author=$author --date=$date $DARCS_FILES
- ##### Praeliminiarien: s. darcs2git.init.sh #####
- #
- ### wikidata ###
- # mkdir wikidata
- # cd wikidata
- ### darcs ###
- # darcs initialize
- # echo "https://mesh-j-1.free.de/~ffdo/wiki/wikidata" > _darcs/prefs/defaultrepo
- # patch _darcs/prefs/boring
- 9a10,12
- > # wg. git
- > \.git$
- >
- ^D
- Hmm... Looks like a normal diff to me...
- Patching file _darcs/prefs/boring using Plan A...
- Hunk #1 succeeded at 10.
- done
- ### git ###
- # git config --global user.name "FF-DO-Wiki `hostname`"
- # git config --global user.email "$USER@`hostname`"
- # git init
- # echo "_darcs" > .gitignore
- # git add .gitignore
- # git commit -m "ignore _darcs" .gitignore
|