##// END OF EJS Templates
merge: don't report progress for dr/rd actions...
merge: don't report progress for dr/rd actions It is easier to reason about certain algorithms in terms of a file->action mapping than the current action->list-of-files. Bid merge is already written this way (but with a list of actions per file), and largefiles' overridecalculateupdates() will also benefit. However, that requires us to have at most one action per file. That requirement is currently violated by 'dr' (divergent rename) and 'rd' (rename and delete) actions, which can exist for the same file as some other action. These actions are only used for displaying warnings to the user; they don't change anything in the working copy or the dirstate. In this way, they are similar to the 'k' (keep) action. However, they are even less action-like than 'k' is: 'k' at least describes what to do with the file ("do nothing"), while 'dr' and 'rd' or only annotations for files for which there may exist other, "real" actions. As a first step towards separating these acitons out, stop including them in the progress output, just like we already exclude the 'k' action.

File last commit:

r22947:c63a09b6 default
r23524:a1a7c94d 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 ..