diff options
author | Stefan Beller <sbeller@google.com> | 2017-03-21 23:57:18 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-22 18:13:41 +0100 |
commit | b0176ce6b5d954a747dc4d0c5a8593ed576714c4 (patch) | |
tree | 2ff1ee516b34b29613cfe8ac9af99bf377a212f2 /t/t6120-describe.sh | |
parent | Sync with 2.12.1 (diff) | |
download | git-b0176ce6b5d954a747dc4d0c5a8593ed576714c4.tar.xz git-b0176ce6b5d954a747dc4d0c5a8593ed576714c4.zip |
builtin/describe: introduce --broken flag
git-describe tells you the version number you're at, or errors out, e.g.
when you run it outside of a repository, which may happen when downloading
a tar ball instead of using git to obtain the source code.
To keep this property of only erroring out, when not in a repository,
severe (submodule) errors must be downgraded to reporting them gently
instead of having git-describe error out completely.
To achieve that a flag '--broken' is introduced, which is in the same
vein as '--dirty' but uses an actual child process to check for dirtiness.
When that child dies unexpectedly, we'll append '-broken' instead of
'-dirty'.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t6120-describe.sh')
-rwxr-xr-x | t/t6120-describe.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh index 167491fd5b..16952e44fc 100755 --- a/t/t6120-describe.sh +++ b/t/t6120-describe.sh @@ -233,4 +233,24 @@ test_expect_success 'describe --contains and --no-match' ' test_cmp expect actual ' +test_expect_success 'setup and absorb a submodule' ' + test_create_repo sub1 && + test_commit -C sub1 initial && + git submodule add ./sub1 && + git submodule absorbgitdirs && + git commit -a -m "add submodule" && + git describe --dirty >expect && + git describe --broken >out && + test_cmp expect out +' + +test_expect_success 'describe chokes on severly broken submodules' ' + mv .git/modules/sub1/ .git/modules/sub_moved && + test_must_fail git describe --dirty +' +test_expect_success 'describe ignoring a borken submodule' ' + git describe --broken >out && + grep broken out +' + test_done |