Re: [BUG] Empty reflogs and "git log -g"

From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Date: 2007-02-09 06:46:43
Hi,

[Cc'ing the mailing list, not the newsgroup]

On Thu, 8 Feb 2007, Jakub Narebski wrote:

> Johannes Schindelin wrote:
> 
> > On Thu, 8 Feb 2007, Santi Béjar wrote:
> > 
> >>  when a reflog entry do not have a reflog message the refs@{num} syntax 
> >> gives a different result than with 'git log -g'. Actually 'git log -g' 
> >> just skips this ref.
> > 
> > I could be that some older git version produces empty messages. But I'd 
> > regard the empty messages to be the problem. Or is the current Git version 
> > still producing such entries?
> 
> StGIT used to produce no reflog messages; I don't know if this has 
> improved. But you can have old reflog entries with empty messages; git 
> log -g should deal with them IMHO.

I just tried. An empty string is not enough. The tab before the message 
has to be lacking, too.

Here's a small patch, if you have to have it.

---

 refs.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/refs.c b/refs.c
index 7e07fc4..ba5bd2d 100644
--- a/refs.c
+++ b/refs.c
@@ -1189,12 +1189,14 @@ int for_each_reflog_ent(const char *ref, each_reflog_ent_fn fn, void *cb_data)
 		    !message || message[0] != ' ' ||
 		    (message[1] != '+' && message[1] != '-') ||
 		    !isdigit(message[2]) || !isdigit(message[3]) ||
-		    !isdigit(message[4]) || !isdigit(message[5]) ||
-		    message[6] != '\t')
+		    !isdigit(message[4]) || !isdigit(message[5]))
 			continue; /* corrupt? */
 		email_end[1] = '\0';
 		tz = strtol(message + 1, NULL, 10);
-		message += 7;
+		if (message[6] != '\t')
+			message += 6;
+		else
+			message += 7;
 		ret = fn(osha1, nsha1, buf+82, timestamp, tz, message, cb_data);
 		if (ret)
 			break;
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Feb 09 06:50:36 2007

This archive was generated by hypermail 2.1.8 : 2007-02-09 06:53:13 EST