Skip to content

Commit

Permalink
log: decorate grafted commits with "grafted"
Browse files Browse the repository at this point in the history
In shallow repositories, this may help detect whether a branch ends,
or it is deeper than current depth.

It also show graft points that extend a branch.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nguyễn Thái Ngọc Duy authored and Junio C Hamano committed Aug 18, 2011
1 parent 294e15f commit 76f5df3
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions log-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ enum decoration_type {
DECORATION_REF_TAG,
DECORATION_REF_STASH,
DECORATION_REF_HEAD,
DECORATION_GRAFTED,
};

static char decoration_colors[][COLOR_MAXLEN] = {
Expand All @@ -27,6 +28,7 @@ static char decoration_colors[][COLOR_MAXLEN] = {
GIT_COLOR_BOLD_YELLOW, /* REF_TAG */
GIT_COLOR_BOLD_MAGENTA, /* REF_STASH */
GIT_COLOR_BOLD_CYAN, /* REF_HEAD */
GIT_COLOR_BOLD_BLUE, /* GRAFTED */
};

static const char *decorate_get_color(int decorate_use_color, enum decoration_type ix)
Expand Down Expand Up @@ -118,13 +120,23 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in
return 0;
}

static int add_graft_decoration(const struct commit_graft *graft, void *cb_data)
{
struct commit *commit = lookup_commit(graft->sha1);
if (!commit)
return 0;
add_name_decoration(DECORATION_GRAFTED, "grafted", &commit->object);
return 0;
}

void load_ref_decorations(int flags)
{
static int loaded;
if (!loaded) {
loaded = 1;
for_each_ref(add_ref_decoration, &flags);
head_ref(add_ref_decoration, &flags);
for_each_commit_graft(add_graft_decoration, NULL);
}
}

Expand Down

0 comments on commit 76f5df3

Please sign in to comment.