Re: [PATCH] add a pre-merge hook
From: Paolo Bonzini <hidden>
Date: 2016-06-15 22:45:14
I think we should have done something like this for post_merge, not just "1/0 to show if it is a squash" which was an ill-thought-out hack. Is there a clean way to fix the interface without breaking existing post_merge hooks in people's repositories?
Well, you can add this argument as a second argument to post-merge. Shall I do it?
Please call whatever you install from template/hooks--* a "sample", not "default".
Ok.
If it is primarily a hack to support calling post-merge with an non-object name "0" or "1"
It is to support not appending the commit list to the arguments of post-merge.
quoted
+static int run_pre_merge_hook(const char *kind) +{ + return run_hook("pre-merge", remoteheads, + squash ? "squash" : kind, "--", NULL); }remoteheads is a commit_list, you have the name of the hook and kind, so this extra "--" is only for run_hook() hackery to distinguish between the callers to post-merge and the callers to new pre-merge?
No, absolutely. The "--" separator is for future extension, in case we want to add other arguments before the head list. run_hook does not care about what it receives in its varargs part. It is copied verbatim until the NULL. Then it adds a "--" and the heads argument if requested (which is not the case for post-merge). The fact that I had to specify a "--" here though is fishy. Maybe I have a off-by-one somewhere that, if fixed, can simplify the code somehow. I'll take a look tomorrow, thanks for the review. Paolo