[PATCH 22/32] commit: use commit_narrow_tree() to support narrow repo
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/commit.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index 66fdd22..59da654 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1351,7 +1351,15 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
exit(1);
}
- if (commit_tree(sb.buf, active_cache_tree->sha1, parents, commit_sha1,
+ if (get_narrow_prefix()) {
+ if (!parents)
+ die("Narrow mode does not support initial commit (yet)");
+ if (parse_commit(parents->item))
+ die("Bad commit %s", parents->item->object.sha1);
+ }
+ if (commit_narrow_tree(sb.buf, active_cache_tree->sha1,
+ parents ? parents->item->tree->object.sha1 : NULL,
+ parents, commit_sha1,
fmt_ident(author_name, author_email, author_date,
IDENT_ERROR_ON_NO_NAME))) {
rollback_index_files();
--
1.7.1.rc1.69.g24c2f7