Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-command-template @ 2076:d007df6daf8e
Create an atomic opener that does not automatically rename on close
The revlog.checkinlinesize() uses an atomic opener to replace the
index file after converting it from inline to traditional .i and .d
files. If this operation is interrupted, the atomic file class can
overwrite a valid file with a partially written one.
This patch introduces an atomic opener that does not automatically
replace the destination file with the tempfile. This way
an interrupted checkinlinesize() call turns into a noop.
author | mason@suse.com |
---|---|
date | Tue, 04 Apr 2006 16:38:44 -0400 |
parents | d59fc0d4558f |
children | a6d0cd63068c |
line wrap: on
line source
#!/bin/sh hg init a cd a echo a > a hg add a echo line 1 > b echo line 2 >> b hg commit -l b -d '1000000 0' -u 'User Name <user@hostname>' hg add b echo other 1 > c echo other 2 >> c echo >> c echo other 3 >> c hg commit -l c -d '1100000 0' -u 'A. N. Other <other@place>' hg add c hg commit -m 'no person' -d '1200000 0' -u 'other@place' echo c >> c hg commit -m 'no user, no domain' -d '1300000 0' -u 'person' # make sure user/global hgrc does not affect tests echo '[ui]' > .hg/hgrc echo 'logtemplate =' >> .hg/hgrc echo 'style =' >> .hg/hgrc echo '# default style is like normal output' hg log > log.out hg log --style default > style.out diff log.out style.out hg log -v > log.out hg log -v --style default > style.out diff log.out style.out hg log --debug > log.out hg log --debug --style default > style.out diff log.out style.out echo '# compact style works' hg log --style compact hg log -v --style compact hg log --debug --style compact echo '# error if style not readable' touch q chmod 0 q hg log --style ./q echo '# error if no style' hg log --style notexist echo '# error if style missing key' echo 'q = q' > t hg log --style ./t echo '# error if include fails' echo 'changeset = q' >> t hg log --style ./t echo '# include works' rm -f q echo '{rev}' > q hg log --style ./t echo '# ui.style works' echo '[ui]' > .hg/hgrc echo 'style = t' >> .hg/hgrc hg log echo "# keys work" for key in author branches date desc file_adds file_dels files \ manifest node parents rev tags; do for mode in '' --verbose --debug; do hg log $mode --template "$key$mode: {$key}\n" done done echo '# filters work' hg log --template '{author|domain}\n' hg log --template '{author|person}\n' hg log --template '{author|user}\n' hg log --template '{date|age}\n' > /dev/null || exit 1 hg log --template '{date|date}\n' hg log --template '{date|isodate}\n' hg log --template '{date|rfc822date}\n' hg log --template '{desc|firstline}\n' hg log --template '{node|short}\n' echo '# error on syntax' echo 'x = "f' >> t hg log echo '# done'