Skip to content

Commit 76e1d69

Browse files
committed
refactor(sync[hg]): Move to cmd
1 parent 9d8c9a5 commit 76e1d69

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

src/libvcs/sync/hg.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import pathlib
1313
from typing import Any
1414

15+
from libvcs.cmd.hg import Hg
16+
1517
from .base import BaseSync
1618

1719
logger = logging.getLogger(__name__)
@@ -22,21 +24,26 @@ class HgSync(BaseSync):
2224
schemes = ("hg", "hg+http", "hg+https", "hg+file")
2325

2426
def obtain(self, *args: Any, **kwargs: Any) -> None:
25-
self.ensure_dir()
26-
27-
# Double hyphens between [OPTION]... -- SOURCE [DEST] prevent command injections
28-
# via aliases
29-
self.run(["clone", "--noupdate", "-q", "--", self.url, str(self.dir)])
30-
self.run(["update", "-q"])
27+
cmd = Hg(dir=self.dir)
28+
cmd.clone(
29+
no_update=True,
30+
quiet=True,
31+
url=self.url,
32+
)
33+
cmd.update(
34+
quiet=True,
35+
check_returncode=True,
36+
)
3137

3238
def get_revision(self) -> str:
3339
return self.run(["parents", "--template={rev}"])
3440

3541
def update_repo(self, *args: Any, **kwargs: Any) -> None:
36-
self.ensure_dir()
42+
cmd = Hg(dir=self.dir)
43+
3744
if not pathlib.Path(self.dir / ".hg").exists():
3845
self.obtain()
3946
self.update_repo()
4047
else:
41-
self.run(["update"])
42-
self.run(["pull", "-u"])
48+
cmd.update()
49+
cmd.pull(update=True)

0 commit comments

Comments
 (0)