diff options
| author | Jiang Xin <worldhello.net@gmail.com> | 2022-04-13 14:51:53 +0800 |
|---|---|---|
| committer | Jiang Xin <worldhello.net@gmail.com> | 2022-04-13 14:51:53 +0800 |
| commit | 61de00a32115b6090891f20797fdfd1501709ab9 (patch) | |
| tree | e6a0290cef9e52589a8b78e55dbae3daf559e202 /t | |
| parent | Merge branch 'fr_2.36_rnd1' of github.com:jnavila/git (diff) | |
| parent | Git 2.36-rc2 (diff) | |
| download | git-61de00a32115b6090891f20797fdfd1501709ab9.tar.gz git-61de00a32115b6090891f20797fdfd1501709ab9.zip | |
Merge branch 'master' of github.com:git/git
* 'master' of github.com:git/git: (25 commits)
Git 2.36-rc2
i18n: fix some badly formatted i18n strings
Git 2.36-rc1
t9902: split test to run on appropriate systems
ls-tree doc: document interaction with submodules
Documentation: add --batch-command to cat-file synopsis
git-ls-tree.txt: fix the name of "%(objectsize:padded)"
submodule-helper: fix usage string
doc: replace "--" with {litdd} in credential-cache/fsmonitor
contrib/scalar: fix 'all' target in Makefile
Documentation/Makefile: fix "make info" regression in dad9cd7d518
configure.ac: fix HAVE_SYNC_FILE_RANGE definition
git-compat-util: really support openssl as a source of entropy
ls-tree: `-l` should not imply recursive listing
Git 2.35.2
Git 2.34.2
Git 2.33.2
Git 2.32.1
Git 2.31.2
Git 2.30.3
...
Diffstat (limited to 't')
| -rwxr-xr-x | t/t0060-path-utils.sh | 20 | ||||
| -rwxr-xr-x | t/t9902-completion.sh | 35 |
2 files changed, 40 insertions, 15 deletions
diff --git a/t/t0060-path-utils.sh b/t/t0060-path-utils.sh index 71a5d370cc..2fe6ae6a4e 100755 --- a/t/t0060-path-utils.sh +++ b/t/t0060-path-utils.sh @@ -55,12 +55,15 @@ fi ancestor() { # We do some math with the expected ancestor length. expected=$3 - if test -n "$rootoff" && test "x$expected" != x-1; then - expected=$(($expected-$rootslash)) - test $expected -lt 0 || - expected=$(($expected+$rootoff)) - fi - test_expect_success "longest ancestor: $1 $2 => $expected" \ + case "$rootoff,$expected,$2" in + *,*,//*) ;; # leave UNC paths alone + [0-9]*,[0-9]*,/*) + # On Windows, expect MSYS2 pseudo root translation for + # Unix-style absolute paths + expected=$(($expected-$rootslash+$rootoff)) + ;; + esac + test_expect_success $4 "longest ancestor: $1 $2 => $expected" \ "actual=\$(test-tool path-utils longest_ancestor_length '$1' '$2') && test \"\$actual\" = '$expected'" } @@ -156,6 +159,11 @@ ancestor /foo/bar /foo 4 ancestor /foo/bar /foo:/bar 4 ancestor /foo/bar /bar -1 +# Windows-specific: DOS drives, network shares +ancestor C:/Users/me C:/ 2 MINGW +ancestor D:/Users/me C:/ -1 MINGW +ancestor //server/share/my-directory //server/share/ 14 MINGW + test_expect_success 'strip_path_suffix' ' test c:/msysgit = $(test-tool path-utils strip_path_suffix \ c:/msysgit/libexec//git-core libexec/git-core) diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 24117cb901..31526e6b64 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -1529,28 +1529,45 @@ test_expect_success 'cone mode sparse-checkout completes directory names with sp ) ' -# use FUNNYNAMES to avoid running on Windows, which doesn't permit backslashes or tabs in paths -test_expect_success FUNNYNAMES 'cone mode sparse-checkout completes directory names with backslashes and tabs' ' +# use FUNNYNAMES to avoid running on Windows, which doesn't permit tabs in paths +test_expect_success FUNNYNAMES 'cone mode sparse-checkout completes directory names with tabs' ' # reset sparse-checkout git -C sparse-checkout sparse-checkout disable && ( cd sparse-checkout && - mkdir "directory\with\backslashes" && mkdir "$(printf "directory\twith\ttabs")" && - >"directory\with\backslashes/randomfile" && >"$(printf "directory\twith\ttabs")/randomfile" && git add . && - git commit -m "Add directory with backslashes and directory with tabs" && - git sparse-checkout set --cone "directory\with\backslashes" \ + git commit -m "Add directory with tabs" && + git sparse-checkout set --cone \ "$(printf "directory\twith\ttabs")" && test_completion "git sparse-checkout add dir" <<-\EOF && - directory\with\backslashes/ directory with tabs/ EOF - rm -rf "directory\with\backslashes" && rm -rf "$(printf "directory\twith\ttabs")" && git add . && - git commit -m "Remove directory with backslashes and directory with tabs" + git commit -m "Remove directory with tabs" + ) +' + +# use FUNNYNAMES to avoid running on Windows, and !CYGWIN for Cygwin, as neither permit backslashes in paths +test_expect_success FUNNYNAMES,!CYGWIN 'cone mode sparse-checkout completes directory names with backslashes' ' + # reset sparse-checkout + git -C sparse-checkout sparse-checkout disable && + ( + cd sparse-checkout && + mkdir "directory\with\backslashes" && + >"directory\with\backslashes/randomfile" && + git add . && + git commit -m "Add directory with backslashes" && + git sparse-checkout set --cone \ + "directory\with\backslashes" && + test_completion "git sparse-checkout add dir" <<-\EOF && + directory\with\backslashes/ + EOF + rm -rf "directory\with\backslashes" && + git add . && + git commit -m "Remove directory with backslashes" ) ' |
