Skip to content

Commit

Permalink
git log -g: Complain, but do not fail, when no reflogs are there
Browse files Browse the repository at this point in the history
When asking "git log -g --all", clearly you want to see only those refs
that do have reflogs, but you do not want it to fail, either.

So instead of die()ing, complain about it, but move on to the other refs.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Jul 25, 2007
1 parent 2d8ae40 commit 7b69b87
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
7 changes: 4 additions & 3 deletions reflog-walk.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ void init_reflog_walk(struct reflog_walk_info** info)
*info = xcalloc(sizeof(struct reflog_walk_info), 1);
}

void add_reflog_for_walk(struct reflog_walk_info *info,
int add_reflog_for_walk(struct reflog_walk_info *info,
struct commit *commit, const char *name)
{
unsigned long timestamp = 0;
Expand Down Expand Up @@ -188,7 +188,7 @@ void add_reflog_for_walk(struct reflog_walk_info *info,
}
}
if (!reflogs || reflogs->nr == 0)
die("No reflogs found for '%s'", branch);
return -1;
path_list_insert(branch, &info->complete_reflogs)->util
= reflogs;
}
Expand All @@ -200,13 +200,14 @@ void add_reflog_for_walk(struct reflog_walk_info *info,
if (commit_reflog->recno < 0) {
free(branch);
free(commit_reflog);
return;
return -1;
}
} else
commit_reflog->recno = reflogs->nr - recno - 1;
commit_reflog->reflogs = reflogs;

add_commit_info(commit, commit_reflog, &info->reflogs);
return 0;
}

void fake_reflog_parent(struct reflog_walk_info *info, struct commit *commit)
Expand Down
2 changes: 1 addition & 1 deletion reflog-walk.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define REFLOG_WALK_H

extern void init_reflog_walk(struct reflog_walk_info** info);
extern void add_reflog_for_walk(struct reflog_walk_info *info,
extern int add_reflog_for_walk(struct reflog_walk_info *info,
struct commit *commit, const char *name);
extern void fake_reflog_parent(struct reflog_walk_info *info,
struct commit *commit);
Expand Down
7 changes: 4 additions & 3 deletions revision.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,11 @@ static void add_pending_object_with_mode(struct rev_info *revs, struct object *o
{
if (revs->no_walk && (obj->flags & UNINTERESTING))
die("object ranges do not make sense when not walking revisions");
if (revs->reflog_info && obj->type == OBJ_COMMIT &&
add_reflog_for_walk(revs->reflog_info,
(struct commit *)obj, name))
return;
add_object_array_with_mode(obj, name, &revs->pending, mode);
if (revs->reflog_info && obj->type == OBJ_COMMIT)
add_reflog_for_walk(revs->reflog_info,
(struct commit *)obj, name);
}

void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
Expand Down

0 comments on commit 7b69b87

Please sign in to comment.