mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
df8173b17b
Summary: This adds the ability to specify a config file to be used during the command. This is useful during clones for letting the clone command use the given repositories system specified repo-specific hgrc file. Reviewed By: quark-zju Differential Revision: D7311576 fbshipit-source-id: a97d8ebada2e0bea27c75a7650df8ede00dc10c6
97 lines
2.9 KiB
Python
97 lines
2.9 KiB
Python
import test_hgsubversion_util
|
|
|
|
import os
|
|
|
|
from mercurial import commands
|
|
from mercurial import dispatch
|
|
from mercurial import hg
|
|
|
|
def _dispatch(ui, cmd):
|
|
assert '--quiet' in cmd
|
|
try:
|
|
req = dispatch.request(cmd, ui=ui)
|
|
req.earlyoptions = {'config': [], 'configfile': [], 'cwd': '',
|
|
'debugger': None, '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['.']))
|
|
|
|
@test_hgsubversion_util.requiresoption('branch')
|
|
def test_branch(self):
|
|
''' Test 'clone --branch' '''
|
|
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.branch(ui, repo, label="B1")
|
|
commands.commit(ui, repo, message="C1")
|
|
f.write('C2')
|
|
f.flush()
|
|
commands.branch(ui, repo, label="default")
|
|
commands.commit(ui, repo, message="C2")
|
|
f.write('C3')
|
|
f.flush()
|
|
commands.branch(ui, repo, label="B2")
|
|
commands.commit(ui, repo, message="C3")
|
|
|
|
self.assertEqual(test_hgsubversion_util.repolen(repo), 3)
|
|
|
|
branch = 'B1'
|
|
_dispatch(ui, [
|
|
'clone', '--quiet',
|
|
self.wc_path, self.wc_path + '2',
|
|
'--branch', branch])
|
|
|
|
repo2 = hg.repository(ui, self.wc_path + '2')
|
|
|
|
self.assertEqual(repo[branch].hex(), repo2['.'].hex())
|
|
|
|
if __name__ == '__main__':
|
|
import silenttestrunner
|
|
silenttestrunner.main(__name__)
|
|
|