Skip to content

Commit 4145168

Browse files
authored
Merge pull request #12119 from sbidoul/hg-explicit-rev-sbi
Pass revisions options explicitly to mercurial commands
2 parents 4ac0d3d + 45468f0 commit 4145168

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

news/12119.bugfix.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Pass the ``-r`` flag to mercurial to be explicit that a revision is passed and protect
2+
against ``hg`` options injection as part of VCS URLs. Users that do not have control on
3+
VCS URLs passed to pip are advised to upgrade.

src/pip/_internal/vcs/mercurial.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Mercurial(VersionControl):
3131

3232
@staticmethod
3333
def get_base_rev_args(rev: str) -> List[str]:
34-
return [rev]
34+
return ["-r", rev]
3535

3636
def fetch_new(
3737
self, dest: str, url: HiddenText, rev_options: RevOptions, verbosity: int

tests/unit/test_vcs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def test_rev_options_repr() -> None:
6666
# First check VCS-specific RevOptions behavior.
6767
(Bazaar, [], ["-r", "123"], {}),
6868
(Git, ["HEAD"], ["123"], {}),
69-
(Mercurial, [], ["123"], {}),
69+
(Mercurial, [], ["-r", "123"], {}),
7070
(Subversion, [], ["-r", "123"], {}),
7171
# Test extra_args. For this, test using a single VersionControl class.
7272
(

0 commit comments

Comments
 (0)