mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 09:48:05 +03:00
9dc21f8d0b
Summary: D13853115 adds `edenscm/` to `sys.path` and code still uses `import mercurial`. That has nasty problems if both `import mercurial` and `import edenscm.mercurial` are used, because Python would think `mercurial.foo` and `edenscm.mercurial.foo` are different modules so code like `try: ... except mercurial.error.Foo: ...`, or `isinstance(x, mercurial.foo.Bar)` would fail to handle the `edenscm.mercurial` version. There are also some module-level states (ex. `extensions._extensions`) that would cause trouble if they have multiple versions in a single process. Change imports to use the `edenscm` so ideally the `mercurial` is no longer imported at all. Add checks in extensions.py to catch unexpected extensions importing modules from the old (wrong) locations when running tests. Reviewed By: phillco Differential Revision: D13868981 fbshipit-source-id: f4e2513766957fd81d85407994f7521a08e4de48
95 lines
2.0 KiB
Perl
95 lines
2.0 KiB
Perl
$ hg init test
|
|
$ cd test
|
|
$ echo foo>foo
|
|
$ hg addremove
|
|
adding foo
|
|
$ hg commit -m "1"
|
|
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
1 files, 1 changesets, 1 total revisions
|
|
|
|
$ hg clone . ../branch
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd ../branch
|
|
$ hg co
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo bar>>foo
|
|
$ hg commit -m "2"
|
|
|
|
$ cd ../test
|
|
|
|
$ hg pull ../branch
|
|
pulling from ../branch
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
new changesets 30aff43faee1
|
|
(run 'hg update' to get a working copy)
|
|
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
1 files, 2 changesets, 2 total revisions
|
|
|
|
$ hg co
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ cat foo
|
|
foo
|
|
bar
|
|
|
|
$ hg manifest --debug
|
|
6f4310b00b9a147241b071a60c28a650827fb03d 644 foo
|
|
|
|
update to rev 0 with a date
|
|
|
|
$ hg upd -d foo 0
|
|
abort: you can't specify a revision and a date
|
|
[255]
|
|
|
|
$ cd ..
|
|
|
|
update with worker processes
|
|
|
|
#if no-windows
|
|
|
|
$ cat <<EOF > forceworker.py
|
|
> from edenscm.mercurial import extensions, worker
|
|
> def nocost(orig, ui, costperop, nops):
|
|
> return worker._numworkers(ui) > 1
|
|
> def uisetup(ui):
|
|
> extensions.wrapfunction(worker, 'worthwhile', nocost)
|
|
> EOF
|
|
|
|
$ hg init worker
|
|
$ cd worker
|
|
$ cat <<EOF >> .hg/hgrc
|
|
> [extensions]
|
|
> forceworker = $TESTTMP/forceworker.py
|
|
> [worker]
|
|
> numcpus = 4
|
|
> EOF
|
|
$ for i in `$PYTHON $TESTDIR/seq.py 1 100`; do
|
|
> echo $i > $i
|
|
> done
|
|
$ hg ci -qAm 'add 100 files'
|
|
|
|
$ hg update null
|
|
0 files updated, 0 files merged, 100 files removed, 0 files unresolved
|
|
$ hg update -v | grep 100
|
|
getting 100
|
|
100 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ cd ..
|
|
|
|
#endif
|