#!/bin/sh
test_description='checkout should leave clean stat info'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
echo hello >world &&
git update-index --add world &&
git commit -m initial &&
git branch side &&
echo goodbye >world &&
git update-index --add world &&
git commit -m second
'
test_expect_success 'branch switching' '
git reset --hard &&
test "$(git diff-files --raw)" = "" &&
git checkout main &&
test "$(git diff-files --raw)" = "" &&
git checkout side &&
test "$(git diff-files --raw)" = "" &&
git checkout main &&
test "$(git diff-files --raw)" = ""
'
test_expect_success 'path checkout' '
git reset --hard &&
test "$(git diff-files --raw)" = "" &&
git checkout main world &&
test "$(git diff-files --raw)" = "" &&
git checkout side world &&
test "$(git diff-files --raw)" = "" &&
git checkout main world &&
test "$(git diff-files --raw)" = ""
'
test_done