Adds displaying author and commit times in UTC using %au and %cu.
commit 99a429c3e369ca76113a8642f80245d7644b9a2f
Author: Jeff Carr <jcarr@basilarchia@gmail.com>
Date: Tue Oct 26 18:25:06 2010 -0700
Adds a UTC option to the pretty formats
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 561cc9f..df56147 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -114,6 +114,7 @@ The placeholders are:
- '%ar': author date, relative
- '%at': author date, UNIX timestamp
- '%ai': author date, ISO 8601 format
+- '%au': author date, UTC
- '%cn': committer name
- '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1])
- '%ce': committer email
@@ -123,6 +124,7 @@ The placeholders are:
- '%cr': committer date, relative
- '%ct': committer date, UNIX timestamp
- '%ci': committer date, ISO 8601 format
+- '%cu': committer date, UTC
- '%d': ref names, like the --decorate option of linkgit:git-log[1]
- '%e': encoding
- '%s': subject
diff --git a/builtin/blame.c b/builtin/blame.c
index 1015354..33b04e6 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2343,6 +2343,9 @@ parse_done:
case DATE_SHORT:
blame_date_width = sizeof("2006-10-19");
break;
+ case DATE_UTC:
+ blame_date_width = sizeof("Fri Mar 12 20:18:53 UTC 2010");
+ break;
case DATE_RELATIVE:
/* "normal" is used as the fallback for "relative" */
case DATE_LOCAL:
diff --git a/cache.h b/cache.h
index 33decd9..a46965d 100644
--- a/cache.h
+++ b/cache.h
@@ -812,6 +812,7 @@ enum date_mode {
DATE_LOCAL,
DATE_ISO8601,
DATE_RFC2822,
+ DATE_UTC,
DATE_RAW
};
diff --git a/date.c b/date.c
index 00f9eb5..64bbce0 100644
--- a/date.c
+++ b/date.c
@@ -157,6 +157,17 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode)
return timebuf;
}
+ if (mode == DATE_UTC) {
+ tm = time_to_tm(time, 0);
+ sprintf(timebuf, "%.3s %.3s %2d %02d:%02d:%02d UTC %d",
+ weekday_names[tm->tm_wday],
+ month_names[tm->tm_mon],
+ tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec,
+ tm->tm_year + 1900);
+ return timebuf;
+ }
+
if (mode == DATE_RELATIVE) {
struct timeval now;
gettimeofday(&now, NULL);
diff --git a/pretty.c b/pretty.c
index f85444b..9903a12 100644
--- a/pretty.c
+++ b/pretty.c
@@ -531,6 +531,9 @@ static size_t format_person_part(struct strbuf *sb, char part,
case 'i': /* date, ISO 8601 */
strbuf_addstr(sb, show_date(date, tz, DATE_ISO8601));
return placeholder_len;
+ case 'u': /* date, UTC */
+ strbuf_addstr(sb, show_date(date, tz, DATE_UTC));
+ return placeholder_len;
}
skip: