Re: [RFC PATCH gentoolkit] bin: Add merge-driver-ekeyword
- From
- Matt Turner <mattst88@gentoo.org>
- Date
- Dec 24, 2020, 04:47 UTC
- Message-ID
- <CAEdQ38En=HrG9A0STgaxFAwqxBjwNGQoV=U26Pia3x=gd-Attg@mail.gmail.com>
- In-Reply-To
- <xmqqsg7w8fwx.fsf@gitster.c.googlers.com>
On Wed, Dec 23, 2020 at 2:46 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> > Matt Turner <mattst88@gentoo.org> writes: > > > I want to handle conflicts automatically on lines like > > > >> KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" > > > > where conflicts frequently happen by adding/removing ~ before the > > architecture names or adding/removing whole architectures. I don't > > know if I should use a custom git merge driver or a custom git merge > > strategy. > > A merge strategy is about how the changes at the tree level are > handled. A merge driver is given three blobs (original, your > version, and their version) and comes up with a merged blob. > > In your case, you'd want a custom merge driver if you want to handle > word changes on a single line, because the default text merge driver > is pretty much line oriented.
Thanks, that makes sense. The merge driver I've written seems to work great for handling the KEYWORDS=... line.
If users could more simply opt into using it (e.g., on the command line rather than enabling it via ~/.gitattributes) I think it would be fine to use. Better yet, is there a way git can be configured to fallback to another merge driver if the first returns a non-zero status due to unresolved conflicts? For example, if there are changes to other lines, how can I fall back to another merge driver?
Thank you for your advice!