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

Re: [PATCH] Mention the fact that 'git annotate' is only for backward compatibility.

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 5, 2008, 07:56 UTC
Message-ID
<7vod33vxeo.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<20080904123046.GX10544@machine.or.cz>
Petr Baudis <pasky@suse.cz> writes:
> I'm also curious about
> ...
> in builtin-blame.c. Junio, you introduced this in e68989a739d - why
> do you use a separate flag instead of OUTPUT_ANNOTATE_COMPAT?
Let's do this.  Still passes t8001 and t9400.

-- >8 -- "blame -c" should be compatible with "annotate"

There is no reason to have a separate variable cmd_is_annotate; OUTPUT_ANNOTATE_COMPAT option is supposed to produce the compatibility output, and we should produce the same output even when the command was not invoked as "annotate" but as "blame -c".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin-blame.c                 |    9 +++++----
 t/t9400-git-cvsserver-server.sh |   13 +++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)
diff --git i/builtin-blame.c w/builtin-blame.c
index d2fc68c..9bc901c 100644
--- i/builtin-blame.c
+++ w/builtin-blame.c
@@ -38,7 +38,6 @@ static int show_root;
 static int reverse;
 static int blank_boundary;
 static int incremental;
-static int cmd_is_annotate;
 static int xdl_opts = XDF_NEED_MINIMAL;
 static struct string_list mailmap;
 
@@ -1686,7 +1685,7 @@ static void emit_other(struct scoreboard *sb, struct blame_entry *ent, int opt)
 		if (suspect->commit->object.flags & UNINTERESTING) {
 			if (blank_boundary)
 				memset(hex, ' ', length);
-			else if (!cmd_is_annotate) {
+			else if (!(opt & OUTPUT_ANNOTATE_COMPAT)) {
 				length--;
 				putchar('^');
 			}
@@ -2317,8 +2316,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
 	};
 
 	struct parse_opt_ctx_t ctx;
-
-	cmd_is_annotate = !strcmp(argv[0], "annotate");
+	int cmd_is_annotate = !strcmp(argv[0], "annotate");
 
 	git_config(git_blame_config, NULL);
 	init_revisions(&revs, NULL);
@@ -2346,6 +2344,9 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
 parse_done:
 	argc = parse_options_end(&ctx);
 
+	if (cmd_is_annotate)
+		output_option |= OUTPUT_ANNOTATE_COMPAT;
+
 	if (DIFF_OPT_TST(&revs.diffopt, FIND_COPIES_HARDER))
 		opt |= (PICKAXE_BLAME_COPY | PICKAXE_BLAME_MOVE |
 			PICKAXE_BLAME_COPY_HARDER);
diff --git i/t/t9400-git-cvsserver-server.sh w/t/t9400-git-cvsserver-server.sh
index 4b91f8d..c1850d2 100755
--- i/t/t9400-git-cvsserver-server.sh
+++ w/t/t9400-git-cvsserver-server.sh
@@ -488,4 +488,17 @@ test_expect_success 'cvs co -c (shows module database)' '
     ! grep -v "^master[	 ]\+master$" < out
 '
 
+#------------
+# CVS ANNOTATE
+#------------
+
+cd "$WORKDIR"
+test_expect_success 'cvs annotate' '
+    cd cvswork &&
+    GIT_CONFIG="$git_config" cvs annotate merge >../out &&
+    sed -e "s/ .*//" ../out >../actual &&
+    for i in 3 1 1 1 1 1 1 1 2 4; do echo 1.$i; done >../expect &&
+    test_cmp ../expect ../actual
+'
+
Previous: Matthieu MoyNext: Jakub Narebski
Message 16 of 17 in “blame vs annotate?”
  1. Jonathan del StrotherSep 3, 2008
  2. Miklos VajnaSep 3, 2008
  3. Petr BaudisSep 3, 2008
  4. Junio C HamanoSep 3, 2008
  5. Matthieu MoySep 4, 2008
  6. Sverre RabbelierSep 4, 2008
  7. Mention the fact that 'git annotate' is only for backward compatibility.Matthieu Moy, Sep 4, 2008
  8. Petr BaudisSep 4, 2008
  9. Mention the fact that 'git annotate' is only for backward compatibility.Matthieu Moy, Sep 4, 2008
  10. Junio C HamanoSep 4, 2008
  11. Junio C HamanoSep 4, 2008
  12. Matthieu MoySep 5, 2008
  13. Junio C HamanoSep 5, 2008
  14. Petr BaudisSep 5, 2008
  15. Matthieu MoySep 5, 2008
  16. Junio C HamanoSep 5, 2008
  17. Jakub NarebskiSep 3, 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.