mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +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
58 lines
912 B
Perl
58 lines
912 B
Perl
$ . "$TESTDIR/hgsql/library.sh"
|
|
|
|
|
|
Populate the db with an initial commit.
|
|
|
|
$ initclient client
|
|
$ cd client
|
|
$ echo p > p
|
|
$ hg commit -qAm p
|
|
$ echo q > q
|
|
$ hg commit -qAm q
|
|
$ hg -q up 0
|
|
$ echo r > r
|
|
$ hg commit -qAm r
|
|
$ hg bookmark foo
|
|
$ cd ..
|
|
|
|
|
|
Create master without sql configuration.
|
|
|
|
$ hg clone -q client master
|
|
|
|
|
|
Configure master as a server backed by sql.
|
|
|
|
$ configureserver master masterrepo
|
|
$ cd master
|
|
$ hg log -GT '{files}' 2>&1 | grep "CorruptionException:"
|
|
edenscm.hgext.hgsql.CorruptionException: heads don't match after sync
|
|
|
|
|
|
Fix the server using sqlrefill.
|
|
|
|
$ hg sqlrefill --i-know-what-i-am-doing 0
|
|
$ hg log -GT '{files}'
|
|
@ r
|
|
|
|
|
| o q
|
|
|/
|
|
o p
|
|
|
|
|
|
|
|
Make another commit to the server to verify that repository state is sane after
|
|
the refill.
|
|
|
|
$ echo s > s
|
|
$ hg commit -qAm s
|
|
$ hg log -GT '{files}'
|
|
@ s
|
|
|
|
|
o r
|
|
|
|
|
| o q
|
|
|/
|
|
o p
|
|
|