b32ab6cdb0
Previously, the contains_same_elements() function was causing tests to immediately exit when called, meaning that portions of many tests were being inadvertently skipped. This fixes the contains_same_elements() function so it no longer exits the test, and fixes the failing tests exposed by this change.
89 lines
2.8 KiB
Bash
Executable File
89 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
. "$(dirname "$0")/testlib.sh"
|
|
|
|
ensure_git_version_isnt $VERSION_LOWER "2.5.0"
|
|
envInitConfig='git config filter.lfs.process = "git-lfs filter-process"
|
|
git config filter.lfs.smudge = "git-lfs smudge -- %f"
|
|
git config filter.lfs.clean = "git-lfs clean -- %f"'
|
|
|
|
begin_test "git worktree"
|
|
(
|
|
set -e
|
|
reponame="worktree-main"
|
|
mkdir $reponame
|
|
cd $reponame
|
|
git init
|
|
|
|
# can't create a worktree until there's 1 commit at least
|
|
echo "a" > tmp.txt
|
|
git add tmp.txt
|
|
git commit -m "Initial commit"
|
|
|
|
expected=$(printf "%s\n%s\n
|
|
LocalWorkingDir=$(native_path_escaped "$TRASHDIR/$reponame")
|
|
LocalGitDir=$(native_path_escaped "$TRASHDIR/$reponame/.git")
|
|
LocalGitStorageDir=$(native_path_escaped "$TRASHDIR/$reponame/.git")
|
|
LocalMediaDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs/objects")
|
|
LocalReferenceDirs=
|
|
TempDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs/tmp")
|
|
ConcurrentTransfers=3
|
|
TusTransfers=false
|
|
BasicTransfersOnly=false
|
|
SkipDownloadErrors=false
|
|
FetchRecentAlways=false
|
|
FetchRecentRefsDays=7
|
|
FetchRecentCommitsDays=0
|
|
FetchRecentRefsIncludeRemotes=true
|
|
PruneOffsetDays=3
|
|
PruneVerifyRemoteAlways=false
|
|
PruneRemoteName=origin
|
|
LfsStorageDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs")
|
|
AccessDownload=none
|
|
AccessUpload=none
|
|
DownloadTransfers=basic
|
|
UploadTransfers=basic
|
|
$(escape_path "$(env | grep "^GIT")")
|
|
%s
|
|
" "$(git lfs version)" "$(git version)" "$envInitConfig")
|
|
actual=$(git lfs env | grep -v "^GIT_EXEC_PATH=")
|
|
contains_same_elements "$expected" "$actual"
|
|
|
|
worktreename="worktree-2"
|
|
git worktree add "$TRASHDIR/$worktreename"
|
|
cd "$TRASHDIR/$worktreename"
|
|
|
|
# git dir in worktree is like submodules (except path is worktrees) but this
|
|
# is only for index, temp etc
|
|
# storage of git objects and lfs objects is in the original .git
|
|
expected=$(printf "%s\n%s\n
|
|
LocalWorkingDir=$(native_path_escaped "$TRASHDIR/$worktreename")
|
|
LocalGitDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/worktrees/$worktreename")
|
|
LocalGitStorageDir=$(native_path_escaped "$TRASHDIR/$reponame/.git")
|
|
LocalMediaDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs/objects")
|
|
LocalReferenceDirs=
|
|
TempDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs/tmp")
|
|
ConcurrentTransfers=3
|
|
TusTransfers=false
|
|
BasicTransfersOnly=false
|
|
SkipDownloadErrors=false
|
|
FetchRecentAlways=false
|
|
FetchRecentRefsDays=7
|
|
FetchRecentCommitsDays=0
|
|
FetchRecentRefsIncludeRemotes=true
|
|
PruneOffsetDays=3
|
|
PruneVerifyRemoteAlways=false
|
|
PruneRemoteName=origin
|
|
LfsStorageDir=$(native_path_escaped "$TRASHDIR/$reponame/.git/lfs")
|
|
AccessDownload=none
|
|
AccessUpload=none
|
|
DownloadTransfers=basic
|
|
UploadTransfers=basic
|
|
$(escape_path "$(env | grep "^GIT")")
|
|
%s
|
|
" "$(git lfs version)" "$(git version)" "$envInitConfig")
|
|
actual=$(git lfs env | grep -v "^GIT_EXEC_PATH=")
|
|
contains_same_elements "$expected" "$actual"
|
|
)
|
|
end_test
|