Currently when --all is passed, the effect of --match is only to demote non-matching tags to be treated like non-tags. This is puzzling behavior and not consistent with the documentation, especially with the suggested usage of avoiding information leaks. The combination of --all and --match is an oxymoron anyway, so just forbid it. Signed-off-by: Greg Price <price@xxxxxxx> --- This should be applied after the preceding patch; I mistakenly omitted the '1/2' in its subject line. Documentation/git-describe.txt | 3 ++- builtin/describe.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt index 711040d..fd5d8f2 100644 --- a/Documentation/git-describe.txt +++ b/Documentation/git-describe.txt @@ -83,7 +83,8 @@ OPTIONS --match <pattern>:: Only consider tags matching the given `glob(7)` pattern, excluding the "refs/tags/" prefix. This can be used to avoid - leaking private tags from the repository. + leaking private tags from the repository. This option is + incompatible with `--all`. --always:: Show uniquely abbreviated commit object as fallback. diff --git a/builtin/describe.c b/builtin/describe.c index 04c185b..90a72af 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -435,6 +435,9 @@ int cmd_describe(int argc, const char **argv, const char *prefix) if (longformat && abbrev == 0) die(_("--long is incompatible with --abbrev=0")); + if (pattern && all) + die(_("--match is incompatible with --all")); + if (contains) { const char **args = xmalloc((7 + argc) * sizeof(char *)); int i = 0; -- 1.7.11.3 -- 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