mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Update the arc-hg.py extension to work with mercurial 6.4
Summary: Mercurial 6.4 was recently released and showing up in package managers. With the update to 6.4 using `arc land` would result in an exception indicating that `expandpath` function does not exist. The `ui.expandpath` function was deprecated in 5.8 and now removed in 6.4. The functionality has been moved to `utils.urlutil.get_` functions (they are split between getting pull, push, and clone paths). This updates the script to try `utils.urlutil.get_clone_path` function if the `ui.expandpath` function is not present. Imported from: https://secure.phabricator.com/rARC0fc22183e796fb8ac2e3a0a3f3f37aa964c6d7fa Test Plan: I updated my latest mercurial install to 6.4 and verified with `hg --version`. I created a diff in a mercurial repo and used `arc land` to successfully land the revision without any exceptions. Closes T15288 Reviewers: O1 Blessed Committers, valerio.bozzolan Reviewed By: O1 Blessed Committers, valerio.bozzolan Subscribers: speck, tobiaswiese, Matthew, Cigaryno Maniphest Tasks: T15288 Differential Revision: https://we.phorge.it/D25143
This commit is contained in:
parent
c14785c379
commit
5cdafa4002
1 changed files with 15 additions and 2 deletions
|
@ -273,8 +273,21 @@ def remotemarkers(ui, repo, source, opts):
|
||||||
|
|
||||||
markers = []
|
markers = []
|
||||||
|
|
||||||
source, branches = parseurl(ui.expandpath(source))
|
# Determine the remote to use based on the default path configured in
|
||||||
remote = hg.peer(repo, opts, source)
|
# [ui.paths] for this local repository.
|
||||||
|
#
|
||||||
|
# The expandpath function in the ui module was deprecated in 5.8 and removed
|
||||||
|
# in 6.4. NOTE: There is also an expandpath function in mercurial.util (not
|
||||||
|
# plural mercurial.utils...) however that function behaves differently from
|
||||||
|
# the old ui.expandpath. Reviewing the source comments for the old
|
||||||
|
# ui.expandpath function points to using urilutils.get_ functions.
|
||||||
|
try:
|
||||||
|
remote_path, branches = parseurl(ui.expandpath(source))
|
||||||
|
except:
|
||||||
|
from mercurial import utils
|
||||||
|
origsource, remote_path, branch = utils.urlutil.get_clone_path(ui, source)
|
||||||
|
|
||||||
|
remote = hg.peer(repo, opts, remote_path)
|
||||||
|
|
||||||
with remote.commandexecutor() as e:
|
with remote.commandexecutor() as e:
|
||||||
branchmap = e.callcommand(b'branchmap', {}).result()
|
branchmap = e.callcommand(b'branchmap', {}).result()
|
||||||
|
|
Loading…
Reference in a new issue