diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-01-10 23:45:26 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-01-10 23:45:27 +0100 |
commit | 1cf4836865670cadc5d72dc36cdececcb5b32a77 (patch) | |
tree | 8a6d6971492a343c4b71a79bd5640e491e710818 | |
parent | Merge branch 'ma/config-advice-markup-fix' (diff) | |
parent | mingw: safeguard better against backslashes in file names (diff) | |
download | git-1cf4836865670cadc5d72dc36cdececcb5b32a77.tar.xz git-1cf4836865670cadc5d72dc36cdececcb5b32a77.zip |
Merge branch 'js/mingw-loosen-overstrict-tree-entry-checks'
Further tweak to a "no backslash in indexed paths" for Windows port
we applied earlier.
* js/mingw-loosen-overstrict-tree-entry-checks:
mingw: safeguard better against backslashes in file names
-rw-r--r-- | read-cache.c | 12 | ||||
-rwxr-xr-x | t/t7415-submodule-names.sh | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/read-cache.c b/read-cache.c index 737916ebd9..aa427c5c17 100644 --- a/read-cache.c +++ b/read-cache.c @@ -959,7 +959,7 @@ static int verify_dotfile(const char *rest, unsigned mode) int verify_path(const char *path, unsigned mode) { - char c; + char c = 0; if (has_dos_drive_prefix(path)) return 0; @@ -974,6 +974,7 @@ int verify_path(const char *path, unsigned mode) if (is_dir_sep(c)) { inside: if (protect_hfs) { + if (is_hfs_dotgit(path)) return 0; if (S_ISLNK(mode)) { @@ -982,6 +983,10 @@ inside: } } if (protect_ntfs) { +#ifdef GIT_WINDOWS_NATIVE + if (c == '\\') + return 0; +#endif if (is_ntfs_dotgit(path)) return 0; if (S_ISLNK(mode)) { @@ -1278,11 +1283,6 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e int skip_df_check = option & ADD_CACHE_SKIP_DFCHECK; int new_only = option & ADD_CACHE_NEW_ONLY; -#ifdef GIT_WINDOWS_NATIVE - if (protect_ntfs && strchr(ce->name, '\\')) - return error(_("filename in tree entry contains backslash: '%s'"), ce->name); -#endif - if (!(option & ADD_CACHE_KEEP_CACHE_TREE)) cache_tree_invalidate_path(istate, ce->name); diff --git a/t/t7415-submodule-names.sh b/t/t7415-submodule-names.sh index 7ae0dc8ff4..f70368bc2e 100755 --- a/t/t7415-submodule-names.sh +++ b/t/t7415-submodule-names.sh @@ -209,7 +209,7 @@ test_expect_success MINGW 'prevent git~1 squatting on Windows' ' hash="$(echo x | git hash-object -w --stdin)" && test_must_fail git update-index --add \ --cacheinfo 160000,$rev,d\\a 2>err && - test_i18ngrep backslash err && + test_i18ngrep "Invalid path" err && git -c core.protectNTFS=false update-index --add \ --cacheinfo 100644,$modules,.gitmodules \ --cacheinfo 160000,$rev,c \ |