Mercurial > hg
view tests/test-permissions.t @ 51516:e0f92bd98c24 stable
phases: avoid a potentially costly dictionary interation in some case
If we retract for the draft phase, there is not non-public item to be retracted
and we can skip this part. This part is was apparently super costly thanks to
Python.
On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets
bundle gives give use the following timing.
e57d4b868a3e: 4.6 seconds
ac1c75188440: 102.5 seconds
this-changeset: 30.0 seconds
So we recovered about ⅔ of the regression, the next changeset will give us the
rest back.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 25 Mar 2024 01:50:31 +0100 |
parents | adecb1ab4a0d |
children |
line wrap: on
line source
#require unix-permissions no-root reporevlogstore #testcases dirstate-v1 dirstate-v2 #if dirstate-v2 $ cat >> $HGRCPATH << EOF > [format] > use-dirstate-v2=1 > [storage] > dirstate-v2.slow-path=allow > EOF #endif $ hg init t $ cd t $ echo foo > a $ hg add a $ hg commit -m "1" $ hg verify -q $ chmod -r .hg/store/data/a.i $ hg verify -q abort: $EACCES$: '$TESTTMP/t/.hg/store/data/a.i' [255] $ chmod +r .hg/store/data/a.i $ hg verify -q $ chmod -w .hg/store/data/a.i $ echo barber > a $ hg commit -m "2" trouble committing a! abort: $EACCES$: '$TESTTMP/t/.hg/store/data/a.i' [255] $ chmod -w . $ hg diff --nodates diff -r 2a18120dc1c9 a --- a/a +++ b/a @@ -1,1 +1,1 @@ -foo +barber $ chmod +w . $ chmod +w .hg/store/data/a.i $ mkdir dir $ touch dir/a $ hg status M a ? dir/a $ chmod -rx dir #if no-fsmonitor (fsmonitor makes "hg status" avoid accessing to "dir") $ hg status dir: $EACCES$* (glob) M a #endif Reenable perm to allow deletion: $ chmod +rx dir $ cd ..