t / t3501-revert-cherry-pick.shon commit Merge branch 'lt/core-optim' (dccb3a6)
   1#!/bin/sh
   2
   3test_description='test cherry-pick and revert with renames
   4
   5  --
   6   + rename2: renames oops to opos
   7  +  rename1: renames oops to spoo
   8  +  added:   adds extra line to oops
   9  ++ initial: has lines in oops
  10
  11'
  12
  13. ./test-lib.sh
  14
  15test_expect_success setup '
  16
  17        for l in a b c d e f g h i j k l m n o
  18        do
  19                echo $l$l$l$l$l$l$l$l$l
  20        done >oops &&
  21
  22        test_tick &&
  23        git add oops &&
  24        git commit -m initial &&
  25        git tag initial &&
  26
  27        test_tick &&
  28        echo "Add extra line at the end" >>oops &&
  29        git commit -a -m added &&
  30        git tag added &&
  31
  32        test_tick &&
  33        git mv oops spoo &&
  34        git commit -m rename1 &&
  35        git tag rename1 &&
  36
  37        test_tick &&
  38        git checkout -b side initial &&
  39        git mv oops opos &&
  40        git commit -m rename2 &&
  41        git tag rename2
  42'
  43
  44test_expect_success 'cherry-pick after renaming branch' '
  45
  46        git checkout rename2 &&
  47        git cherry-pick added &&
  48        test -f opos &&
  49        grep "Add extra line at the end" opos
  50
  51'
  52
  53test_expect_success 'revert after renaming branch' '
  54
  55        git checkout rename1 &&
  56        git revert added &&
  57        test -f spoo &&
  58        ! grep "Add extra line at the end" spoo
  59
  60'
  61
  62test_expect_success 'revert forbidden on dirty working tree' '
  63
  64        echo content >extra_file &&
  65        git add extra_file &&
  66        test_must_fail git revert HEAD 2>errors &&
  67        grep "Dirty index" errors
  68
  69'
  70
  71test_done