t / t1090-sparse-checkout-scope.shon commit revision: new rev^-n shorthand for rev^n..rev (8779351)
   1#!/bin/sh
   2
   3test_description='sparse checkout scope tests'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        echo "initial" >a &&
   9        echo "initial" >b &&
  10        echo "initial" >c &&
  11        git add a b c &&
  12        git commit -m "initial commit"
  13'
  14
  15test_expect_success 'create feature branch' '
  16        git checkout -b feature &&
  17        echo "modified" >b &&
  18        echo "modified" >c &&
  19        git add b c &&
  20        git commit -m "modification"
  21'
  22
  23test_expect_success 'perform sparse checkout of master' '
  24        git config --local --bool core.sparsecheckout true &&
  25        echo "!/*" >.git/info/sparse-checkout &&
  26        echo "/a" >>.git/info/sparse-checkout &&
  27        echo "/c" >>.git/info/sparse-checkout &&
  28        git checkout master &&
  29        test_path_is_file a &&
  30        test_path_is_missing b &&
  31        test_path_is_file c
  32'
  33
  34test_expect_success 'merge feature branch into sparse checkout of master' '
  35        git merge feature &&
  36        test_path_is_file a &&
  37        test_path_is_missing b &&
  38        test_path_is_file c &&
  39        test "$(cat c)" = "modified"
  40'
  41
  42test_expect_success 'return to full checkout of master' '
  43        git checkout feature &&
  44        echo "/*" >.git/info/sparse-checkout &&
  45        git checkout master &&
  46        test_path_is_file a &&
  47        test_path_is_file b &&
  48        test_path_is_file c &&
  49        test "$(cat b)" = "modified"
  50'
  51
  52test_done