Merge pull request #946 from AlanZhang2002/ambiguous-git-reset

added separator after ref to remove git reset --soft ambiguity
This commit is contained in:
Kubernetes Prow Robot 2025-05-01 12:05:56 -07:00 committed by GitHub
commit 2c9f83bbee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 35 additions and 1 deletions

View File

@ -1780,7 +1780,7 @@ func (git *repoSync) SyncRepo(ctx context.Context, refreshCreds func(context.Con
// Reset the repo (note: not the worktree - that happens later) to the new // Reset the repo (note: not the worktree - that happens later) to the new
// ref. This makes subsequent fetches much less expensive. It uses --soft // ref. This makes subsequent fetches much less expensive. It uses --soft
// so no files are checked out. // so no files are checked out.
if _, _, err := git.Run(ctx, git.root, "reset", "--soft", remoteHash); err != nil { if _, _, err := git.Run(ctx, git.root, "reset", "--soft", remoteHash, "--"); err != nil {
return false, "", err return false, "", err
} }

View File

@ -1491,6 +1491,40 @@ function e2e::sync_crash_no_worktree_cleanup_retry() {
assert_file_eq "$ROOT/link/file" "${FUNCNAME[0]}" assert_file_eq "$ROOT/link/file" "${FUNCNAME[0]}"
} }
##############################################
# Test syncing if a file named for the SHA exists
##############################################
function e2e::sync_sha_shafile_exists() {
echo "${FUNCNAME[0]} 1" > "$REPO/file"
git -C "$REPO" commit -qam "${FUNCNAME[0]} 1"
SHA1=$(git -C "$REPO" rev-list -n1 HEAD)
echo "${FUNCNAME[0]} 2" > "$REPO/file"
git -C "$REPO" commit -qam "${FUNCNAME[0]} 2"
SHA2=$(git -C "$REPO" rev-list -n1 HEAD)
GIT_SYNC \
--one-time \
--repo="file://$REPO" \
--ref="$SHA1" \
--root="$ROOT" \
--link="link"
assert_link_exists "$ROOT/link"
assert_file_exists "$ROOT/link/file"
assert_file_eq "$ROOT/link/file" "${FUNCNAME[0]} 1"
touch "$ROOT/$SHA2"
GIT_SYNC \
--one-time \
--repo="file://$REPO" \
--ref="$SHA2" \
--root="$ROOT" \
--link="link"
assert_link_exists "$ROOT/link"
assert_file_exists "$ROOT/link/file"
assert_file_eq "$ROOT/link/file" "${FUNCNAME[0]} 2"
}
############################################## ##############################################
# Test changing repos with storage intact # Test changing repos with storage intact
############################################## ##############################################