Junio C Hamano <gitster@xxxxxxxxx> writes: > After running a diff between two things, or a series of diffs while > walking the history, the diff computation is concluded by a call to > diff_result_code() to extract the exit status of the diff machinery. > > The function can work on "struct diffopt", but all the callers > historically and currently pass "struct diffopt" that is embedded in > the "struct rev_info" that is used to hold the remerge_diff bit and > the remerge_objdir variable that points at the temporary object > directory in use. > > Redefine diff_result_code() to take the whole "struct rev_info" to > give it an access to these members related to remerge-diff, so that > it can get rid of the temporary object directory for any and all > callers that used the feature. We can lose the equivalent code to > do so from the code paths for individual commands, diff-tree, diff, > and log. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- I forgot to add that I am not happy with this "centralized tear down" step, even though I am reasonably happy with the "lazy set-up" step. I wonder why the remerge-diff related members have to exist in the rev_info structure in the first place, instead of being in the diffopt structure? Moving them to diffopt may make the end result much more pleasant to read.