##// END OF EJS Templates
tryimportone: use dirstateguard instead of beginparentchange/endparentchange...
tryimportone: use dirstateguard instead of beginparentchange/endparentchange To fix the issue that the recent (in memory) dirstate isn't visible to external process (e.g. "precommit" hook), a subsequent patch makes "localrepository.commit()" invoke "dirstate.write()" in it. This change will make "beginparentchange()" and "endparentchange()" on dirstate in "cmdutil.tryimportone()" meaningless, because: - "dirstate.write()" writes changed data into ".hg/dirstate", but - aborting between "beginparentchange()" and "endparentchange()" doesn't cause any restoring ".hg/dirstate" it just discards changes in memory. This patch uses "dirstateguard" instead of "beginparentchange()" and "endparentchange()" in "cmdutil.tryimportone()" to restore ".hg/dirstate" during a failure even if "dirstate.write()" is executed before a failure. This patch uses "lockmod.release(dsguard)" instead of "dsguard.release()", because processing may be aborted before assignment to "dsguard" , and the "if dsguard" examination for safety is redundant.

File last commit:

r23172:e955549c default
r24995:0579b0c2 default
Show More
test-eolfilename.t
78 lines | 1.5 KiB | text/troff | Tads3Lexer
/ tests / test-eolfilename.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require eol-in-paths
Matt Mackall
tests: unify test-eolfilename
r12425
Matt Mackall
tests: replace exit 80 with #require
r22046 http://mercurial.selenic.com/bts/issue352
Matt Mackall
tests: unify test-eolfilename
r12425
test issue352
$ hg init foo
$ cd foo
$ A=`printf 'he\rllo'`
$ echo foo > "$A"
$ hg add
Mads Kiilerich
run-tests: allow test output lines to be terminated with \r in addition to \n...
r17742 adding he\r (no-eol) (esc)
llo
Matt Mackall
tests: unify test-eolfilename
r12425 abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
[255]
$ hg ci -A -m m
Mads Kiilerich
run-tests: allow test output lines to be terminated with \r in addition to \n...
r17742 adding he\r (no-eol) (esc)
llo
Matt Mackall
tests: unify test-eolfilename
r12425 abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
[255]
$ rm "$A"
$ echo foo > "hell
> o"
$ hg add
adding hell
o
abort: '\n' and '\r' disallowed in filenames: 'hell\no'
[255]
$ hg ci -A -m m
adding hell
o
abort: '\n' and '\r' disallowed in filenames: 'hell\no'
[255]
$ echo foo > "$A"
$ hg debugwalk
Mads Kiilerich
run-tests: allow test output lines to be terminated with \r in addition to \n...
r17742 f he\r (no-eol) (esc)
llo he\r (no-eol) (esc)
llo
Matt Mackall
tests: unify test-eolfilename
r12425 f hell
o hell
o
Adrian Buehlmann
copy: do not copy file if name is disallowed anyway
r13945 $ echo bla > quickfox
$ hg add quickfox
$ hg ci -m 2
$ A=`printf 'quick\rfox'`
$ hg cp quickfox "$A"
abort: '\n' and '\r' disallowed in filenames: 'quick\rfox'
[255]
$ hg mv quickfox "$A"
abort: '\n' and '\r' disallowed in filenames: 'quick\rfox'
[255]
Matt Mackall
tests: unify test-eolfilename
r12425 http://mercurial.selenic.com/bts/issue2036
$ cd ..
test issue2039
$ hg init bar
$ cd bar
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> color =
> [color]
> mode = ansi
> EOF
Matt Mackall
tests: unify test-eolfilename
r12425 $ A=`printf 'foo\nbar'`
$ B=`printf 'foo\nbar.baz'`
$ touch "$A"
$ touch "$B"
$ hg status --color=always
Matt Mackall
status: use condwrite to avoid zero-width format string hack
r17910 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc)
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;35;1;4mbar\x1b[0m (esc)
Matt Mackall
status: use condwrite to avoid zero-width format string hack
r17910 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc)
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;35;1;4mbar.baz\x1b[0m (esc)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..