##// END OF EJS Templates
tests: use pyflakes as a tool, not a python module...
tests: use pyflakes as a tool, not a python module The usage of pyflakes as a Python module was introduced in e397c6d74652, to work around issue between Python 2 and Python 3. This issues are long behind us now and we can get beck to using pyflakes as a tool, giving us more flexibility about how we install it. The `hghave` requirements is modified to check that we have a tool available, instead of a python module.

File last commit:

r43562:e88549a0 default
r52956:43602c67 default
Show More
test-eol-update.t
278 lines | 5.8 KiB | text/troff | Tads3Lexer
/ tests / test-eol-update.t
Matt Mackall
tests: unify test-eol-update
r12424 Test EOL update
Martin Geisler
tests: don't overwrite HGRCPATH...
r13519 $ cat >> $HGRCPATH <<EOF
Matt Mackall
tests: unify test-eol-update
r12424 > [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
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 > printf "f\r\n" > f
Matt Mackall
tests: unify test-eol-update
r12424 > hg commit --addremove -m 'LF commit'
>
> cat > .hgeol <<EOF
> [patterns]
> **.txt = CRLF
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 > f = LF
Matt Mackall
tests: unify test-eol-update
r12424 > EOF
>
> printf "first\r\nsecond\r\nthird\r\n" > a.txt
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 > printf "f\n" > f
Matt Mackall
tests: unify test-eol-update
r12424 > 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
>
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 > echo '% a.txt (before)'
> cat a.txt
Matt Mackall
tests: unify test-eol-update
r12424 >
> printf "first${EOL}third${EOL}" > a.txt
>
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 > echo '% a.txt (after)'
> cat a.txt
Matt Mackall
tests: unify test-eol-update
r12424 > echo '% hg diff'
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 > hg diff
Matt Mackall
tests: unify test-eol-update
r12424 >
> echo '% hg update 0'
> hg update 0
>
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 > echo '% a.txt'
> cat a.txt
Matt Mackall
tests: unify test-eol-update
r12424 > echo '% hg diff'
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 > hg diff
Matt Mackall
tests: unify test-eol-update
r12424 >
>
> cd ..
> rm -r repo-$1
> }
$ makerepo
# ==== setup repository ====
% hg init
adding .hgeol
adding a.txt
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 adding f
Matt Mackall
tests: unify test-eol-update
r12424 $ dotest LF
% hg clone repo repo-LF
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 % a.txt (before)
first\r (esc)
second\r (esc)
third\r (esc)
% a.txt (after)
Matt Mackall
tests: unify test-eol-update
r12424 first
third
% hg diff
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,2 @@
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 first\r (esc)
-second\r (esc)
third\r (esc)
Matt Mackall
tests: unify test-eol-update
r12424 % hg update 0
merging a.txt
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 2 files updated, 1 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 % a.txt
Matt Mackall
tests: unify test-eol-update
r12424 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
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 % a.txt (before)
first\r (esc)
second\r (esc)
third\r (esc)
% a.txt (after)
first\r (esc)
third\r (esc)
Matt Mackall
tests: unify test-eol-update
r12424 % hg diff
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,2 @@
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 first\r (esc)
-second\r (esc)
third\r (esc)
Matt Mackall
tests: unify test-eol-update
r12424 % hg update 0
merging a.txt
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 2 files updated, 1 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 % a.txt
Matt Mackall
tests: unify test-eol-update
r12424 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
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
Test in repo using eol extension, while keeping an eye on how filters are
applied:
$ cd repo
$ hg up -q -c -r null
$ cat > .hg/hgrc <<EOF
> [extensions]
> eol =
> EOF
Mads Kiilerich
eol: fix update - don't use and apply removed .hgeol patterns...
r43476 Update to revision 0 which has no .hgeol, shouldn't use any filters, and
obviously should leave things as tidy as they were before the clean update.
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
$ hg up -c -r 0 -v --debug
resolving manifests
branchmerge: False, force: False, partial: False
ancestor: 000000000000, local: 000000000000+, remote: 15cbdf8ca3db
calling hook preupdate.eol: hgext.eol.preupdate
.hgeol: remote created -> g
getting .hgeol
Mads Kiilerich
eol: update isbinary filter to work without compat wrapper
r43474 filtering .hgeol through isbinary
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 a.txt: remote created -> g
getting a.txt
Mads Kiilerich
localrepo: debug log of filter name when filtering through a function
r43472 filtering a.txt through tolf
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 f: remote created -> g
getting f
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
$ hg branch b
marked working directory as branch b
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m b
Merge changes that apply a filter to f:
$ hg merge 1
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg st
M .hgeol
M a.txt
M f
$ hg diff
diff --git a/.hgeol b/.hgeol
--- a/.hgeol
+++ b/.hgeol
@@ -1,2 +1,3 @@
[patterns]
-**.txt = LF
+**.txt = CRLF
+f = LF
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,3 @@
-first
-second
-third
+first\r (esc)
+second\r (esc)
+third\r (esc)
diff --git a/f b/f
--- a/f
+++ b/f
@@ -1,1 +1,1 @@
-f\r (esc)
+f
Mads Kiilerich
eol: fix update - don't use and apply removed .hgeol patterns...
r43476 Abort the merge with up -C to revision 0.
Note that files are filtered correctly for revision 0: f is not filtered, a.txt
is filtered with tolf, and everything is left tidy.
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
$ touch .hgeol * # ensure consistent dirtyness checks ignoring dirstate
$ hg up -C -r 0 -v --debug
eol: detected change in .hgeol
resolving manifests
branchmerge: False, force: True, partial: False
ancestor: 1db78bdd3bd6+, local: 1db78bdd3bd6+, remote: 15cbdf8ca3db
calling hook preupdate.eol: hgext.eol.preupdate
.hgeol: remote is newer -> g
getting .hgeol
Mads Kiilerich
eol: update isbinary filter to work without compat wrapper
r43474 filtering .hgeol through isbinary
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 a.txt: remote is newer -> g
getting a.txt
Mads Kiilerich
localrepo: debug log of filter name when filtering through a function
r43472 filtering a.txt through tolf
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 f: remote is newer -> g
getting f
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ touch .hgeol *
$ hg st --debug
eol: detected change in .hgeol
Mads Kiilerich
eol: update isbinary filter to work without compat wrapper
r43474 filtering .hgeol through isbinary
Mads Kiilerich
localrepo: debug log of filter name when filtering through a function
r43472 filtering a.txt through tolf
Matt Harbison
tests: stabilize test-eol-update on Windows...
r43562 skip updating dirstate: identity mismatch (?)
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 $ hg diff
Mads Kiilerich
eol: fix update - don't use and apply removed .hgeol patterns...
r43476 Things were clean, and updating again will not change anything:
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
$ touch .hgeol *
$ hg up -C -r 0 -v --debug
eol: detected change in .hgeol
Mads Kiilerich
eol: update isbinary filter to work without compat wrapper
r43474 filtering .hgeol through isbinary
Mads Kiilerich
localrepo: debug log of filter name when filtering through a function
r43472 filtering a.txt through tolf
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471 resolving manifests
branchmerge: False, force: True, partial: False
ancestor: 15cbdf8ca3db+, local: 15cbdf8ca3db+, remote: 15cbdf8ca3db
calling hook preupdate.eol: hgext.eol.preupdate
Matt Harbison
tests: stabilize test-eol-update on Windows...
r43562 starting 4 threads for background file closing (?)
Mads Kiilerich
eol: fix update - don't use and apply removed .hgeol patterns...
r43476 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
$ touch .hgeol *
$ hg st --debug
eol: detected change in .hgeol
Mads Kiilerich
eol: update isbinary filter to work without compat wrapper
r43474 filtering .hgeol through isbinary
Mads Kiilerich
localrepo: debug log of filter name when filtering through a function
r43472 filtering a.txt through tolf
Mads Kiilerich
eol: test-eol-update.t coverage around update --clean using filters ... badly...
r43471
$ cd ..
Matt Mackall
tests: unify test-eol-update
r12424 $ rm -r repo