On Wed, Dec 23, 2020 at 2:46 PM Junio C Hamano <gits...@pobox.com> wrote: > > Matt Turner <matts...@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!