Thomas Rast <tr@xxxxxxxxxxxxx> writes: > From: Thomas Rast <trast@xxxxxxxxxxx> > > o->call_depth has a double function: a nonzero call_depth means we > want to construct virtual merge bases, but it also means we want to > avoid touching the worktree. Introduce a new flag o->no_worktree to > trigger only the latter. > > Signed-off-by: Thomas Rast <trast@xxxxxxxxxxx> > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- I notice that many hits from $ git grep -e '->call_depth' --and --not -e '->no_worktree' are about how the progress is reported during recursive operations or setting up ll_opts suitable for ancestor merges (both of which are perfectly fine not to pay any attention to no_worktree), but some others look iffy. For example, function remove_file() decides to update the in-core index only when call_depth is set (i.e. we are doing a virtual parent) or clean (clean merge at the content level, i.e. "both removed"), and decides to update the working tree only at the top-level of the recursion and no_wd is passed. - As to "update_cache", if you do not update it while you are operating in the cache-only mode (aka ->no_worktree), I wonder where the result goes. Shouldn't it be done for in-core merge as well? - As to "update_working_tree", there are few places where the function is called with no_wd that is not true, even when ->no_worktree is set. Do you want to allow working tree to be modified in such a call? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html