add UTC option for pretty-formats

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

 



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:

[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]