From: Samuel Tardieu Date: Tue, 04 Nov 2008 12:42:07 GMT Subject: [PATCH 1/3] tag: Do not allow to call "git tag" in more than one operating mode Message-ID: <20081104124207.18273.31679.stgit@arrakis.enst.fr> If "git tag -d -l -v ..." is called, only "-l" is honored, which is arbitrary and wrong. This patch checks that "git tag" knows in what mode it operates before performing any operation. Signed-Off-By: Samuel Tardieu --- builtin-tag.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/builtin-tag.c b/builtin-tag.c index 84db156..5ce0e21 100644 --- a/builtin-tag.c +++ b/builtin-tag.c @@ -380,7 +380,11 @@ int cmd_tag(int argc, const char **argv, const char *prefix) } if (sign) annotate = 1; + if (argc == 0 && !(delete || verify)) + list = 1; + if (list + delete + verify > 1) + usage_with_options(git_tag_usage, options); if (list) return list_tags(argv[0], lines); if (delete) @@ -406,11 +410,6 @@ int cmd_tag(int argc, const char **argv, const char *prefix) } } - if (argc == 0) { - if (annotate) - usage_with_options(git_tag_usage, options); - return list_tags(NULL, lines); - } tag = argv[0]; object_ref = argc == 2 ? argv[1] : "HEAD";