mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
ee1fcc3d2d
Summary: The current Python parsing library fancyopts does an early parse for global flags, as well as slightly different logic for parsing out flags. Switching this fancyopts call should allow fancyopts to be completely replaced by the native code path, and start using Rust parsing for hg. This enforces command line arguments to be utf8. At Facebook, our `hg` wrapper already crashes if that is not the case. So it shouldn't cause new issues. Reviewed By: quark-zju Differential Revision: D15837079 fbshipit-source-id: 95634ebc814f8865960181f23282e5283068057c
77 lines
1.9 KiB
Python
77 lines
1.9 KiB
Python
# @nolint
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import os
|
|
|
|
import test_hgsubversion_util
|
|
from edenscm.mercurial import commands, dispatch, hg
|
|
|
|
|
|
def _dispatch(ui, cmd):
|
|
assert "--quiet" in cmd
|
|
try:
|
|
req = dispatch.request(cmd, ui=ui)
|
|
req.earlyoptions = {
|
|
"config": [],
|
|
"configfile": [],
|
|
"cwd": "",
|
|
"debugger": False,
|
|
"profile": False,
|
|
"repository": "",
|
|
}
|
|
dispatch._dispatch(req)
|
|
except AttributeError:
|
|
dispatch._dispatch(ui, cmd)
|
|
|
|
|
|
class TestMercurialCore(test_hgsubversion_util.TestBase):
|
|
"""
|
|
Test that the core Mercurial operations aren't broken by hgsubversion.
|
|
"""
|
|
|
|
@test_hgsubversion_util.requiresoption("updaterev")
|
|
def test_update(self):
|
|
""" Test 'clone --updaterev' """
|
|
ui = self.ui()
|
|
_dispatch(ui, ["init", "--quiet", self.wc_path])
|
|
repo = self.repo
|
|
repo.ui.setconfig("ui", "username", "anonymous")
|
|
|
|
fpath = os.path.join(self.wc_path, "it")
|
|
f = file(fpath, "w")
|
|
f.write("C1")
|
|
f.flush()
|
|
commands.add(ui, repo)
|
|
commands.commit(ui, repo, message="C1")
|
|
f.write("C2")
|
|
f.flush()
|
|
commands.commit(ui, repo, message="C2")
|
|
f.write("C3")
|
|
f.flush()
|
|
commands.commit(ui, repo, message="C3")
|
|
|
|
self.assertEqual(test_hgsubversion_util.repolen(repo), 3)
|
|
|
|
updaterev = 1
|
|
_dispatch(
|
|
ui,
|
|
[
|
|
"clone",
|
|
"--quiet",
|
|
self.wc_path,
|
|
self.wc_path + "2",
|
|
"--updaterev=%s" % updaterev,
|
|
],
|
|
)
|
|
|
|
repo2 = hg.repository(ui, self.wc_path + "2")
|
|
|
|
self.assertEqual(str(repo[updaterev]), str(repo2["."]))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import silenttestrunner
|
|
|
|
silenttestrunner.main(__name__)
|