t0060: add test for prefix_path on symlinks via absolute paths
When symlinks in the working tree are manipulated using the absolute path, git dereferences them, and tries to manipulate the link target instead. This applies to most high-level commands but prefix_path is the common denominator for all of them. Add a known-breakage tests using the prefix_path function, which currently uses real_path, causing the dereference. Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com> Reviewed-by: Duy Nguyen <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Erik Werner committed
Feb 4, 2014 at 15:25 UTC
74af95d6aac03e1a1227c78d0d0ea8bbc2fa2b4d
1 file changed
+5
t/t0060-path-utils.sh
+5
@@ -190,6 +190,11 @@ test_expect_success SYMLINKS 'real path works on symlinks' '
190
test "$sym" = "$(test-path-utils real_path "$dir2/syml")"
191
'
192
193
+test_expect_failure SYMLINKS 'prefix_path works with absolute paths to work tree symlinks' '
194
+ ln -s target symlink &&
195
+ test "$(test-path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink"
196
+'
197
+
198
relative_path /foo/a/b/c/ /foo/a/b/ c/
199
relative_path /foo/a/b/c/ /foo/a/b c/
200
relative_path /foo/a//b//c/ ///foo/a/b// c/ POSIX