|
6 | 6 | #include "revision.h"
|
7 | 7 | #include "parse-options.h"
|
8 | 8 |
|
9 |
| -static int show_merge_base(struct commit **rev, int rev_nr, int show_all) |
| 9 | +static int show_merge_base(struct commit **rev, int rev_nr, int show_all, int fp_only) |
10 | 10 | {
|
11 | 11 | struct commit_list *result;
|
| 12 | + unsigned flags = fp_only ? MB_FPCHAIN : 0; |
12 | 13 |
|
13 |
| - result = get_merge_bases_many_dirty(rev[0], rev_nr - 1, rev + 1); |
| 14 | + result = get_merge_bases_opt(rev[0], rev_nr - 1, rev + 1, flags); |
14 | 15 |
|
15 | 16 | if (!result)
|
16 | 17 | return 1;
|
@@ -208,10 +209,13 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
|
208 | 209 | struct commit **rev;
|
209 | 210 | int rev_nr = 0;
|
210 | 211 | int show_all = 0;
|
| 212 | + int fp_only = 0; |
211 | 213 | int cmdmode = 0;
|
212 | 214 |
|
213 | 215 | struct option options[] = {
|
214 | 216 | OPT_BOOL('a', "all", &show_all, N_("output all common ancestors")),
|
| 217 | + OPT_BOOL(0, "fp-only", &fp_only, |
| 218 | + N_("limit to bases that are on first-parent chain")), |
215 | 219 | OPT_CMDMODE(0, "octopus", &cmdmode,
|
216 | 220 | N_("find ancestors for a single n-way merge"), 'o'),
|
217 | 221 | OPT_CMDMODE(0, "independent", &cmdmode,
|
@@ -255,5 +259,5 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
|
255 | 259 | ALLOC_ARRAY(rev, argc);
|
256 | 260 | while (argc-- > 0)
|
257 | 261 | rev[rev_nr++] = get_commit_reference(*argv++);
|
258 |
| - return show_merge_base(rev, rev_nr, show_all); |
| 262 | + return show_merge_base(rev, rev_nr, show_all, fp_only); |
259 | 263 | }
|
0 commit comments