mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +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
100 lines
1.8 KiB
Perl
100 lines
1.8 KiB
Perl
Create a repository:
|
|
|
|
$ hg config
|
|
devel.all-warnings=true
|
|
devel.default-date=0 0
|
|
extensions.fsmonitor= (fsmonitor !)
|
|
fsmonitor.detectrace=1 (fsmonitor !)
|
|
ui.slash=True
|
|
ui.interactive=False
|
|
ui.mergemarkers=detailed
|
|
ui.promptecho=True
|
|
web.address=localhost
|
|
web\.ipv6=(?:True|False) (re)
|
|
$ hg init t
|
|
$ cd t
|
|
|
|
Prepare a changeset:
|
|
|
|
$ echo a > a
|
|
$ hg add a
|
|
|
|
$ hg status
|
|
A a
|
|
|
|
Writes to stdio succeed and fail appropriately
|
|
|
|
#if devfull
|
|
$ hg status 2>/dev/full
|
|
A a
|
|
|
|
$ hg status >/dev/full
|
|
abort: No space left on device
|
|
[255]
|
|
#endif
|
|
|
|
#if devfull no-chg
|
|
$ hg status >/dev/full 2>&1
|
|
[1]
|
|
|
|
$ hg status ENOENT 2>/dev/full
|
|
[1]
|
|
#endif
|
|
|
|
#if devfull chg
|
|
$ hg status >/dev/full 2>&1
|
|
[255]
|
|
|
|
$ hg status ENOENT 2>/dev/full
|
|
[255]
|
|
#endif
|
|
|
|
$ hg commit -m test
|
|
|
|
This command is ancient:
|
|
|
|
$ hg history
|
|
changeset: 0:acb14030fe0a
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: test
|
|
|
|
|
|
Verify that updating to revision 0 via commands.update() works properly
|
|
|
|
$ cat <<EOF > update_to_rev0.py
|
|
> from edenscm.mercurial import ui, hg, commands
|
|
> myui = ui.ui.load()
|
|
> repo = hg.repository(myui, path='.')
|
|
> commands.update(myui, repo, rev=0)
|
|
> EOF
|
|
$ hg up null
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
$ $PYTHON ./update_to_rev0.py
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ hg identify -n
|
|
0
|
|
|
|
|
|
Poke around at hashes:
|
|
|
|
$ hg manifest --debug
|
|
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a
|
|
|
|
$ hg cat a
|
|
a
|
|
|
|
Verify should succeed:
|
|
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
1 files, 1 changesets, 1 total revisions
|
|
|
|
At the end...
|
|
|
|
$ cd ..
|