mirror of
https://github.com/git/git.git
synced 2026-06-19 15:39:47 +02:00
history: give commit_tree_ext a message template
commit_tree_ext() reuses the message of the commit it is handed. A caller that folds several commits together wants to seed the message from more than that single commit, so add an optional message_template parameter. When NULL, the behavior is unchanged. Pass NULL from the existing fixup and split callers. Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
1ee7899649
commit
d4bf3c5369
+10
-6
@@ -101,6 +101,7 @@ enum commit_tree_flags {
|
||||
static int commit_tree_ext(struct repository *repo,
|
||||
const char *action,
|
||||
struct commit *commit_with_message,
|
||||
const char *message_template,
|
||||
const struct commit_list *parents,
|
||||
const struct object_id *old_tree,
|
||||
const struct object_id *new_tree,
|
||||
@@ -130,13 +131,16 @@ static int commit_tree_ext(struct repository *repo,
|
||||
original_author = xmemdupz(ptr, len);
|
||||
find_commit_subject(original_message, &original_body);
|
||||
|
||||
if (!message_template)
|
||||
message_template = original_body;
|
||||
|
||||
if (flags & COMMIT_TREE_EDIT_MESSAGE) {
|
||||
ret = fill_commit_message(repo, old_tree, new_tree,
|
||||
original_body, action, &commit_message);
|
||||
message_template, action, &commit_message);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
} else {
|
||||
strbuf_addstr(&commit_message, original_body);
|
||||
strbuf_addstr(&commit_message, message_template);
|
||||
}
|
||||
|
||||
original_extra_headers = read_commit_extra_headers(commit_with_message,
|
||||
@@ -189,7 +193,7 @@ static int commit_tree_with_edited_message(struct repository *repo,
|
||||
if (first_parent_tree_oid(repo, original, &parent_tree_oid) < 0)
|
||||
return -1;
|
||||
|
||||
return commit_tree_ext(repo, action, original, original->parents,
|
||||
return commit_tree_ext(repo, action, original, NULL, original->parents,
|
||||
&parent_tree_oid, tree_oid, out, COMMIT_TREE_EDIT_MESSAGE);
|
||||
}
|
||||
|
||||
@@ -644,7 +648,7 @@ static int cmd_history_fixup(int argc,
|
||||
goto out;
|
||||
|
||||
if (!skip_commit) {
|
||||
ret = commit_tree_ext(repo, "fixup", original, original->parents,
|
||||
ret = commit_tree_ext(repo, "fixup", original, NULL, original->parents,
|
||||
&original_tree->object.oid, &merge_result.tree->object.oid,
|
||||
&rewritten, flags);
|
||||
if (ret < 0) {
|
||||
@@ -855,7 +859,7 @@ static int split_commit(struct repository *repo,
|
||||
* The first commit is constructed from the split-out tree. The base
|
||||
* that shall be diffed against is the parent of the original commit.
|
||||
*/
|
||||
ret = commit_tree_ext(repo, "split-out", original, original->parents, &parent_tree_oid,
|
||||
ret = commit_tree_ext(repo, "split-out", original, NULL, original->parents, &parent_tree_oid,
|
||||
&split_tree->object.oid, &first_commit, COMMIT_TREE_EDIT_MESSAGE);
|
||||
if (ret < 0) {
|
||||
ret = error(_("failed writing first commit"));
|
||||
@@ -872,7 +876,7 @@ static int split_commit(struct repository *repo,
|
||||
old_tree_oid = &repo_get_commit_tree(repo, first_commit)->object.oid;
|
||||
new_tree_oid = &repo_get_commit_tree(repo, original)->object.oid;
|
||||
|
||||
ret = commit_tree_ext(repo, "split-out", original, parents, old_tree_oid,
|
||||
ret = commit_tree_ext(repo, "split-out", original, NULL, parents, old_tree_oid,
|
||||
new_tree_oid, &second_commit, COMMIT_TREE_EDIT_MESSAGE);
|
||||
if (ret < 0) {
|
||||
ret = error(_("failed writing second commit"));
|
||||
|
||||
Reference in New Issue
Block a user