t / t2012-checkout-last.shon commit checkout: implement "-" abbreviation, add docs and tests (696acf4)
   1#!/bin/sh
   2
   3test_description='checkout can switch to last branch'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        echo hello >world &&
   9        git add world &&
  10        git commit -m initial &&
  11        git branch other &&
  12        echo "hello again" >>world &&
  13        git add world &&
  14        git commit -m second
  15'
  16
  17test_expect_success '"checkout -" does not work initially' '
  18        test_must_fail git checkout -
  19'
  20
  21test_expect_success 'first branch switch' '
  22        git checkout other
  23'
  24
  25test_expect_success '"checkout -" switches back' '
  26        git checkout - &&
  27        test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"
  28'
  29
  30test_expect_success '"checkout -" switches forth' '
  31        git checkout - &&
  32        test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
  33'
  34
  35test_expect_success 'detach HEAD' '
  36        git checkout $(git rev-parse HEAD)
  37'
  38
  39test_expect_success '"checkout -" attaches again' '
  40        git checkout - &&
  41        test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
  42'
  43
  44test_expect_success '"checkout -" detaches again' '
  45        git checkout - &&
  46        test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" &&
  47        test_must_fail git symbolic-ref HEAD
  48'
  49
  50test_done