Skip to content

Commit

Permalink
diff-tree -r -t: include added/removed directories in the output
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nick Edelen authored and Junio C Hamano committed Jun 14, 2009
1 parent c97038d commit df533f3
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
53 changes: 53 additions & 0 deletions t/t4037-diff-r-t-dirs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/bin/sh

test_description='diff -r -t shows directory additions and deletions'

. ./test-lib.sh

test_expect_success setup '
mkdir dc dr dt &&
>dc/1 &&
>dr/2 &&
>dt/3 &&
>fc &&
>fr &&
>ft &&
git add . &&
test_tick &&
git commit -m initial &&
rm -fr dt dr ft fr &&
mkdir da ft &&
for p in dc/1 da/4 dt ft/5 fc
do
echo hello >$p || exit
done &&
git add -u &&
git add . &&
test_tick &&
git commit -m second
'

cat >expect <<\EOF
A da
A da/4
M dc
M dc/1
D dr
D dr/2
A dt
D dt
D dt/3
M fc
D fr
D ft
A ft
A ft/5
EOF

test_expect_success verify '
git diff-tree -r -t --name-status HEAD^ HEAD >actual &&
test_cmp expect actual
'

test_done
6 changes: 6 additions & 0 deletions tree-diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit df533f3

Please sign in to comment.