Mercurial > hg
view tests/test-editor-filename.t @ 47349:7138c863d0a1
dirstate-v2: Skip readdir in status based on directory mtime
When calling `read_dir` during `status` and the directory is found to be
eligible for caching (see code comments), write the directory’s mtime to the
dirstate. The presence of a directory mtime in the dirstate is meaningful
and indicates eligibility.
When an eligible directory mtime is found in the dirstate and `stat()` shows
that the mtime has not changed, `status` can skip calling `read_dir` again
and instead rely on the names of child nodes in the dirstate tree.
The `tempfile` crate is used to create a temporary file in order to use its
modification time as "current time" with the same truncation as other files
and directories would have in their own modification time.
Differential Revision: https://phab.mercurial-scm.org/D10826
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Fri, 28 May 2021 11:48:59 +0200 |
parents | ac362d5a7893 |
children | 55c6ebd11cb9 |
line wrap: on
line source
Test temp file used with an editor has the expected suffix. $ hg init Create an editor that writes its arguments to stdout and set it to $HGEDITOR. $ cat > editor.sh << EOF > echo "\$@" > exit 1 > EOF $ hg add editor.sh $ HGEDITOR="sh $TESTTMP/editor.sh" $ export HGEDITOR Verify that the path for a commit editor has the expected suffix. $ hg commit *.commit.hg.txt (glob) abort: edit failed: sh exited with status 1 [250] Verify that the path for a histedit editor has the expected suffix. $ cat >> $HGRCPATH <<EOF > [extensions] > rebase= > histedit= > EOF $ hg commit --message 'At least one commit for histedit.' $ hg histedit *.histedit.hg.txt (glob) abort: edit failed: sh exited with status 1 [250] Verify that when performing an action that has the side-effect of creating an editor for a diff, the file ends in .diff. $ echo 1 > one $ echo 2 > two $ hg add adding one adding two $ hg commit --interactive --config ui.interactive=true --config ui.interface=text << EOF > y > e > q > EOF diff --git a/one b/one new file mode 100644 examine changes to 'one'? (enter ? for help) [Ynesfdaq?] y @@ -0,0 +1,1 @@ +1 record change 1/2 to 'one'? (enter ? for help) [Ynesfdaq?] e *.diff (glob) editor exited with exit code 1 record change 1/2 to 'one'? (enter ? for help) [Ynesfdaq?] q abort: user quit [250]