summaryrefslogtreecommitdiff
path: root/path.c
diff options
context:
space:
mode:
authorRay Donnelly <mingw.android@gmail.com>2015-10-01 19:04:17 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-10-09 01:03:50 (GMT)
commitb2a7123b997f950e9785a5e7df64c3104270fef3 (patch)
treee6536372e9574e61c1d56d12263b6812389bf08d /path.c
parent22f698cb188243b313e024d618283e0293e37140 (diff)
downloadgit-b2a7123b997f950e9785a5e7df64c3104270fef3.zip
git-b2a7123b997f950e9785a5e7df64c3104270fef3.tar.gz
git-b2a7123b997f950e9785a5e7df64c3104270fef3.tar.bz2
test-path-utils.c: remove incorrect assumption
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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/path.c b/path.c
index 95acbaf..58d5620 100644
--- a/path.c
+++ b/path.c
@@ -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)
{