X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=absurd%2Fgit;h=0f562b549ea83f0c5fcc8326e223fecfca3cc751;hp=d65a558f1f6b971466f7d8f37f5dbe1c905abd79;hb=5026d3c30a7046299179ca3ba422fb21505cdf4d;hpb=38f6b086d867555316d1065dd7c00c309bb0415d diff --git a/absurd/git b/absurd/git index d65a558f..0f562b54 100755 --- a/absurd/git +++ b/absurd/git @@ -1,7 +1,14 @@ #!/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) $*" } @@ -27,11 +34,17 @@ done if $bypass; then PATH=$npath + echo >&3 "DGIT ABSURD GIT APPLY - BYPASS: $*" exec git "$@" fi log "NO BYPASS: $*" +case "$DGIT_ABSURD_DEBUG" in +''|0|1) ;; +*) set -x ;; +esac + #exec >/dev/tty 2>&1 index=0 @@ -43,6 +56,9 @@ for arg in "$@"; do index=1 continue ;; + 1.--whitespace=fix) + continue + ;; ?.-*) fail "UNKNOWN OPTION $arg ($*)" ;; @@ -63,9 +79,33 @@ 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