Merge branch 'pw/sequencer-compare-with-right-parent-to-check-empty-commits'
The sequencer machinery compared the HEAD and the state it is attempting to commit to decide if the result would be a no-op commit, even when amending a commit, which was incorrect, and has been corrected. * pw/sequencer-compare-with-right-parent-to-check-empty-commits: sequencer: fix empty commit check when amending
This commit is contained in:
26
sequencer.c
26
sequencer.c
@ -1350,11 +1350,27 @@ static int try_to_commit(struct repository *r,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!(flags & ALLOW_EMPTY) && oideq(current_head ?
|
||||
get_commit_tree_oid(current_head) :
|
||||
the_hash_algo->empty_tree, &tree)) {
|
||||
res = 1; /* run 'git commit' to display error message */
|
||||
goto out;
|
||||
if (!(flags & ALLOW_EMPTY)) {
|
||||
struct commit *first_parent = current_head;
|
||||
|
||||
if (flags & AMEND_MSG) {
|
||||
if (current_head->parents) {
|
||||
first_parent = current_head->parents->item;
|
||||
if (repo_parse_commit(r, first_parent)) {
|
||||
res = error(_("could not parse HEAD commit"));
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
first_parent = NULL;
|
||||
}
|
||||
}
|
||||
if (oideq(first_parent
|
||||
? get_commit_tree_oid(first_parent)
|
||||
: the_hash_algo->empty_tree,
|
||||
&tree)) {
|
||||
res = 1; /* run 'git commit' to display error message */
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (find_hook("prepare-commit-msg")) {
|
||||
|
Reference in New Issue
Block a user