X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Ftests%2Fbadcommit-rewrite;h=3e2f37e71da47ab893a671e8dfa147a6283bb6d3;hb=d436b26183c219a8633f84aa39cf991fd8b6de4d;hp=bcec8e66b2df1d9d3299d7391ba61792c1fcdd68;hpb=82ba0c6c552997a376968218d5e558fe491dfc6b;p=dgit.git diff --git a/tests/tests/badcommit-rewrite b/tests/tests/badcommit-rewrite index bcec8e66..3e2f37e7 100755 --- a/tests/tests/badcommit-rewrite +++ b/tests/tests/badcommit-rewrite @@ -3,8 +3,14 @@ set -e . tests/lib t-setup-import examplegit +t-tstunt-parsechangelog -cd example +cd $tmp/git/$p.git +git config core.sharedRepository true +chmod -R g+w objects +umask 022 + +cd $tmp/example suite=stable @@ -22,15 +28,35 @@ rstable=refs/remotes/dgit/dgit/stable t-dgit fetch stable t-has-parent-or-is $rstable $badcommit +fixup=${DGIT_BADCOMMIT_FIXUP-dgit-badcommit-fixup} + cd $tmp/git/$p.git -${DGIT_BADCOMMIT_FIXUP} --real +git gc --aggressive --prune=all +rmdir objects/* ||: + +$fixup --real cd $tmp/$p -${DGIT_BADCOMMIT_FIXUP} --real +git symbolic-ref HEAD >../sym.before +git rev-parse HEAD >../ref.before + +$fixup --real + +git symbolic-ref HEAD >../sym.after +git rev-parse HEAD >../ref.after +diff ../sym.before ../sym.after +set +e; diff ../ref.before ../ref.after; rc=$?; set -e; test $rc = 1 t-dgit fetch stable t-expect-fail "child $rstable lacks parent $badcommit" \ t-has-parent-or-is $rstable $badcommit +check_shared () { + find "$1" -perm -200 \! -perm -020 -ls |tee $tmp/badperm + test -f $tmp/badperm -a ! -s $tmp/badperm +} + +check_shared $tmp/git/$p.git/objects + t-ok