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

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

On Thu, 8 Feb 2007, Santi Béjar wrote:

> On 2/8/07, Santi Béjar <sbejar@gmail.com> wrote:
> > Hi *,
> > 
> >   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.
> > 
> 
> Also:
> 
> $ git log origin/master
> 
> works, but
> 
> $ git log -g origin/master
> 
> does not. You have to put the remotes prefix.

I hesitate "fixing" that. I mean, if you want to know about the remote 
branch "master" why not be precise? Yes, "git log" _is_ nice if you want 
to be sloppy.

But if you _have_ to have it, see attached patch. I will not push for it 
in time for 1.5.0, though, since I have a track record of not getting 
patches right on the first try.

Ciao,
Dscho

---

 reflog-walk.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/reflog-walk.c b/reflog-walk.c
index 653ec95..430faef 100644
--- a/reflog-walk.c
+++ b/reflog-walk.c
@@ -174,6 +174,19 @@ void add_reflog_for_walk(struct reflog_walk_info *info,
 			branch = xstrdup(head);
 		}
 		reflogs = read_complete_reflog(branch);
+		if (!reflogs || reflogs->nr == 0) {
+			unsigned char sha1[20];
+			char *b;
+			if (dwim_ref(branch, strlen(branch), sha1, &b) == 1) {
+				if (reflogs) {
+					free(reflogs->ref);
+					free(reflogs);
+				}
+				free(branch);
+				branch = b;
+				reflogs = read_complete_reflog(branch);
+			}
+		}
 		if (!reflogs || reflogs->nr == 0)
 			die("No reflogs found for '%s'", branch);
 		path_list_insert(branch, &info->complete_reflogs)->util
-
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:40:38 2007

This archive was generated by hypermail 2.1.8 : 2007-02-09 06:44:07 EST