# [PATCH] Set AUTHOR_DATE in git-tools

3 messages from 2005-04-21 to 2005-04-27. Participants: David Woodhouse, Greg KH.
Thread: https://gitlist.dev/t/192

## David Woodhouse, 2005-04-21 07:32

Subject: [PATCH] Set AUTHOR_DATE in git-tools
Message-ID: <1114068737.29135.17.camel@localhost.localdomain>
URL: https://gitlist.dev/e/1114068737.29135.17.camel%40localhost.localdomain

```
Entirely untested.

Makefile: eca3a5d5256cca06d86ebb85ec9d3218752ffcd2
applypatch: 397e4a0e506f1c5765767057dfe506154b743b83
--- a/applypatch
+++ b/applypatch
@@ -26,6 +26,7 @@ EDIT=${EDIT:-vi}
 
 export AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)"
 export AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)"
+export AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)"
 export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)"
 
 if [ -n "$signoff" -a -f "$signoff" ]; then
dotest: a3e3d35ae0afa358f01b49eecb358d64c616c3e4
mailinfo.c: c1dcac130530174ec5335d2c752d76403ad1d3ad
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -13,6 +13,7 @@ static char line[1000];
 static char name[1000];
 static char email[1000];
 static char subject[1000];
+static char date[1000];
 
 static char *sanity_check(char *name, char *email)
 {
@@ -83,6 +84,11 @@ static void handle_subject(char *line)
 	strcpy(subject, line);
 }
 
+static void handle_date(char *line)
+{
+	strcpy(date, line);
+}
+
 static void add_subject_line(char *line)
 {
 	while (isspace(*line))
@@ -99,6 +105,11 @@ static void check_line(char *line, int l
 		cont = 0;
 		return;
 	}
+	if (!memcmp(line, "Date:", 5) && isspace(line[5])) {
+		handle_date(line+6);
+		cont = 0;
+		return;
+	}
 	if (!memcmp(line, "Subject:", 8) && isspace(line[8])) {
 		handle_subject(line+9);
 		cont = 1;
@@ -107,7 +118,7 @@ static void check_line(char *line, int l
 	if (isspace(*line)) {
 		switch (cont) {
 		case 0:
-			fprintf(stderr, "I don't do 'From:' line continuations\n");
+			fprintf(stderr, "I don't do 'From:' or 'Date:' header continuations\n");
 			break;
 		case 1:
 			add_subject_line(line);
@@ -215,7 +226,8 @@ static void handle_rest(void)
 	cleanup_space(name);
 	cleanup_space(email);
 	cleanup_space(sub);
-	printf("Author: %s\nEmail: %s\nSubject: %s\n\n", name, email, sub);
+	cleanup_space(date);
+	printf("Author: %s\nEmail: %s\nSubject: %s\nDate: %s\n", name, email, sub, date);
 	FILE *out = cmitmsg;
 
 	do {
mailsplit.c: 9379fbc5e84983e5ea0754a6587cc3490c696c69

-- 
dwmw2


```

## Greg KH, 2005-04-26 18:44

Subject: Re: [PATCH] Set AUTHOR_DATE in git-tools
Message-ID: <20050426184442.GA20536@kroah.com>
URL: https://gitlist.dev/e/20050426184442.GA20536%40kroah.com
In-Reply-To: <1114068737.29135.17.camel@localhost.localdomain>

```
On Thu, Apr 21, 2005 at 05:32:16PM +1000, David Woodhouse wrote:
> Entirely untested.

Doesn't work :(

And I couldn't see a simple reason why, oh well.

greg k-h

```

## Greg KH, 2005-04-27 03:52

Subject: Re: [PATCH] Set AUTHOR_DATE in git-tools
Message-ID: <20050427035206.GA27615@kroah.com>
URL: https://gitlist.dev/e/20050427035206.GA27615%40kroah.com
In-Reply-To: <20050426184442.GA20536@kroah.com>

```
On Tue, Apr 26, 2005 at 11:44:42AM -0700, Greg KH wrote:
> On Thu, Apr 21, 2005 at 05:32:16PM +1000, David Woodhouse wrote:
> > Entirely untested.
> 
> Doesn't work :(

I take it back, it works just fine... 

My problem was that bk generates dates with a non-rfc compliant timezone
string.  And I was trying to apply patches exported from bk in plain
text format (building a udev git tree...)  The patch below to
commit-tree.c fixes this issue, if anyone runs into this same issue (I
wouldn't recommend it to be applied, as it's probably a one-off
issue...)

thanks,

greg k-h
--------------
Allow commit-tree to handle the bk date format.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


--- a/commit-tree.c	2005-04-25 22:08:49.000000000 -0700
+++ b/commit-tree.c	2005-04-26 20:46:37.000000000 -0700
@@ -204,6 +204,12 @@
 	else
 	       return;
 
+	/* Handle messed up bk dates */
+	if (p[3] == ':') {
+		p[3] = p[4];
+		p[4] = p[5];
+		p[5] = p[6];
+	}
 	if (!isdigit(p[1]) || !isdigit(p[2]) || !isdigit(p[3]) || !isdigit(p[4]))
 		return;
 

```
