The dirty ones are already passing, but just because describe is comparing with the wrong working tree. Signed-off-by: Sebastian Staudt <koraktor@xxxxxxxxx> --- t/t6120-describe.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh index d639d94696..c863c4f600 100755 --- a/t/t6120-describe.sh +++ b/t/t6120-describe.sh @@ -145,14 +145,38 @@ check_describe A-* HEAD check_describe "A-*[0-9a-f]" --dirty +test_expect_success 'describe --dirty with --work-tree' " + ( + cd '$TEST_DIRECTORY' && + git --git-dir '$TRASH_DIRECTORY/.git' --work-tree '$TRASH_DIRECTORY' describe --dirty >'$TRASH_DIRECTORY/out' + ) && + grep 'A-\d\+-g[0-9a-f]\+' '$TRASH_DIRECTORY/out' +" + test_expect_success 'set-up dirty work tree' ' echo >>file ' check_describe "A-*[0-9a-f]-dirty" --dirty +test_expect_success 'describe --dirty with --work-tree' " + ( + cd '$TEST_DIRECTORY' && + git --git-dir '$TRASH_DIRECTORY/.git' --work-tree '$TRASH_DIRECTORY' describe --dirty >'$TRASH_DIRECTORY/out' + ) && + grep 'A-\d\+-g[0-9a-f]\+-dirty' '$TRASH_DIRECTORY/out' +" + check_describe "A-*[0-9a-f].mod" --dirty=.mod +test_expect_success 'describe --dirty=.mod with --work-tree' " + ( + cd '$TEST_DIRECTORY' && + git --git-dir '$TRASH_DIRECTORY/.git' --work-tree '$TRASH_DIRECTORY' describe --dirty=.mod >'$TRASH_DIRECTORY/out' + ) && + grep 'A-\d\+-g[0-9a-f]\+.mod' '$TRASH_DIRECTORY/out' +" + test_expect_success 'describe --dirty HEAD' ' test_must_fail git describe --dirty HEAD ' @@ -303,12 +327,21 @@ test_expect_success 'describe chokes on severely broken submodules' ' mv .git/modules/sub1/ .git/modules/sub_moved && test_must_fail git describe --dirty ' + test_expect_success 'describe ignoring a broken submodule' ' git describe --broken >out && test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" && grep broken out ' +test_expect_success 'describe with --work-tree ignoring a broken submodule' " + ( + cd '$TEST_DIRECTORY' && + git --git-dir '$TRASH_DIRECTORY/.git' --work-tree '$TRASH_DIRECTORY' describe --broken >'$TRASH_DIRECTORY/out' + ) && + grep broken '$TRASH_DIRECTORY/out' +" + test_expect_success 'describe a blob at a directly tagged commit' ' echo "make it a unique blob" >file && git add file && git commit -m "content in file" && -- 2.20.1