diff tests/test-eol-update @ 11249:0bb67503ad4b stable

eol: extension for managing file EOLs
author Martin Geisler <mg@lazybytes.net>
date Mon, 31 May 2010 21:37:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-eol-update	Mon May 31 21:37:01 2010 +0200
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+cat > $HGRCPATH <<EOF
+[diff]
+git = 1
+EOF
+
+seteol () {
+    if [ $1 = "LF" ]; then
+        EOL='\n'
+    else
+        EOL='\r\n'
+    fi
+}
+
+makerepo () {
+    echo
+    echo "# ==== setup repository ===="
+    echo '% hg init'
+    hg init repo
+    cd repo
+
+    cat > .hgeol <<EOF
+[patterns]
+**.txt = LF
+EOF
+
+    printf "first\nsecond\nthird\n" > a.txt
+    hg commit --addremove -m 'LF commit'
+
+    cat > .hgeol <<EOF
+[patterns]
+**.txt = CRLF
+EOF
+
+    printf "first\r\nsecond\r\nthird\r\n" > a.txt
+    hg commit -m 'CRLF commit'
+
+    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 =
+EOF
+
+    hg update
+
+    echo '% printrepr.py a.txt (before)'
+    python $TESTDIR/printrepr.py < a.txt
+
+    printf "first${EOL}third${EOL}" > a.txt
+
+    echo '% printrepr.py a.txt (after)'
+    python $TESTDIR/printrepr.py < a.txt
+    echo '% hg diff'
+    hg diff | python $TESTDIR/printrepr.py
+
+    echo '% hg update 0'
+    hg update 0
+
+    echo '% printrepr.py a.txt'
+    python $TESTDIR/printrepr.py < a.txt
+    echo '% hg diff'
+    hg diff | python $TESTDIR/printrepr.py
+
+
+    cd ..
+    rm -r repo-$1
+}
+
+makerepo
+dotest LF
+dotest CRLF
+rm -r repo