diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2008-09-11 00:10:31 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-09-11 02:25:46 +0400 |
commit | ee20a129de6f332da092e93feb2dd5f8330f9bc0 (patch) | |
tree | 471d0e4460a41eadf03eac6cb81cda6b8c6848dc | |
parent | da06a80322a2357b8b5b6ddb8b5648f97ed73e83 (diff) |
commit_tree(): add a new author parameter
In case it's NULL, it is still determined automatically, but now you
have the ability to specify one yourself.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-commit-tree.c | 9 | ||||
-rw-r--r-- | builtin-merge.c | 4 | ||||
-rw-r--r-- | builtin.h | 3 |
3 files changed, 10 insertions, 6 deletions
diff --git a/builtin-commit-tree.c b/builtin-commit-tree.c index f2684bb75e..0453425c47 100644 --- a/builtin-commit-tree.c +++ b/builtin-commit-tree.c @@ -46,7 +46,8 @@ static const char commit_utf8_warn[] = "variable i18n.commitencoding to the encoding your project uses.\n"; int commit_tree(const char *msg, unsigned char *tree, - struct commit_list *parents, unsigned char *ret) + struct commit_list *parents, unsigned char *ret, + const char *author) { int result; int encoding_is_utf8; @@ -74,7 +75,9 @@ int commit_tree(const char *msg, unsigned char *tree, } /* Person/date information */ - strbuf_addf(&buffer, "author %s\n", git_author_info(IDENT_ERROR_ON_NO_NAME)); + if (!author) + author = git_author_info(IDENT_ERROR_ON_NO_NAME); + strbuf_addf(&buffer, "author %s\n", author); strbuf_addf(&buffer, "committer %s\n", git_committer_info(IDENT_ERROR_ON_NO_NAME)); if (!encoding_is_utf8) strbuf_addf(&buffer, "encoding %s\n", git_commit_encoding); @@ -123,7 +126,7 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix) if (strbuf_read(&buffer, 0, 0) < 0) die("git commit-tree: read returned %s", strerror(errno)); - if (!commit_tree(buffer.buf, tree_sha1, parents, commit_sha1)) { + if (!commit_tree(buffer.buf, tree_sha1, parents, commit_sha1, NULL)) { printf("%s\n", sha1_to_hex(commit_sha1)); return 0; } diff --git a/builtin-merge.c b/builtin-merge.c index 9ad9791068..4a8ec604d3 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -691,7 +691,7 @@ static int merge_trivial(void) parent->next = xmalloc(sizeof(struct commit_list *)); parent->next->item = remoteheads->item; parent->next->next = NULL; - commit_tree(merge_msg.buf, result_tree, parent, result_commit); + commit_tree(merge_msg.buf, result_tree, parent, result_commit, NULL); finish(result_commit, "In-index merge"); drop_save(); return 0; @@ -720,7 +720,7 @@ static int finish_automerge(struct commit_list *common, } free_commit_list(remoteheads); strbuf_addch(&merge_msg, '\n'); - commit_tree(merge_msg.buf, result_tree, parents, result_commit); + commit_tree(merge_msg.buf, result_tree, parents, result_commit, NULL); strbuf_addf(&buf, "Merge made by %s.", wt_strategy); finish(result_commit, buf.buf); strbuf_release(&buf); @@ -17,7 +17,8 @@ extern int read_line_with_nul(char *buf, int size, FILE *file); extern int fmt_merge_msg(int merge_summary, struct strbuf *in, struct strbuf *out); extern int commit_tree(const char *msg, unsigned char *tree, - struct commit_list *parents, unsigned char *ret); + struct commit_list *parents, unsigned char *ret, + const char *author); extern int check_pager_config(const char *cmd); extern int cmd_add(int argc, const char **argv, const char *prefix); |