diff options
author | Ray Donnelly <mingw.android@gmail.com> | 2015-10-01 20:04:17 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-10-08 18:03:50 -0700 |
commit | b2a7123b997f950e9785a5e7df64c3104270fef3 (patch) | |
tree | e6536372e9574e61c1d56d12263b6812389bf08d /path.c | |
parent | 22f698cb188243b313e024d618283e0293e37140 (diff) | |
download | git-b2a7123b997f950e9785a5e7df64c3104270fef3.tar.gz |
test-path-utils.c: remove incorrect assumptionrd/test-path-utils
In normalize_ceiling_entry(), we test that normalized paths end with
slash, *unless* the path to be normalized was already the root
directory.
However, normalize_path_copy() does not even enforce this condition.
Even worse: on Windows, the root directory gets translated into a
Windows directory by the Bash before being passed to `git.exe` (or
`test-path-utils.exe`), which means that we cannot even know whether
the path that was passed to us was the root directory to begin with.
This issue has already caused endless hours of trying to "fix" the
MSYS2 runtime, only to break other things due to MSYS2 ensuring that
the converted path maintains the same state as the input path with
respect to any final '/'.
So let's just forget about this test. It is non-essential to Git's
operation, anyway.
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Diffstat (limited to 'path.c')
-rw-r--r-- | path.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -676,6 +676,11 @@ const char *remove_leading_path(const char *in, const char *prefix) * normalized, any time "../" eats up to the prefix_len part, * prefix_len is reduced. In the end prefix_len is the remaining * prefix that has not been overridden by user pathspec. + * + * NEEDSWORK: This function doesn't perform normalization w.r.t. trailing '/'. + * For everything but the root folder itself, the normalized path should not + * end with a '/', then the callers need to be fixed up accordingly. + * */ int normalize_path_copy_len(char *dst, const char *src, int *prefix_len) { |