# HG changeset patch # User Martijn Pieters <mj@zopatista.com> # Date 1533156341 -7200 # Wed Aug 01 22:45:41 2018 +0200 # Node ID 4822078e81b4e1096945a8dd6ce2031ba2321cc0 # Parent 357ed3a95baa035831444a457bdaaae510460fb9 track_commit: add mode parameter to support creating and updating Also: don't use -A to add new files; add explicitly. A large repository like mozilla-central makes the -A switch way too slow. diff --git a/benchmarks/basic_commands.py b/benchmarks/basic_commands.py --- a/benchmarks/basic_commands.py +++ b/benchmarks/basic_commands.py @@ -16,8 +16,13 @@ import urllib import pipes -from .utils import (BaseNChangesetsTestSuite, BaseTestSuite, - median, REPOS_DIR) +from .utils import ( + BaseNChangesetsTestSuite, + BaseTestSuite, + params_as_kwargs, + median, + REPOS_DIR +) if sys.version_info[0] == 2: import Queue as queue @@ -40,23 +45,43 @@ timeout = 120 - def track_commit(self, *args, **kwargs): + params = BaseTestSuite.params + [("create", "update")] + param_names = BaseTestSuite.param_names + ["mode"] + + @params_as_kwargs + def track_commit(self, mode, **kwargs): timings = [] + filename = None - with open(os.path.join(self.repo_path, 'BABAR'), 'w') as f: - f.write("BABAR") + self.hg('status') + + if mode == 'create': + with open(os.path.join(self.repo_path, 'BABAR'), 'w') as f: + f.write("BABAR") + else: + # pick filename to update + filename = self.hg('manifest').partition('\n')[0] + filename = os.path.join(self.repo_path, filename) # Do the commits N time - for i in range(3): + for i in range(10): try: + if mode == 'update': + with open(filename, 'a') as target: + target.write( + 'The quick brown fox jumps over the lazy dog\n') + else: + self.hg('add', 'BABAR') + before = time.time() - self.hg('commit', '-A', '-m', 'My commit message', + self.hg('commit', '-m', 'My commit message', '-u', '<test@octobus.net>') after = time.time() timings.append(after - before) finally: # Rollback and clean self.hg('rollback', '--config', 'ui.rollback=true') + self.hg('debugupdatecache') self.hg('update', '-C', '.') return median(timings)