git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/3] tag: Check that options are only allowed in the appropriate mode

From
Samuel Tardieu <sam@rfc1149.net>
Date
Nov 4, 2008, 12:42 UTC
Message-ID
<20081104124212.18273.5402.stgit@arrakis.enst.fr>
In-Reply-To
<20081104124207.18273.31679.stgit@arrakis.enst.fr>

"git tag" should not silently accept unrecognized options when operating in a given mode. For example, "git tag -n 100", which may be a typo for "git tag -n100", should not silently create a tag named "100".

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
---
 builtin-tag.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/builtin-tag.c b/builtin-tag.c
index 5ce0e21..d339971 100644
--- a/builtin-tag.c
+++ b/builtin-tag.c
@@ -344,7 +344,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
 	const char *object_ref, *tag;
 	struct ref_lock *lock;
 
-	int annotate = 0, sign = 0, force = 0, lines = 0,
+	int annotate = 0, sign = 0, force = 0, lines = -1,
 		list = 0, delete = 0, verify = 0;
 	const char *msgfile = NULL, *keyid = NULL;
 	struct msg_arg msg = { 0, STRBUF_INIT };
@@ -383,10 +383,16 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
 	if (argc == 0 && !(delete || verify))
 		list = 1;
 
+	if ((annotate || msg.given || msgfile || force) &&
+	    (list || delete || verify))
+		usage_with_options(git_tag_usage, options);
+
 	if (list + delete + verify > 1)
 		usage_with_options(git_tag_usage, options);
 	if (list)
-		return list_tags(argv[0], lines);
+		return list_tags(argv[0], lines == -1 ? 0 : lines);
+	if (lines != -1)
+		die("-n option is only allowed with -l.");
 	if (delete)
 		return for_each_tag_name(argv, delete_tag);
 	if (verify)
Previous: Samuel TardieuNext: Samuel Tardieu
Message 2 of 5 in “tag: Do not allow to call "git tag" in more than one operating mode”
  1. 1/3 tag: Do not allow to call "git tag" in more than one operating modeSamuel Tardieu, Nov 4, 2008
  2. 2/3 tag: Check that options are only allowed in the appropriate modeSamuel Tardieu, Nov 4, 2008
  3. 3/3 tag: Add more tests about mixing incompatible modes and optionsSamuel Tardieu, Nov 4, 2008
  4. Junio C HamanoNov 4, 2008
  5. Samuel TardieuNov 4, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.