From: Nguyễn Thái Ngọc Duy Date: Tue, 24 Aug 2010 22:20:08 GMT Subject: [PATCH 18/32] log-tree: use narrow version of diff_tree_sha1 Message-ID: <1282688422-7738-19-git-send-email-pclouds@gmail.com> In-Reply-To: <1282688422-7738-1-git-send-email-pclouds@gmail.com> This makes "git log" work in narrow repos. Signed-off-by: Nguyễn Thái Ngọc Duy --- log-tree.c | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/log-tree.c b/log-tree.c index b46ed3b..693992a 100644 --- a/log-tree.c +++ b/log-tree.c @@ -600,7 +600,10 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log parents = commit->parents; if (!parents) { if (opt->show_root_diff) { - diff_root_tree_sha1(sha1, "", &opt->diffopt); + if (get_narrow_prefix()) + narrow_diff_root_tree_sha1(sha1, NULL, &opt->diffopt); + else + diff_root_tree_sha1(sha1, "", &opt->diffopt); log_tree_diff_flush(opt); } return !opt->loginfo; @@ -618,7 +621,14 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log * parent, showing summary diff of the others * we merged _in_. */ - diff_tree_sha1(parents->item->object.sha1, sha1, "", &opt->diffopt); + if (get_narrow_prefix()) + narrow_diff_tree_sha1(parents->item->object.sha1, + sha1, + NULL, + &opt->diffopt); + else + diff_tree_sha1(parents->item->object.sha1, sha1, + "", &opt->diffopt); log_tree_diff_flush(opt); return !opt->loginfo; } @@ -631,7 +641,14 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log for (;;) { struct commit *parent = parents->item; - diff_tree_sha1(parent->object.sha1, sha1, "", &opt->diffopt); + if (get_narrow_prefix()) + narrow_diff_tree_sha1(parent->object.sha1, + sha1, + NULL, + &opt->diffopt); + else + diff_tree_sha1(parent->object.sha1, sha1, + "", &opt->diffopt); log_tree_diff_flush(opt); showed_log |= !opt->loginfo; -- 1.7.1.rc1.69.g24c2f7