diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2016-08-05 16:41:12 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-08-08 10:43:20 -0700 |
commit | 189d035e67b1f8cdbb1dbd388efd1b7434f34b04 (patch) | |
tree | a8155d6ee7d1052b8054a87945fa0152f9622f17 /attr.h | |
parent | Some fixes for 2.9.3 (diff) | |
download | tgif-189d035e67b1f8cdbb1dbd388efd1b7434f34b04.tar.xz |
git mv: do not keep slash in `git mv dir non-existing-dir/`
When calling `rename("dir", "non-existing-dir/")` on Linux, it silently
succeeds, stripping the trailing slash of the second argument.
This is all good and dandy but this behavior disagrees with the specs at
http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html
that state clearly regarding the 2nd parameter (called `new`):
If the `new` argument does not resolve to an existing directory
entry for a file of type directory and the `new` argument
contains at least one non- <slash> character and ends with one
or more trailing <slash> characters after all symbolic links
have been processed, `rename()` shall fail.
Of course, we would like `git mv dir non-existing-dir/` to succeed (and
rename the directory "dir" to "non-existing-dir"). Let's be extra
careful to remove the trailing slash in that case.
This lets t7001-mv.sh pass in Bash on Windows.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.h')
0 files changed, 0 insertions, 0 deletions