submodule foreach: correct path display in recursive submodules
The `prefix` was put in front of the display path unconditionally. This is wrong as any relative path computation would need to be at the front, so include the prefix into the display path. The new test replicates the previous test with the difference of executing from a sub directory. By executing from a sub directory all we would expect all displayed paths to be prefixed by '../'. Prior to this patch the test would report Entering 'nested1/nested2/../nested3' instead of the expected Entering '../nested1/nested2/nested3' Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
90f7b16b3a
commit
ea2fa1040d
@ -413,8 +413,8 @@ cmd_foreach()
|
||||
die_if_unmatched "$mode"
|
||||
if test -e "$sm_path"/.git
|
||||
then
|
||||
displaypath=$(relative_path "$sm_path")
|
||||
say "$(eval_gettext "Entering '\$prefix\$displaypath'")"
|
||||
displaypath=$(relative_path "$prefix$sm_path")
|
||||
say "$(eval_gettext "Entering '\$displaypath'")"
|
||||
name=$(git submodule--helper name "$sm_path")
|
||||
(
|
||||
prefix="$prefix$sm_path/"
|
||||
@ -434,7 +434,7 @@ cmd_foreach()
|
||||
cmd_foreach "--recursive" "$@"
|
||||
fi
|
||||
) <&3 3<&- ||
|
||||
die "$(eval_gettext "Stopping at '\$prefix\$displaypath'; script returned non-zero status.")"
|
||||
die "$(eval_gettext "Stopping at '\$displaypath'; script returned non-zero status.")"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -177,6 +177,26 @@ test_expect_success 'test messages from "foreach --recursive"' '
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
Entering '../nested1'
|
||||
Entering '../nested1/nested2'
|
||||
Entering '../nested1/nested2/nested3'
|
||||
Entering '../nested1/nested2/nested3/submodule'
|
||||
Entering '../sub1'
|
||||
Entering '../sub2'
|
||||
Entering '../sub3'
|
||||
EOF
|
||||
|
||||
test_expect_success 'test messages from "foreach --recursive" from subdirectory' '
|
||||
(
|
||||
cd clone2 &&
|
||||
mkdir untracked &&
|
||||
cd untracked &&
|
||||
git submodule foreach --recursive >../../actual
|
||||
) &&
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
nested1-nested1
|
||||
nested2-nested2
|
||||
|
Loading…
Reference in New Issue
Block a user