mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
treedirstate: actually enable it in tests
Summary: Previously it is not actually used. `test-hgext-repogenerator.t` changed because treedirstate uses random number to generate file names. `fakedirstatewritetime.py` was updated to be treedirstate-aware. This makes test-revert.t test-merge-tools.t test-merge1.t pass. Reviewed By: singhsrb Differential Revision: D7844960 fbshipit-source-id: 33a1d0d4a8e22ea5e6bb6454956884571fcf6bab
This commit is contained in:
parent
b055d6aace
commit
77638ffcc0
@ -69,7 +69,7 @@ treefileprefix = 'dirstate.tree.'
|
||||
|
||||
configtable = {}
|
||||
configitem = registrar.configitem(configtable)
|
||||
configitem('treedirstate', 'useinnewrepos', default=False)
|
||||
configitem('treedirstate', 'useinnewrepos', default=True)
|
||||
configitem('treedirstate', 'upgradeonpull', default=False)
|
||||
configitem('treedirstate', 'downgradeonpull', default=False)
|
||||
configitem('treedirstate', 'cleanuppercent', default=1)
|
||||
|
@ -15,6 +15,9 @@ from mercurial import (
|
||||
registrar,
|
||||
util,
|
||||
)
|
||||
from hgext import (
|
||||
treedirstate,
|
||||
)
|
||||
|
||||
configtable = {}
|
||||
configitem = registrar.configitem(configtable)
|
||||
@ -71,8 +74,17 @@ def markcommitted(orig, committablectx, node):
|
||||
ui = committablectx.repo().ui
|
||||
return fakewrite(ui, lambda : orig(committablectx, node))
|
||||
|
||||
def treedirstatewrite(orig, self, st, now):
|
||||
ui = self._ui
|
||||
fakenow = ui.config('fakedirstatewritetime', 'fakenow')
|
||||
if fakenow:
|
||||
now = util.parsedate(fakenow, ['%Y%m%d%H%M'])[0]
|
||||
return orig(self, st, now)
|
||||
|
||||
def extsetup(ui):
|
||||
extensions.wrapfunction(context.workingctx, '_poststatusfixup',
|
||||
_poststatusfixup)
|
||||
extensions.wrapfunction(context.committablectx, 'markcommitted',
|
||||
markcommitted)
|
||||
extensions.wrapfunction(treedirstate.treedirstatemap, 'write',
|
||||
treedirstatewrite)
|
||||
|
@ -8,6 +8,7 @@ Set vars:
|
||||
Prepare repo:
|
||||
|
||||
$ hg init
|
||||
$ hg debugtreedirstate off
|
||||
|
||||
$ echo this is file a > a
|
||||
$ hg add a
|
||||
|
@ -15,4 +15,5 @@ No dirstate backups are left behind
|
||||
|
||||
$ ls .hg/dirstate* | sort
|
||||
.hg/dirstate
|
||||
.hg/dirstate.tree.* (glob)
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
treemanifest
|
||||
$ find .hg/store/meta | sort
|
||||
.hg/store/meta
|
||||
@ -71,6 +72,7 @@
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
treemanifest
|
||||
$ ls .hg/store/data
|
||||
ca31988f085bfb945cb8115b78fabdee40f741aa
|
||||
@ -112,4 +114,5 @@
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
treemanifest
|
||||
|
@ -28,6 +28,7 @@
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ hg update
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
@ -61,6 +62,7 @@
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
$ ls .hg/store/data
|
||||
4a0a19218e082a343a1b17e5333409af9d98f0f5
|
||||
|
||||
@ -109,3 +111,4 @@ check its contents separately.
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
@ -31,6 +31,7 @@ Shallow clone from full
|
||||
remotefilelog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ hg update
|
||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
|
@ -93,6 +93,7 @@ Non store repo:
|
||||
.hg/data/tst.d.hg/foo.i
|
||||
.hg/dirstate
|
||||
.hg/fsmonitor.state (fsmonitor !)
|
||||
.hg/dirstate.tree.* (glob)
|
||||
.hg/last-message.txt
|
||||
.hg/phaseroots
|
||||
.hg/requires
|
||||
@ -123,6 +124,7 @@ Non fncache repo:
|
||||
.hg/cache/rbc-revs-v1
|
||||
.hg/dirstate
|
||||
.hg/fsmonitor.state (fsmonitor !)
|
||||
.hg/dirstate.tree.* (glob)
|
||||
.hg/last-message.txt
|
||||
.hg/requires
|
||||
.hg/store
|
||||
|
@ -246,6 +246,7 @@ r4 has hardlinks in the working dir (not just inside .hg):
|
||||
2 r4/.hg/cache/rbc-revs-v1
|
||||
2 r4/.hg/dirstate
|
||||
2 r4/.hg/fsmonitor.state (fsmonitor !)
|
||||
2 r4/.hg/dirstate.tree.* (glob)
|
||||
2 r4/.hg/hgrc
|
||||
2 r4/.hg/last-message.txt
|
||||
2 r4/.hg/requires
|
||||
@ -296,6 +297,7 @@ Update back to revision 12 in r4 should break hardlink of file f1 and f3:
|
||||
2 r4/.hg/cache/rbc-revs-v1
|
||||
1 r4/.hg/dirstate
|
||||
1 r4/.hg/fsmonitor.state (fsmonitor !)
|
||||
2 r4/.hg/dirstate.tree.* (glob)
|
||||
2 r4/.hg/hgrc
|
||||
2 r4/.hg/last-message.txt
|
||||
2 r4/.hg/requires
|
||||
|
@ -6,18 +6,18 @@
|
||||
starting commit is: -1 (goal is 2)
|
||||
created *, * sec elapsed (* commits/sec, * per hour, * per day) (glob)
|
||||
$ hg log -G -r ::tip
|
||||
o changeset: 2:26c418a67612
|
||||
o changeset: 2:2f0eabc6bc3d
|
||||
| tag: tip
|
||||
| user: test
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: memory commit
|
||||
|
|
||||
o changeset: 1:331925392347
|
||||
o changeset: 1:272777df88de
|
||||
| user: test
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: memory commit
|
||||
|
|
||||
o changeset: 0:af3f7799efa3
|
||||
o changeset: 0:8023a25712fb
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: memory commit
|
||||
@ -25,18 +25,18 @@
|
||||
$ hg up -C tip
|
||||
13 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ hg log -r tip -T'{files}'
|
||||
d/d/c f/n/p i/t/b n/y/p u/d/a y/n/h (no-eol)
|
||||
f/t/o h/w/l j/h/p j/o/e x/l/j x/z/b (no-eol)
|
||||
$ ls */*/*
|
||||
d/d/c
|
||||
f/n/p
|
||||
i/t/b
|
||||
j/i/e
|
||||
j/q/a
|
||||
k/s/d
|
||||
n/y/p
|
||||
t/a/e
|
||||
u/d/a
|
||||
u/r/g
|
||||
x/m/c
|
||||
x/n/c
|
||||
y/n/h
|
||||
f/t/o
|
||||
h/u/h
|
||||
h/w/l
|
||||
j/h/p
|
||||
j/o/e
|
||||
l/c/h
|
||||
r/f/c
|
||||
u/y/a
|
||||
v/c/c
|
||||
w/k/a
|
||||
x/l/j
|
||||
x/z/b
|
||||
y/d/e
|
||||
|
@ -73,6 +73,7 @@ new directories are setgid
|
||||
00660 ./.hg/cache/rbc-revs-v1
|
||||
00660 ./.hg/dirstate
|
||||
00660 ./.hg/fsmonitor.state (fsmonitor !)
|
||||
00600 ./.hg/dirstate.tree.* (glob)
|
||||
00660 ./.hg/last-message.txt
|
||||
00600 ./.hg/requires
|
||||
00770 ./.hg/store/
|
||||
@ -120,6 +121,7 @@ group can still write everything
|
||||
00770 ../push/.hg/cache/
|
||||
00660 ../push/.hg/cache/branch2-base
|
||||
00660 ../push/.hg/dirstate
|
||||
00600 ../push/.hg/dirstate.tree.* (glob)
|
||||
00660 ../push/.hg/requires
|
||||
00770 ../push/.hg/store/
|
||||
00660 ../push/.hg/store/00changelog.i
|
||||
|
@ -30,6 +30,7 @@ creating 'local'
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
$ echo this > local/foo
|
||||
$ hg ci --cwd local -A -m "init"
|
||||
adding foo
|
||||
@ -65,6 +66,7 @@ creating repo with format.usestore=false
|
||||
$ checknewrepo old
|
||||
generaldelta
|
||||
revlogv1
|
||||
treedirstate
|
||||
|
||||
creating repo with format.usefncache=false
|
||||
|
||||
@ -75,6 +77,7 @@ creating repo with format.usefncache=false
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
creating repo with format.dotencode=false
|
||||
|
||||
@ -86,6 +89,7 @@ creating repo with format.dotencode=false
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
creating repo with format.dotencode=false
|
||||
|
||||
@ -97,6 +101,7 @@ creating repo with format.dotencode=false
|
||||
fncache
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
test failure
|
||||
|
||||
@ -210,6 +215,7 @@ creating 'local/sub/repo'
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
prepare test of init of url configured from paths
|
||||
|
||||
@ -228,6 +234,7 @@ init should (for consistency with clone) expand the url
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
verify that clone also expand urls
|
||||
|
||||
@ -242,6 +249,7 @@ verify that clone also expand urls
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
clone bookmarks
|
||||
|
||||
|
@ -29,6 +29,7 @@ regular clone of an existing zlib repo should still use zlib
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
pulled clone of zlib should use lz4
|
||||
|
||||
@ -40,6 +41,7 @@ pulled clone of zlib should use lz4
|
||||
lz4revlog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
disable lz4, then clone
|
||||
|
||||
@ -58,6 +60,7 @@ disable lz4, then clone
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
attempt to disable lz4 should be ignored for hardlinked clone
|
||||
|
||||
@ -71,6 +74,7 @@ attempt to disable lz4 should be ignored for hardlinked clone
|
||||
lz4revlog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
a new repo should use lz4 by default
|
||||
|
||||
@ -98,6 +102,7 @@ a new repo should use lz4 by default
|
||||
lz4revlog
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
vanilla hg should bail in an lz4 repo
|
||||
|
||||
|
@ -8,6 +8,7 @@ A new repository uses zlib storage, which doesn't need a requirement
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ touch foo
|
||||
$ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text to trigger compression'
|
||||
@ -47,6 +48,7 @@ A requirement specifying an unknown compression engine results in bail
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ touch foo
|
||||
$ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text'
|
||||
@ -70,6 +72,7 @@ with that engine or a requirement
|
||||
generaldelta
|
||||
revlogv1
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ hg debugrevlog -c | grep 0x78
|
||||
0x78 (x) : 2 (100.00%)
|
||||
|
@ -23,6 +23,7 @@ Can create and open repo with revlog v2 requirement
|
||||
exp-revlogv2.0
|
||||
fncache
|
||||
store
|
||||
treedirstate
|
||||
|
||||
$ hg log
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
#require killdaemons
|
||||
|
||||
$ setconfig treedirstate.useinnewrepos=0
|
||||
$ hg clone http://localhost:$HGPORT/ copy
|
||||
abort: * (glob)
|
||||
[255]
|
||||
|
@ -3,6 +3,10 @@ Let commit recurse into subrepos by default to match pre-2.0 behavior:
|
||||
$ echo "[ui]" >> $HGRCPATH
|
||||
$ echo "commitsubrepos = Yes" >> $HGRCPATH
|
||||
|
||||
Treedirstate has issues with subrepos
|
||||
|
||||
$ setconfig treedirstate.useinnewrepos=0
|
||||
|
||||
$ hg init t
|
||||
$ cd t
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
$ cat >> $HGRCPATH << EOF
|
||||
> [extensions]
|
||||
> share =
|
||||
> [treedirstate]
|
||||
> useinnewrepos = False
|
||||
> EOF
|
||||
|
||||
store and revlogv1 are required in source
|
||||
|
Loading…
Reference in New Issue
Block a user