##// END OF EJS Templates
hg: acquire wlock while updating the working directory via updatetotally...
hg: acquire wlock while updating the working directory via updatetotally updatetotally() might be invoked outside wlock scope (e.g. invocation via postincoming() at "hg unbundle" or "hg pull"). In such case, acquisition of wlock is needed for consistent view, because parallel "hg update" and/or "hg bookmarks" might change working directory status while executing updatetotally(). Strictly speaking, truly consistent updating should acquire also store lock, because active bookmark might be moved to another one outside wlock scope (e.g. pulling from other repository causes updating current active one). Acquisition of wlock in this patch ensures consistency in as same level as past "hg update".

File last commit:

r22947:c63a09b6 default
r28503:138ec883 default
Show More
test-import-eol.t
146 lines | 2.7 KiB | text/troff | Tads3Lexer
/ tests / test-import-eol.t
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ cat > makepatch.py <<EOF
> f = file('eol.diff', 'wb')
> w = f.write
> w('test message\n')
> w('diff --git a/a b/a\n')
> w('--- a/a\n')
> w('+++ b/a\n')
> w('@@ -1,5 +1,5 @@\n')
> w(' a\n')
> w('-bbb\r\n')
> w('+yyyy\r\n')
> w(' cc\r\n')
> w(' \n')
> w(' d\n')
> w('-e\n')
> w('\ No newline at end of file\n')
> w('+z\r\n')
> w('\ No newline at end of file\r\n')
> EOF
$ hg init repo
$ cd repo
$ echo '\.diff' > .hgignore
Test different --eol values
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg ci -Am adda
adding .hgignore
adding a
$ python ../makepatch.py
invalid eol
$ hg --config patch.eol='LFCR' import eol.diff
applying eol.diff
Martin Geisler
Merge with stable
r12070 abort: unsupported line endings type: LFCR
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg revert -a
force LF
$ hg --traceback --config patch.eol='LF' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a
yyyy
cc
d
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
force CRLF
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='CRLF' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on LF file
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='auto' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a
yyyy
cc
d
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on CRLF file
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg commit -m 'switch EOLs in a'
$ hg --traceback --config patch.eol='auto' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on new file or source without any EOL
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("noeol", "wb").write("noeol")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg add noeol
$ hg commit -m 'add noeol'
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")'
$ $PYTHON -c 'file("neweol", "wb").write("neweol\nneweol\r\n")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg add neweol
$ hg diff --git > noeol.diff
$ hg revert --no-backup noeol neweol
$ rm neweol
$ hg --traceback --config patch.eol='auto' import -m noeol noeol.diff
applying noeol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat noeol
noeol\r (esc)
noeol
$ cat neweol
neweol
neweol\r (esc)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
Test --eol and binary patches
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("b", "wb").write("a\x00\nb\r\nd")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg ci -Am addb
adding b
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("b", "wb").write("a\x00\nc\r\nd")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg diff --git > bin.diff
$ hg revert --no-backup b
binary patch with --eol
$ hg import --config patch.eol='CRLF' -m changeb bin.diff
applying bin.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat b
a\x00 (esc)
c\r (esc)
d (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
$ cd ..