Subject: Re: Configure default merge message

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 25 Mar 2021 03:02:48 +0100

On Wed, Mar 24 2021, Junio C Hamano wrote:

> [email-masked] writes:
>
>> Hello all,
>>
>> I'm using git mainly with BitBucket repositories. When I pull from a remote, the default commit message will be "Merge branch 'source-branch-name' of https://bitbucket.org/ <https://bitbucket.org/jibbletech/jibble-2.0-client-web>repository-name into destination-branch-name".
>>
>> I'd like to configure git to omit the "of https://bitbucket.org/repository-name" part. How can I do that?
>>
>> Regards
>> Jost
>
> Ævar, is this something we recently made it impossible with 4e168333
> (shortlog: remove unused(?) "repo-abbrev" feature, 2021-01-12), or
> is there more to it than resurrecting that "feature" to do what Jost
> seems to want?

Perhaps I'm using it incorrectly, but I don't see how that repo-abbrev
feature ever resulted in the insertion of this munged content into the
actual commit object.

The shortlog examples of "..." in 4e168333 are of shortlog's output
being modified on the fly. Not of them being inserted into commits.

You can run "git merge" with "--log" which says it inserts "shortlog"
output. So I thought that maybe lines that were not the first "Merge
... into" line in the message could have gotten munged in this way
before my change.

But I don't think that happened either, and reverting 4e168333 and doing
a merge --log locally with e.g. "# repo-abbrev: branch" does not munge
the string "branch" in either the subject or the body, it's retained,
e.g.:
    
    commit 02c864e58da (HEAD)
    Merge: 353c73510dc c6d63de00ff
    Author: Ævar Arnfjörð Bjarmason <[email-masked]>
    Date:   Thu Mar 25 03:00:21 2021 +0100
    
        Merge branch 'to-merge' into HEAD
        
        * to-merge:
          Merge this branch blah blah

That's because "merge" never used the munging.

If you look at the code in 7595e2ee6ef (git-shortlog: make common
repository prefix configurable with .mailmap, 2006-11-25) when this
repo-abbrev feature was first added the "merge" would use
builtin-fmt-merge-msg.c to format the "shortlog", which implemented its
own function to do so, and didn't use the mailmap.

As to Jost's question. I think the way to do this is to use
fmt-merge-msg, see 2102440c17f (fmt-merge-msg -m to override merge
title, 2010-08-17) for an example.

That seems like it would also be simpler than Jeff King's suggestion in
the side-thread in <[email-masked]>.