Mercurial > hg
view tests/test-eol-patch.t @ 19636:6bbce5efc67b
mq: look for modified subrepos when checking for local changes
It was possible to apply, unapply, fold, patches (etc) with modified subrepos,
which resulted in surprising behavior. For example it was easy to apply a patch
with a modified subrepo, and then the refresh it and accidentally end up
including the modified subrepo on the refreshed patch.
A test has been added to verify this new check.
# HG changeset patch
# User Angel Ezquerra <angel.ezquerra@gmail.com>
# Date 1375742979 -7200
# Tue Aug 06 00:49:39 2013 +0200
# Node ID a5c90acff5e61aae714ba6c9457d766c54b4f124
# Parent 6ac206fb6f27492a98f46bbff090407ee1b1de72
mq: look for modified subrepos when checking for local changes
It was possible to apply, unapply, fold, patches (etc) with modified subrepos,
which resulted in surprising behavior. For example it was easy to apply a patch
with a modified subrepo, and then the refresh it and accidentally end up
including the modified subrepo on the refreshed patch.
A test has been added to verify this new check.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Tue, 06 Aug 2013 00:49:39 +0200 |
parents | 43b3b761d9d1 |
children |
line wrap: on
line source
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