t / t4102-apply-rename.shon commit pull --rebase: exit early when the working directory is dirty (f9189cf)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Junio C Hamano
   4#
   5
   6test_description='git apply handling copy/rename patch.
   7
   8'
   9. ./test-lib.sh
  10
  11# setup
  12
  13cat >test-patch <<\EOF
  14diff --git a/foo b/bar
  15similarity index 47%
  16rename from foo
  17rename to bar
  18--- a/foo
  19+++ b/bar
  20@@ -1 +1 @@
  21-This is foo
  22+This is bar
  23EOF
  24
  25echo 'This is foo' >foo
  26chmod +x foo
  27
  28test_expect_success setup \
  29    'git update-index --add foo'
  30
  31test_expect_success apply \
  32    'git apply --index --stat --summary --apply test-patch'
  33
  34if [ "$(git config --get core.filemode)" = false ]
  35then
  36        say 'filemode disabled on the filesystem'
  37else
  38        test_expect_success validate \
  39            'test -f bar && ls -l bar | grep "^-..x......"'
  40fi
  41
  42test_expect_success 'apply reverse' \
  43    'git apply -R --index --stat --summary --apply test-patch &&
  44     test "$(cat foo)" = "This is foo"'
  45
  46cat >test-patch <<\EOF
  47diff --git a/foo b/bar
  48similarity index 47%
  49copy from foo
  50copy to bar
  51--- a/foo
  52+++ b/bar
  53@@ -1 +1 @@
  54-This is foo
  55+This is bar
  56EOF
  57
  58test_expect_success 'apply copy' \
  59    'git apply --index --stat --summary --apply test-patch &&
  60     test "$(cat bar)" = "This is bar" -a "$(cat foo)" = "This is foo"'
  61
  62test_done