On Sat, Oct 3, 2015 at 6:13 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Ray Donnelly <mingw.android@xxxxxxxxx> writes: > >> 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. > > Perhaps the real issue to be addressed is the above, and your patch > is killing a coalmine canary? > > Some callers of this function in real code (i.e. not the one you are > removing the check) do seem to depend on that condition, e.g. the > codepath in clone that leads to add_to_alternates_file() wants to > make sure it does not add an duplicate, so it may end up not noticing > /foo/bar and /foo/bar/ are the same thing, no? There may be others. > > Enforcing that normalize_path_copy() removes any trailing '/' (apart from the root directory) breaks other things that assume it doesn't mess with trailing '/'s, for example filtering in ls-tree. Any suggestions for what to do about this? Would a flag be appropriate as to whether to do this part or not? Though I'll admit I don't like the idea of adding flags to modify the behavior of something that's meant to "normalize" something. Alternatively, I could go through all the breakages and try to fix them up? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html