|  | #!/bin/sh | 
|  |  | 
|  | test_description='index file specific tests' | 
|  |  | 
|  | . ./test-lib.sh | 
|  |  | 
|  | test_expect_success 'setup' ' | 
|  | echo 1 >a | 
|  | ' | 
|  |  | 
|  | test_expect_success 'bogus GIT_INDEX_VERSION issues warning' ' | 
|  | ( | 
|  | rm -f .git/index && | 
|  | GIT_INDEX_VERSION=2bogus && | 
|  | export GIT_INDEX_VERSION && | 
|  | git add a 2>&1 | sed "s/[0-9]//" >actual.err && | 
|  | sed -e "s/ Z$/ /" <<-\EOF >expect.err && | 
|  | warning: GIT_INDEX_VERSION set, but the value is invalid. | 
|  | Using version Z | 
|  | EOF | 
|  | test_i18ncmp expect.err actual.err | 
|  | ) | 
|  | ' | 
|  |  | 
|  | test_expect_success 'out of bounds GIT_INDEX_VERSION issues warning' ' | 
|  | ( | 
|  | rm -f .git/index && | 
|  | GIT_INDEX_VERSION=1 && | 
|  | export GIT_INDEX_VERSION && | 
|  | git add a 2>&1 | sed "s/[0-9]//" >actual.err && | 
|  | sed -e "s/ Z$/ /" <<-\EOF >expect.err && | 
|  | warning: GIT_INDEX_VERSION set, but the value is invalid. | 
|  | Using version Z | 
|  | EOF | 
|  | test_i18ncmp expect.err actual.err | 
|  | ) | 
|  | ' | 
|  |  | 
|  | test_expect_success 'no warning with bogus GIT_INDEX_VERSION and existing index' ' | 
|  | ( | 
|  | GIT_INDEX_VERSION=1 && | 
|  | export GIT_INDEX_VERSION && | 
|  | git add a 2>actual.err && | 
|  | >expect.err && | 
|  | test_i18ncmp expect.err actual.err | 
|  | ) | 
|  | ' | 
|  |  | 
|  | test_expect_success 'out of bounds index.version issues warning' ' | 
|  | ( | 
|  | sane_unset GIT_INDEX_VERSION && | 
|  | rm -f .git/index && | 
|  | git config --add index.version 1 && | 
|  | git add a 2>&1 | sed "s/[0-9]//" >actual.err && | 
|  | sed -e "s/ Z$/ /" <<-\EOF >expect.err && | 
|  | warning: index.version set, but the value is invalid. | 
|  | Using version Z | 
|  | EOF | 
|  | test_i18ncmp expect.err actual.err | 
|  | ) | 
|  | ' | 
|  |  | 
|  | test_expect_success 'GIT_INDEX_VERSION takes precedence over config' ' | 
|  | ( | 
|  | rm -f .git/index && | 
|  | GIT_INDEX_VERSION=4 && | 
|  | export GIT_INDEX_VERSION && | 
|  | git config --add index.version 2 && | 
|  | git add a 2>&1 && | 
|  | echo 4 >expect && | 
|  | test-index-version <.git/index >actual && | 
|  | test_cmp expect actual | 
|  | ) | 
|  | ' | 
|  |  | 
|  | test_done |