diff --git a/benchmarks/basic_commands.py b/benchmarks/basic_commands.py
index 949ad633c026530dd1a5e1e9b811417124b99032_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ==..28ac6287f3bb44230e8ac1be66d9abfe298917ec_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ== 100644
--- a/benchmarks/basic_commands.py
+++ b/benchmarks/basic_commands.py
@@ -227,9 +227,9 @@
     def run(self, local_repo, command, remote_repo, expected_return_code=None):
         if not isinstance(command, (list, tuple)):
             command = [command]
-        cmd = [self.hgpath, '--cwd', local_repo] + command
+        cmd = ['--cwd', local_repo] + command
         cmd.extend(self._remote_path_cmd(remote_repo))
         if self.rev:
             cmd.extend(['-r', self.rev])
         if expected_return_code is None:
             expected_return_code = 1 if self.strip == "same" else 0
@@ -231,9 +231,9 @@
         cmd.extend(self._remote_path_cmd(remote_repo))
         if self.rev:
             cmd.extend(['-r', self.rev])
         if expected_return_code is None:
             expected_return_code = 1 if self.strip == "same" else 0
-        self._single_execute(cmd, expected_return_code=expected_return_code)
+        self.hg(*cmd, expected_return_code=expected_return_code)
 
     def setup(self, repo_name, repo_type, strip, revset):
         super(BaseExchangeTimeSuite, self).setup(repo_name)
@@ -243,9 +243,7 @@
         self.clone_path = os.path.join(REPOS_DIR, '.cache', 'partial-{}-{}'.format(
             repo_name, base64.b64encode(strip)))
         if revset is not None:
-            self.rev = subprocess.check_output([
-                self.hgpath, '--cwd', self.repo_path, 'identify', '-i', "-r", revset
-            ], env=self.environ).strip()
+            self.rev = self.hg('identify', '-i', '-r', revset).strip()
         else:
             self.rev = None
         self.strip = strip
@@ -299,7 +297,7 @@
             os.path.basename(self.clone_path)))
         # XXX: This should be deleted at the end but teardown, like setup, is
         # called for each repeat...
-        self._single_execute(['rsync', '-aH', '--delete', '{}/'.format(self.clone_path),
-                              self.tmp_clone_path])
+        self.check_output('rsync', '-aH', '--delete', '{}/'.format(self.clone_path),
+                          self.tmp_clone_path)
         # Wait for everything to be written on disk to avoid Disk IO wait to
         # impact performances metrics
@@ -304,6 +302,6 @@
         # Wait for everything to be written on disk to avoid Disk IO wait to
         # impact performances metrics
-        self._single_execute(['sync'])
+        self.check_output('sync')
 
     def time_push(self, *args, **kwargs):
         self.run(self.repo_path, ['push', '-f'], self.tmp_clone_path)
@@ -336,8 +334,8 @@
         shutil.rmtree(self.tmp_clone_path, ignore_errors=True)
 
     def time_clone(self, *args, **kwargs):
-        cmd = [self.hgpath, 'clone', '--pull']
+        cmd = ['clone', '--pull']
         cmd.extend(self._remote_path_cmd(self.clone_path))
         cmd.append(self.tmp_clone_path)
         if self.rev:
             cmd.extend(['-r', self.rev])
@@ -340,5 +338,5 @@
         cmd.extend(self._remote_path_cmd(self.clone_path))
         cmd.append(self.tmp_clone_path)
         if self.rev:
             cmd.extend(['-r', self.rev])
-        self._single_execute(cmd)
+        self.hg(*cmd)