1#!/bin/sh
   2test_description='checkout can handle submodules'
   4. ./test-lib.sh
   6test_expect_success 'setup' '
   8        mkdir submodule &&
   9        (cd submodule &&
  10         git init &&
  11         test_commit first) &&
  12        git add submodule &&
  13        test_tick &&
  14        git commit -m superproject &&
  15        (cd submodule &&
  16         test_commit second) &&
  17        git add submodule &&
  18        test_tick &&
  19        git commit -m updated.superproject
  20'
  21test_expect_success '"reset <submodule>" updates the index' '
  23        git update-index --refresh &&
  24        git diff-files --quiet &&
  25        git diff-index --quiet --cached HEAD &&
  26        test_must_fail git reset HEAD^ submodule &&
  27        test_must_fail git diff-files --quiet &&
  28        git reset submodule &&
  29        git diff-files --quiet
  30'
  31test_expect_success '"checkout <submodule>" updates the index only' '
  33        git update-index --refresh &&
  34        git diff-files --quiet &&
  35        git diff-index --quiet --cached HEAD &&
  36        git checkout HEAD^ submodule &&
  37        test_must_fail git diff-files --quiet &&
  38        git checkout HEAD submodule &&
  39        git diff-files --quiet
  40'
  41test_done