This patch fixes the fact that hunk editing with 'commit -p -m' does not work:
GIT_EDITOR is set to ':' to indicate to hooks that no editor will be launched,
which result in the 'hunk edit' option not launching the editor (and selecting
the whole hunk).
The fix consists in deferring the GIT_EDITOR override to the hook subprocess,
like it's already done for GIT_INDEX_FILE:
- rename 'run_hook' to 'run_hook_le' and change the first parameter to the
environment to set
- add a 'run_hook_ve' variant that take a va_list
- add a new 'run_commit_hook' helper (to set both GIT_EDITOR and GIT_INDEX_FILE)
- the old 'run_hook' functionality is available as 'run_hook_with_custom_index'
(and marked as deprecated in the last optional patch of this series)
N.B.: the merge builtin 'prepare-commit-msg' hook handling has also been updated
to be consistent; i.e. GIT_EDITOR will not be set to ':' if the '--edit' option
Benoit Pierre (7):
merge hook tests: fix missing '&&' in test
merge hook tests: use 'test_must_fail' instead of '!'
test patch hunk editing with "commit -p -m"
commit: fix patch hunk editing with "commit -p -m"
merge: fix GIT_EDITOR override for commit hook
merge hook tests: fix and update tests
run-command: mark run_hook_with_custom_index as deprecated
builtin/checkout.c | 8 +++----
builtin/clone.c | 4 ++--
builtin/commit.c | 35 ++++++++++++++++++++++++------
builtin/gc.c | 2 +-
builtin/merge.c | 6 +++---
commit.h | 3 +++
run-command.c | 44 +++++++++++++++++++++++++++-----------
run-command.h | 7 +++++-
t/t7505-prepare-commit-msg-hook.sh | 33 ++++++++++++++++++++--------
t/t7513-commit_-p_-m_hunk_edit.sh | 34 +++++++++++++++++++++++++++++
10 files changed, 137 insertions(+), 39 deletions(-)
create mode 100755 t/t7513-commit_-p_-m_hunk_edit.sh
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html