summaryrefslogtreecommitdiff
path: root/tree-diff.c
diff options
context:
space:
mode:
authorNick Edelen <sirnot@gmail.com>2009-06-14 00:06:09 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-06-14 00:06:09 (GMT)
commitdf533f34a31890a43baaf00d03c0a7fa51886bc5 (patch)
treef832d9f406698222e99629eabd588fa7c662a9bc /tree-diff.c
parentc97038d1cfbd98ea258086c417fe4f0c094596d3 (diff)
downloadgit-df533f34a31890a43baaf00d03c0a7fa51886bc5.zip
git-df533f34a31890a43baaf00d03c0a7fa51886bc5.tar.gz
git-df533f34a31890a43baaf00d03c0a7fa51886bc5.tar.bz2
diff-tree -r -t: include added/removed directories in the output
We used to include only the modified and typechanged directories in the ouptut, but for consistency's sake, we should also include added and removed ones as well. This makes the output more consistent, but it may break existing scripts that expect to see the current output which has long been the established behaviour. Signed-off-by: Nick Edelen <sirnot@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-diff.c')
-rw-r--r--tree-diff.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tree-diff.c b/tree-diff.c
index 9f67af6..c83a8da 100644
--- a/tree-diff.c
+++ b/tree-diff.c
@@ -233,6 +233,12 @@ static void show_entry(struct diff_options *opt, const char *prefix, struct tree
if (!tree || type != OBJ_TREE)
die("corrupt tree sha %s", sha1_to_hex(sha1));
+ if (DIFF_OPT_TST(opt, TREE_IN_RECURSIVE)) {
+ newbase[baselen + pathlen] = 0;
+ opt->add_remove(opt, *prefix, mode, sha1, newbase);
+ newbase[baselen + pathlen] = '/';
+ }
+
init_tree_desc(&inner, tree, size);
show_tree(opt, prefix, &inner, newbase, baselen + 1 + pathlen);