Re: git annotate with date option not working?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 01, 2011 at 12:16:38PM -0400, Jeff King wrote:

> On Wed, Jun 01, 2011 at 10:20:37AM +0200, Chengwei Ding wrote:
> 
> > can anyone confirm that this "--date" option is working for git
> > annotate cmd.
> 
> This is by design:
> 
>   $ git show 31653c1abc1ac80206db9efca56ff1969150d8fe
>   Author: Eugene Letuchy <eugene@xxxxxxxxxxxx>
>   Date:   Fri Feb 20 14:51:11 2009 -0800
>   [...]
>       git annotate ignores the date format specifiers and continues to
>       uses the ISO format, as before.
>   [...]
>   +       if (cmd_is_annotate) {
>                   output_option |= OUTPUT_ANNOTATE_COMPAT;
>   +               blame_date_mode = DATE_ISO8601;
>   +       } else {
>   +               blame_date_mode = revs.date_mode;
>   +       }
> 
> The annotate command is a historical artifact, and will remain frozen in
> time in terms of output format and features. If you want to use newer
> features, use "git blame". If you really need the annotate output format
> with newer blame features, use "git blame -c".

Having said that, this would be really easy to support, and I don't
think would have any negative compatibility consequences, as long as we
don't support blame.date. But I don't think we're breaking anybody
relying on "git annotate --date=whatever" being silently ignored, as
that option has never done anything useful.

The patch would look like this:

diff --git a/builtin/blame.c b/builtin/blame.c
index 26a5d42..274a98d 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2333,7 +2333,10 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
 
 	git_config(git_blame_config, NULL);
 	init_revisions(&revs, NULL);
-	revs.date_mode = blame_date_mode;
+	if (cmd_is_annotate)
+		revs.date_mode = DATE_ISO8601;
+	else
+		revs.date_mode = blame_date_mode;
 	DIFF_OPT_SET(&revs.diffopt, ALLOW_TEXTCONV);
 
 	save_commit_buffer = 0;
@@ -2368,13 +2371,10 @@ parse_done:
 	if (revs_file && read_ancestry(revs_file))
 		die_errno("reading graft file '%s' failed", revs_file);
 
-	if (cmd_is_annotate) {
+	if (cmd_is_annotate)
 		output_option |= OUTPUT_ANNOTATE_COMPAT;
-		blame_date_mode = DATE_ISO8601;
-	} else {
-		blame_date_mode = revs.date_mode;
-	}
 
+	blame_date_mode = revs.date_mode;
 	/* The maximum width used to show the dates */
 	switch (blame_date_mode) {
 	case DATE_RFC2822:
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]