diff options
author | Mike Crowe <mac@mcrowe.com> | 2013-05-17 21:56:18 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-05-20 11:09:03 -0700 |
commit | e00dd1e9485c50f202cc97dfae19d510e108b565 (patch) | |
tree | e0ff1428e746e363c93ee9a5303e347c7aced797 /builtin/describe.c | |
parent | de3a5c6da194928868b5eee4a9c4d538b4194727 (diff) | |
download | git-e00dd1e9485c50f202cc97dfae19d510e108b565.tar.gz |
describe: Add --first-parent option
Only consider the first parent commit when walking the commit history. This
is useful if you only wish to match tags on your branch after a merge.
Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/describe.c')
-rw-r--r-- | builtin/describe.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/describe.c b/builtin/describe.c index 6636a68cd9..ad8471626a 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -21,6 +21,7 @@ static int debug; /* Display lots of verbose info */ static int all; /* Any valid ref can be used */ static int tags; /* Allow lightweight tags */ static int longformat; +static int first_parent; static int abbrev = -1; /* unspecified */ static int max_candidates = 10; static struct hash_table names; @@ -336,6 +337,9 @@ static void describe(const char *arg, int last_one) commit_list_insert_by_date(p, &list); p->object.flags |= c->object.flags; parents = parents->next; + + if (first_parent) + break; } } @@ -404,6 +408,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix) OPT_BOOLEAN(0, "all", &all, N_("use any ref")), OPT_BOOLEAN(0, "tags", &tags, N_("use any tag, even unannotated")), OPT_BOOLEAN(0, "long", &longformat, N_("always use long format")), + OPT_BOOLEAN(0, "first-parent", &first_parent, N_("only follow first parent")), OPT__ABBREV(&abbrev), OPT_SET_INT(0, "exact-match", &max_candidates, N_("only output exact matches"), 0), |