Verify that the basic plumbing works when .git is a file pointing at the real git directory. Signed-off-by: Lars Hjemli <hjemli@xxxxxxxxx> --- t/t0002-gitfile.sh | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) create mode 100755 t/t0002-gitfile.sh diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh new file mode 100755 index 0000000..55276c6 --- /dev/null +++ b/t/t0002-gitfile.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +test_description='.git file + +Verify that plumbing commands work when .git is a file +' +. ./test-lib.sh + +chkfile() { + D=$(echo $1 | cut -b 1-2) && + F=$(echo $1 | cut -b 3-40) && + if test ! -f $REAL/objects/$D/$F + then + echo "Object not found: $REAL/objects/$D/$F" + false + fi +} + +test_expect_success 'setup' ' + REAL=$(pwd)/.real && + mv .git $REAL && + echo "GITDIR: $REAL" >.git +' + +test_expect_success 'check rev-parse --git-dir' ' + test "$REAL" = "$(git rev-parse --git-dir)" +' + +test_expect_success 'check hash-object' ' + echo "foo" >bar && + SHA=$(cat bar | git hash-object -w --stdin) && + chkfile $SHA +' + +test_expect_success 'check cat-file' ' + git cat-file blob $SHA >actual && + diff -u bar actual +' + +test_expect_success 'check update-index' ' + if test -f $REAL/index + then + echo "Hmm, $REAL/index exists?" + false + fi && + rm -rf $REAL/objects/* && + git update-index --add bar && + if ! test -f $REAL/index + then + echo "$REAL/index not found" + false + fi && + chkfile $SHA +' + +test_expect_success 'check write-tree' ' + SHA=$(git write-tree) && + chkfile $SHA +' + +test_expect_success 'check commit-tree' ' + SHA=$(echo "commit bar" | git commit-tree $SHA) && + chkfile $SHA +' + +test_expect_success 'check rev-list' ' + echo $SHA >$REAL/HEAD && + test "$SHA" = "$(git rev-list HEAD)" +' + +test_done -- 1.5.4.GIT-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html