diff options
Diffstat (limited to 'tests/test-eol-patch.t')
-rw-r--r-- | tests/test-eol-patch.t | 400 |
1 files changed, 400 insertions, 0 deletions
diff --git a/tests/test-eol-patch.t b/tests/test-eol-patch.t new file mode 100644 index 0000000..e2786f8 --- /dev/null +++ b/tests/test-eol-patch.t @@ -0,0 +1,400 @@ +Test EOL patching + + $ cat >> $HGRCPATH <<EOF + > [diff] + > git = 1 + > EOF + +Set up helpers + + $ seteol () { + > if [ $1 = "LF" ]; then + > EOL='\n' + > else + > EOL='\r\n' + > fi + > } + + $ makerepo () { + > seteol $1 + > echo + > echo "# ==== setup $1 repository ====" + > echo '% hg init' + > hg init repo + > cd repo + > cat > .hgeol <<EOF + > [repository] + > native = $1 + > [patterns] + > unix.txt = LF + > win.txt = CRLF + > **.txt = native + > EOF + > printf "first\r\nsecond\r\nthird\r\n" > win.txt + > printf "first\nsecond\nthird\n" > unix.txt + > printf "first${EOL}second${EOL}third${EOL}" > native.txt + > hg commit --addremove -m 'checkin' + > cd .. + > } + + $ dotest () { + > seteol $1 + > echo + > echo "% hg clone repo repo-$1" + > hg clone --noupdate repo repo-$1 + > cd repo-$1 + > cat > .hg/hgrc <<EOF + > [extensions] + > eol = + > [eol] + > native = $1 + > EOF + > hg update + > echo '% native.txt' + > cat native.txt + > echo '% unix.txt' + > cat unix.txt + > echo '% win.txt' + > cat win.txt + > printf "first${EOL}third${EOL}" > native.txt + > printf "first\r\nthird\r\n" > win.txt + > printf "first\nthird\n" > unix.txt + > echo '% hg diff' + > hg diff > p + > cat p + > echo '% hg revert' + > hg revert --all + > echo '% hg import' + > hg import -m 'patch' p + > echo '% native.txt' + > cat native.txt + > echo '% unix.txt' + > cat unix.txt + > echo '% win.txt' + > cat win.txt + > echo '% hg diff -c tip' + > hg diff -c tip + > cd .. + > rm -r repo-$1 + > } + +Run tests + + $ makerepo LF + + # ==== setup LF repository ==== + % hg init + adding .hgeol + adding native.txt + adding unix.txt + adding win.txt + $ dotest LF + + % hg clone repo repo-LF + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + % native.txt + first + second + third + % unix.txt + first + second + third + % win.txt + first\r (esc) + second\r (esc) + third\r (esc) + % hg diff + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + % hg revert + reverting native.txt + reverting unix.txt + reverting win.txt + % hg import + applying p + % native.txt + first + third + % unix.txt + first + third + % win.txt + first\r (esc) + third\r (esc) + % hg diff -c tip + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + $ dotest CRLF + + % hg clone repo repo-CRLF + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + % native.txt + first\r (esc) + second\r (esc) + third\r (esc) + % unix.txt + first + second + third + % win.txt + first\r (esc) + second\r (esc) + third\r (esc) + % hg diff + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + % hg revert + reverting native.txt + reverting unix.txt + reverting win.txt + % hg import + applying p + % native.txt + first\r (esc) + third\r (esc) + % unix.txt + first + third + % win.txt + first\r (esc) + third\r (esc) + % hg diff -c tip + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + $ rm -r repo + $ makerepo CRLF + + # ==== setup CRLF repository ==== + % hg init + adding .hgeol + adding native.txt + adding unix.txt + adding win.txt + $ dotest LF + + % hg clone repo repo-LF + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + % native.txt + first + second + third + % unix.txt + first + second + third + % win.txt + first\r (esc) + second\r (esc) + third\r (esc) + % hg diff + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + % hg revert + reverting native.txt + reverting unix.txt + reverting win.txt + % hg import + applying p + % native.txt + first + third + % unix.txt + first + third + % win.txt + first\r (esc) + third\r (esc) + % hg diff -c tip + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + $ dotest CRLF + + % hg clone repo repo-CRLF + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + % native.txt + first\r (esc) + second\r (esc) + third\r (esc) + % unix.txt + first + second + third + % win.txt + first\r (esc) + second\r (esc) + third\r (esc) + % hg diff + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + % hg revert + reverting native.txt + reverting unix.txt + reverting win.txt + % hg import + applying p + % native.txt + first\r (esc) + third\r (esc) + % unix.txt + first + third + % win.txt + first\r (esc) + third\r (esc) + % hg diff -c tip + diff --git a/native.txt b/native.txt + --- a/native.txt + +++ b/native.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + diff --git a/unix.txt b/unix.txt + --- a/unix.txt + +++ b/unix.txt + @@ -1,3 +1,2 @@ + first + -second + third + diff --git a/win.txt b/win.txt + --- a/win.txt + +++ b/win.txt + @@ -1,3 +1,2 @@ + first\r (esc) + -second\r (esc) + third\r (esc) + $ rm -r repo |