X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=absurd%2Fgit;h=0f562b549ea83f0c5fcc8326e223fecfca3cc751;hp=b78ec3b6a71c7503e766917854cf82412347fb26;hb=892352e386b2908574d660df3ee778171f59995b;hpb=de85fd5178bb68f6f98a955654e89241b337df4c diff --git a/absurd/git b/absurd/git index b78ec3b6..0f562b54 100755 --- a/absurd/git +++ b/absurd/git @@ -1,8 +1,19 @@ #!/bin/sh set -e +case "$DGIT_ABSURD_DEBUG" in +''|0) exec 3>/dev/null ;; +1) exec 3>>../../gbp-pq-output ;; +*) exec 3>>../../gbp-pq-output 2>&3 ;; +esac + +log () { + echo >&3 "DGIT ABSURD GIT APPLY (DEBUG) $*" + echo >&2 "DGIT ABSURD GIT APPLY (STDERR) $*" +} + fail () { - echo >&2 "DGIT ABSURD GIT APPLY - FAILED: $*" + log "FAILED: $*" exit 127 } @@ -23,10 +34,16 @@ done if $bypass; then PATH=$npath + echo >&3 "DGIT ABSURD GIT APPLY - BYPASS: $*" exec git "$@" fi -echo >&2 "DGIT ABSURD GIT APPLY - NO BYPASS: $*" +log "NO BYPASS: $*" + +case "$DGIT_ABSURD_DEBUG" in +''|0|1) ;; +*) set -x ;; +esac #exec >/dev/tty 2>&1 @@ -39,6 +56,9 @@ for arg in "$@"; do index=1 continue ;; + 1.--whitespace=fix) + continue + ;; ?.-*) fail "UNKNOWN OPTION $arg ($*)" ;; @@ -59,13 +79,37 @@ fi pwd=`pwd` patch=${patch#$pwd/debian/patches/} rm -f debian/patches/series -printf "%s\n" "$patch" >debian/patches/series +# Work around #848611. +# We need a stunt filename which the source package must not +# contain. A trick is to use the commit hash of HEAD, whose +# hash value cannot appear in any file in its own tree. +omgwtf="dgit-omg-wtf-$(git rev-parse HEAD)" +cat <debian/patches/$omgwtf +--- +--- a/$omgwtf 2016-10-31 23:28:47.314155919 +0000 ++++ b/$omgwtf 2016-12-18 22:40:01.870058270 +0000 +@@ -0,0 +1 @@ ++: +END +printf "%s\n" "$omgwtf" >debian/patches/series +printf "%s\n" "$patch" >>debian/patches/series + +# Just in case some joker tries to patch .git/something +mv .git ../.git +set +e dpkg-source --before-build . +rc=$? +set -e +rm -rf .git +mv ../.git . +test $rc = 0 + +rm -f $omgwtf debian/patches/$omgwtf rm -rf .pc git checkout debian/patches/series git add -Af . -echo >&2 "DGIT ABSURD GIT APPLY - APPLIED $patch" +log "APPLIED $patch" #printf 'APPLIED '; date --iso-8601=ns