summaryrefslogtreecommitdiff
path: root/tests/test-eol-update.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-eol-update.t')
-rw-r--r--tests/test-eol-update.t152
1 files changed, 152 insertions, 0 deletions
diff --git a/tests/test-eol-update.t b/tests/test-eol-update.t
new file mode 100644
index 0000000..2189cfa
--- /dev/null
+++ b/tests/test-eol-update.t
@@ -0,0 +1,152 @@
+Test EOL update
+
+ $ 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 '% a.txt (before)'
+ > cat a.txt
+ >
+ > printf "first${EOL}third${EOL}" > a.txt
+ >
+ > echo '% a.txt (after)'
+ > cat a.txt
+ > echo '% hg diff'
+ > hg diff
+ >
+ > echo '% hg update 0'
+ > hg update 0
+ >
+ > echo '% a.txt'
+ > cat a.txt
+ > echo '% hg diff'
+ > hg diff
+ >
+ >
+ > cd ..
+ > rm -r repo-$1
+ > }
+
+ $ makerepo
+
+ # ==== setup repository ====
+ % hg init
+ adding .hgeol
+ adding a.txt
+ $ dotest LF
+
+ % hg clone repo repo-LF
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % a.txt (before)
+ first\r (esc)
+ second\r (esc)
+ third\r (esc)
+ % a.txt (after)
+ first
+ third
+ % hg diff
+ diff --git a/a.txt b/a.txt
+ --- a/a.txt
+ +++ b/a.txt
+ @@ -1,3 +1,2 @@
+ first\r (esc)
+ -second\r (esc)
+ third\r (esc)
+ % hg update 0
+ merging a.txt
+ 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ % a.txt
+ first
+ third
+ % hg diff
+ diff --git a/a.txt b/a.txt
+ --- a/a.txt
+ +++ b/a.txt
+ @@ -1,3 +1,2 @@
+ first
+ -second
+ third
+ $ dotest CRLF
+
+ % hg clone repo repo-CRLF
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % a.txt (before)
+ first\r (esc)
+ second\r (esc)
+ third\r (esc)
+ % a.txt (after)
+ first\r (esc)
+ third\r (esc)
+ % hg diff
+ diff --git a/a.txt b/a.txt
+ --- a/a.txt
+ +++ b/a.txt
+ @@ -1,3 +1,2 @@
+ first\r (esc)
+ -second\r (esc)
+ third\r (esc)
+ % hg update 0
+ merging a.txt
+ 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ % a.txt
+ first
+ third
+ % hg diff
+ diff --git a/a.txt b/a.txt
+ --- a/a.txt
+ +++ b/a.txt
+ @@ -1,3 +1,2 @@
+ first
+ -second
+ third
+ $ rm -r repo