Re: [PATCH] merge-tree: load default git config
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- May 10, 2023, 23:27 UTC
- Message-ID
- <645c28576290d_7b63e2942d@chronos.notmuch>
- In-Reply-To
- <xmqq5y8z3jif.fsf@gitster.g>
Junio C Hamano wrote:
Show 13 quoted lines
> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes: > > > The fix is simple: load the default Git config in cmd_merge_tree(). > > This may also fix other behaviors that are effected by reading default > > config. The only possible downside is a little extra computation time > > spent reading config. The config parsing is placed after basic argument > > parsing so it does not slow down usage errors. > > Presumably merge-tree wants to serve a low-level machinery that > gives reliable reproducible result, we may want to keep the > configuration variables we read as narrow as practical. The > default_config() callback may still be wider than desirable from > that point of view, but I guess that is the most reasonable choice?
If you want to *intentionally* ignore merge.conflictStyle in `git merge-tree` then the documentation has to be updated as this is clearly not true:
The performed merge will use the same feature as the "real" linkgit:git-merge[1], including:
* three way content merges of individual files
* rename detection
* proper directory/file conflict handling
* recursive ancestor consolidation (i.e. when there is more than one
merge base, creating a virtual merge base by merging the merge bases)
* etc.If you want to ignore merge.conflictStyle, then `git merge-tree` would *not* be using the same features as the real `git merge`, in particular proper conflict halding (the conflict markers will be different).
-- Felipe Contreras