Re: [PATCH v2 1/4] diffcore-rename: compute basenames of all source and dest candidates
flat view
From: Elijah Newren <hidden>
Date: 2021-02-09 17:47:21
On Tue, Feb 9, 2021 at 9:02 AM Derrick Stolee [off-list ref] wrote:
On 2/9/2021 11:56 AM, Elijah Newren wrote:quoted
quoted
Also, this is used here and below. Perhaps it's worth pulling out as a helper? I see similar code being duplicated in these existing spots: * diff-no-index.c:append_basename() * help.c:append_similar_ref() * packfile.c:pack_basename() * replace-object.c:register_replace_ref() * setup.c:read_gitfile_gently() * builtin/rebase.c:cmd_rebase() * builtin/stash.c:do_create_stash() * builtin/worktree.c:add_worktree() * contrib/credential/gnome-keyring/git-credential-gnome-keyring.c:usage() * contrib/credential/libsecret/git-credential-libsecret.c:usage() * trace2/tr2_dst.c:tr2_dst_try_auto_path()Honestly asking: would anyone ever search for such a two-line helper function? I wouldn't have even thought to look, since it seems so simple. However, my real concern here is that this type of change would risk introducing conflicts with unrelated series. This series is the second in what will be a 9-series deep dependency chain of optimizations[1], and the later series are going to be longer than these first two were (the latter ones are 6-11 patches each). We've already discussed previously whether we possibly want to hold the first couple optimization series out of the upcoming git-2.31 release in order to keep the optimizations all together, but that might increase the risk of conflicts with unrelated patches if we try a bigger tree refactor like this. (Junio never commented on that, though.) It might be better to keep the series touching only merge-ort.c & diffcore-rename.c, and then do cleanups like the one you suggest here after the whole series. That said, it's not a difficult initial change, so I'm mostly expressing this concern out of making things harder for Junio. It'd be best to get his opinion -- Junio, your thoughts? [1] https://github.com/gitgitgadget/git/pulls?q=is%3Apr+author%3Anewren+Optimization+batchI don't consider the step of "go put the helper in all these other places" necessary for the current series. However, the "get basename" code appears a total of three times in this series, so it would be good to at least extract it to a static inline method to reduce the duplication isolated to this change.
Sounds good; will do.