[PATCH] merge: add resolve --prep, which outputs conflicted comparison files

Durham Goode durham at fb.com
Fri Feb 24 18:18:40 EST 2017


On 2/23/17 2:57 PM, Jun Wu wrote:
> Congratulations on your first patch to the list!
>
> But I think we have better ways to achieve the same goal that we may prefer
> them to this patch.
>
> 1) Better way to provide conflicted file contents - in-python merge tools
>
>   From a high-level, the patch tries to solve the problem:
>
>     - Get all paths and file contents involved in merge conflict resolution
>       in an efficient way.
>
>   We have "--list" and "--tool" already to fetch the data in a less efficient
>   way. I'm not a big fan of a new flag doing what we can do today.
>
>   I think a better to achieve the "efficient" goal is to make "--tool"
>   accept Python functions, just like what we do for hooks. If the signature
>   of the Python function accepts file contents directly, we can even avoid
>   writing temporary files - even more efficient than this patch.

While that way may be more generic, and potentially more efficient in 
some cases, it puts a larger burden of understanding on the consumer. 
They would have to learn about Mercurial internals (or at least the api 
for the hook), write a python script, and package that script into their 
deployment.  Given that Mercurial already has knowledge of what data 
merge tools need, I think it's reasonable to just have an interface that 
prints that data for simple consumption.

If we want to get rid of the extra flag, we could just make this data 
appear in the normal json output.  So 'hg resolve --list --all -T json' 
would contain the same data as 'hg resolve --prep --all -T json'. It 
changes the behavior of --list a bit, depending on if json is enabled or 
not, but at least there's no new UI surface area.


More information about the Mercurial-devel mailing list