@@ -915,6 +915,19 @@ static void add_rev_cmdline(struct rev_info *revs,
915915 info -> nr ++ ;
916916}
917917
918+ static void add_rev_cmdline_list (struct rev_info * revs ,
919+ struct commit_list * commit_list ,
920+ int whence ,
921+ unsigned flags )
922+ {
923+ while (commit_list ) {
924+ struct object * object = & commit_list -> item -> object ;
925+ add_rev_cmdline (revs , object , sha1_to_hex (object -> sha1 ),
926+ whence , flags );
927+ commit_list = commit_list -> next ;
928+ }
929+ }
930+
918931struct all_refs_cb {
919932 int all_flags ;
920933 int warned_bad_reflog ;
@@ -1092,6 +1105,7 @@ static void prepare_show_merge(struct rev_info *revs)
10921105 add_pending_object (revs , & head -> object , "HEAD" );
10931106 add_pending_object (revs , & other -> object , "MERGE_HEAD" );
10941107 bases = get_merge_bases (head , other , 1 );
1108+ add_rev_cmdline_list (revs , bases , REV_CMD_MERGE_BASE , UNINTERESTING );
10951109 add_pending_commit_list (revs , bases , UNINTERESTING );
10961110 free_commit_list (bases );
10971111 head -> object .flags |= SYMMETRIC_LEFT ;
@@ -1179,6 +1193,9 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
11791193
11801194 if (symmetric ) {
11811195 exclude = get_merge_bases (a , b , 1 );
1196+ add_rev_cmdline_list (revs , exclude ,
1197+ REV_CMD_MERGE_BASE ,
1198+ flags_exclude );
11821199 add_pending_commit_list (revs , exclude ,
11831200 flags_exclude );
11841201 free_commit_list (exclude );
0 commit comments