1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
  
     | 
    
      #!/bin/sh
#
# Copyright (c) 2007 Johannes E. Schindelin
#
test_description='add -e basic tests'
. ./test-lib.sh
cat > file << EOF
LO, praise of the prowess of people-kings
of spear-armed Danes, in days long sped,
we have heard, and what honor the athelings won!
Oft Scyld the Scefing from squadroned foes,
from many a tribe, the mead-bench tore,
awing the earls. Since erst he lay
friendless, a foundling, fate repaid him:
for he waxed under welkin, in wealth he throve,
till before him the folk, both far and near,
who house by the whale-path, heard his mandate,
gave him gifts:  a good king he!
EOF
cat > second-part << EOF
To him an heir was afterward born,
a son in his halls, whom heaven sent
to favor the folk, feeling their woe
that erst they had lacked an earl for leader
so long a while; the Lord endowed him,
the Wielder of Wonder, with world's renown.
EOF
test_expect_success 'setup' '
	git add file &&
	test_tick &&
	git commit -m initial file
'
cat > expected-patch << EOF
diff --git a/file b/file
--- a/file
+++ b/file
@@ -1,11 +1,6 @@
-LO, praise of the prowess of people-kings
-of spear-armed Danes, in days long sped,
-we have heard, and what honor the athelings won!
-Oft Scyld the Scefing from squadroned foes,
-from many a tribe, the mead-bench tore,
-awing the earls. Since erst he lay
-friendless, a foundling, fate repaid him:
-for he waxed under welkin, in wealth he throve,
-till before him the folk, both far and near,
-who house by the whale-path, heard his mandate,
-gave him gifts:  a good king he!
+To him an heir was afterward born,
+a son in his halls, whom heaven sent
+to favor the folk, feeling their woe
+that erst they had lacked an earl for leader
+so long a while; the Lord endowed him,
+the Wielder of Wonder, with world's renown.
EOF
cat > patch << EOF
diff --git a/file b/file
index b9834b5..ef6e94c 100644
--- a/file
+++ b/file
@@ -3,1 +3,333 @@ of spear-armed Danes, in days long sped,
 we have heard, and what honor the athelings won!
+
 Oft Scyld the Scefing from squadroned foes,
@@ -2,7 +1,5 @@ awing the earls. Since erst he lay
 friendless, a foundling, fate repaid him:
+
 for he waxed under welkin, in wealth he throve,
EOF
cat > expected << EOF
diff --git a/file b/file
--- a/file
+++ b/file
@@ -1,10 +1,12 @@
 LO, praise of the prowess of people-kings
 of spear-armed Danes, in days long sped,
 we have heard, and what honor the athelings won!
+
 Oft Scyld the Scefing from squadroned foes,
 from many a tribe, the mead-bench tore,
 awing the earls. Since erst he lay
 friendless, a foundling, fate repaid him:
+
 for he waxed under welkin, in wealth he throve,
 till before him the folk, both far and near,
 who house by the whale-path, heard his mandate,
EOF
echo "#!$SHELL_PATH" >fake-editor.sh
cat >> fake-editor.sh <<\EOF
egrep -v '^index' "$1" >orig-patch &&
mv -f patch "$1"
EOF
test_set_editor "$(pwd)/fake-editor.sh"
chmod a+x fake-editor.sh
test_expect_success 'add -e' '
	cp second-part file &&
	git add -e &&
	test_cmp second-part file &&
	test_cmp expected-patch orig-patch &&
	git diff --cached >actual &&
	grep -v index actual >out &&
	test_cmp expected out
'
test_expect_success 'add -e notices editor failure' '
	git reset --hard &&
	echo change >>file &&
	test_must_fail env GIT_EDITOR=false git add -e &&
	test_expect_code 1 git diff --exit-code
'
test_done
 
     |