Browse Source
We need to be extra careful recovering the removed common section, so that we do not break context nor the changed incomplete line (i.e. the last line that does not end with LF). Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Junio C Hamano
17 years ago
2 changed files with 70 additions and 1 deletions
@ -0,0 +1,69 @@
@@ -0,0 +1,69 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='common tail optimization' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
z=zzzzzzzz ;# 8 |
||||
z="$z$z$z$z$z$z$z$z" ;# 64 |
||||
z="$z$z$z$z$z$z$z$z" ;# 512 |
||||
z="$z$z$z$z" ;# 2048 |
||||
z2047=$(expr "$z" : '.\(.*\)') ; #2047 |
||||
|
||||
test_expect_success setup ' |
||||
|
||||
echo "a$z2047" >file-a && |
||||
echo "b" >file-b && |
||||
echo "$z2047" >>file-b && |
||||
echo "c$z2047" | tr -d "\012" >file-c && |
||||
echo "d" >file-d && |
||||
echo "$z2047" | tr -d "\012" >>file-d && |
||||
|
||||
git add file-a file-b file-c file-d && |
||||
|
||||
echo "A$z2047" >file-a && |
||||
echo "B" >file-b && |
||||
echo "$z2047" >>file-b && |
||||
echo "C$z2047" | tr -d "\012" >file-c && |
||||
echo "D" >file-d && |
||||
echo "$z2047" | tr -d "\012" >>file-d |
||||
|
||||
' |
||||
|
||||
cat >expect <<\EOF |
||||
diff --git a/file-a b/file-a |
||||
--- a/file-a |
||||
+++ b/file-a |
||||
@@ -1 +1 @@ |
||||
-aZ |
||||
+AZ |
||||
diff --git a/file-b b/file-b |
||||
--- a/file-b |
||||
+++ b/file-b |
||||
@@ -1 +1 @@ |
||||
-b |
||||
+B |
||||
diff --git a/file-c b/file-c |
||||
--- a/file-c |
||||
+++ b/file-c |
||||
@@ -1 +1 @@ |
||||
-cZ |
||||
\ No newline at end of file |
||||
+CZ |
||||
\ No newline at end of file |
||||
diff --git a/file-d b/file-d |
||||
--- a/file-d |
||||
+++ b/file-d |
||||
@@ -1 +1 @@ |
||||
-d |
||||
+D |
||||
EOF |
||||
|
||||
test_expect_success 'diff -U0' ' |
||||
|
||||
git diff -U0 | sed -e "/^index/d" -e "s/$z2047/Z/g" >actual && |
||||
diff -u expect actual |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue