diff --git a/benchmarks/basic_commands.py b/benchmarks/basic_commands.py
index 38865651f48727e070f3087860cdf4bbbefee454_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ==..71963760ac6dee375e4f5ed6744756f7ec3474d8_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ== 100644
--- a/benchmarks/basic_commands.py
+++ b/benchmarks/basic_commands.py
@@ -404,5 +404,4 @@
 
 
 # class CloneTimeSuite(BaseExchangeMixin, BaseTestSuite):
-#     # skip other repos since they are too big
 #     param_names = BaseTestSuite.param_names + ['repo_type', 'revset']
@@ -408,4 +407,4 @@
 #     param_names = BaseTestSuite.param_names + ['repo_type', 'revset']
-#     params = [['mercurial-2017'], ['local', 'ssh', 'http'], [None, 'tip']]
+#     params = BaseTestSuite.params + [['local', 'ssh', 'http'], [None, 'tip']]
 
 #     timer = timeit.default_timer
@@ -410,7 +409,8 @@
 
 #     timer = timeit.default_timer
-#     sample_time = 10
-#     timeout = 300
+#     number = 1
+#     warmup_time = 0
+#     timeout = 2700
 
 #     def setup(self, *args, **kwargs):
 #         args = list(args)
@@ -418,5 +418,6 @@
 #         revset = args.pop(-1)
 #         repo_type = args.pop(-1)
 #         super(CloneTimeSuite, self).setup(*args, **kwargs)
+#         self._cleanup_paths = []
 #         self._setup_repo_type(repo_type)
 #         self._setup_revset(revset)
@@ -421,9 +422,3 @@
 #         self._setup_repo_type(repo_type)
 #         self._setup_revset(revset)
-#         tmpdir = os.path.join(REPOS_DIR, '.tmp')
-#         try:
-#             os.makedirs(tmpdir)
-#         except OSError as exc:
-#             if exc.errno != errno.EEXIST:
-#                 raise
 #         self.clone_path = os.path.join(REPOS_DIR, repo_name)
@@ -429,7 +424,16 @@
 #         self.clone_path = os.path.join(REPOS_DIR, repo_name)
-#         self.tmp_clone_path = os.path.join(tmpdir, 'clone-{}'.format(
-#             os.path.basename(self.clone_path)))
-#         shutil.rmtree(self.tmp_clone_path, ignore_errors=True)
+#         if repo_name in ('mercurial-2017', 'pypy-2017'):
+#             # small repositories
+#             # run 20 times or less than 5 minutes
+#             self.repeat = 20
+#             self.sample_time = (5 * 60) / (self.repeat * 1.3)
+#         elif repo_name in ('mozilla-central-2017', 'netbeans-2017'):
+#             # big repositories
+#             # run 3 times or less than 45 minutes
+#             self.repeat = 3
+#             self.sample_time = (45 * 60) / (self.repeat * 1.3)
+#         else:
+#             raise NotImplementedError('unconfigured timeout for repository %s' % repo_name)
 
 #     def teardown(self, *args, **kwargs):
 #         self._teardown_repo_type()
@@ -433,7 +437,9 @@
 
 #     def teardown(self, *args, **kwargs):
 #         self._teardown_repo_type()
-#         shutil.rmtree(self.tmp_clone_path, ignore_errors=True)
+#         for path in self._cleanup_paths:
+#             shutil.rmtree(path, ignore_errors=True)
+#         self._cleanup_paths = []
 
 #     def time_clone(self, *args, **kwargs):
 #         cmd = ['clone', '--pull']
@@ -437,4 +443,6 @@
 
 #     def time_clone(self, *args, **kwargs):
 #         cmd = ['clone', '--pull']
+#         tmp_clone_path = os.path.abspath(tempfile.mkdtemp(dir='.'))
+#         self._cleanup_paths.append(tmp_clone_path)
 #         cmd.extend(self._remote_path_cmd(self.clone_path))
@@ -440,5 +448,5 @@
 #         cmd.extend(self._remote_path_cmd(self.clone_path))
-#         cmd.append(self.tmp_clone_path)
+#         cmd.append(tmp_clone_path)
 #         if self.rev:
 #             cmd.extend(['-r', self.rev])
 #         self.hg(*cmd)