Re: [PATCH 0/6] commit-graph: use 'struct object_directory *' everywhere
From: Derrick Stolee <hidden>
Date: 2020-01-31 13:22:45
On 1/31/2020 5:30 AM, Jeff King wrote:
On Thu, Jan 30, 2020 at 03:00:40PM -0800, Taylor Blau wrote:quoted
This series became a little bit longer than I was expecting it to be, so here is the high-level structure: - 1/6 fixes a bug in a test that would cause a subsequent failure if unaddressed. - 2/6 does the first half of the removal by using 'struct object_directory *'s within the 'commit_graph' structure. - 4/6 does the second half by removing 'char *object_dir' usage in the 'write_commit_graph_context' structure. - 5/6 ties 2/6 and 4/6 together by removing all path normalization completely, fixing the uninitialized read bug. - And 6/6 cleans up.With the exception of the patch-ordering discussion in the sub-thread with Martin, this looks good to me.
I agree. Martin's comment is a good one. I can't find anything else to improve the series.
Patch 3 is a change in user-visible behavior, as it restricts how --object-dir can be used (it must be the main object-dir or an alternate within the repository). I don't _think_ anybody would care, as the semantics of those options seemed kind of ill-defined to me in the first place. But it's worth calling out as a potential risk. I suppose the alternative is to make a one-off fake "struct object_directory" within the process that isn't connected to the repository. But if nobody cares, I'd just as soon avoid that.
I think that this change of behavior is fine, especially because if someone writes a commit-graph to an --object-dir that is not an alternate, then that repo will not discover the new commit-graph anyway. I do like that you state a possible work-around in case someone shows up with a legitimate use case for a non-alternate object-dir. Thanks, -Stolee