Mercurial > hg
view tests/generate-working-copy-states.py @ 23288:2b9bc7963504
revlog: increase I/O bound to 4x the amount of data consumed
This doesn't affect normal clones since they'd be bound by the CPU bound below
anyway -- it does, however, improve generaldelta clones significantly.
This also results in better deltaing for generaldelta clones -- in generaldelta
clones, we calculate deltas with respect to the closest base if it has a higher
revision number than either parent. If the base is on a significantly different
branch, this can result in pointlessly massive deltas. This reduces the number
of bases and hence the number of bad deltas.
Empirically, for a highly branchy repository, this resulted in an improvement
of around 15% to manifest size.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Tue, 11 Nov 2014 20:08:19 -0800 |
parents | 29977b315be1 |
children | 390a2610eaef |
line wrap: on
line source
# generate proper file state to test working copy behavior import sys import os # build the combination of possible states combination = [] for base in [None, 'content1']: for parent in set([None, 'content2']) | set([base]): for wcc in set([None, 'content3']) | set([base, parent]): for tracked in (False, True): def statestring(content): return content is None and 'missing' or content trackedstring = tracked and 'tracked' or 'untracked' filename = "%s_%s_%s-%s" % (statestring(base), statestring(parent), statestring(wcc), trackedstring) combination.append((filename, base, parent, wcc)) # make sure we have stable output combination.sort() # retrieve the state we must generate target = sys.argv[1] # compute file content content = [] for filename, base, parent, wcc in combination: if target == 'filelist': print filename elif target == 'base': content.append((filename, base)) elif target == 'parent': content.append((filename, parent)) elif target == 'wc': # Make sure there is content so the file gets written and can be # tracked. It will be deleted outside of this script. content.append((filename, wcc or 'TOBEDELETED')) else: print >> sys.stderr, "unknown target:", target sys.exit(1) # write actual content for filename, data in content: if data is not None: f = open(filename, 'w') f.write(data + '\n') f.close() elif os.path.exists(filename): os.remove(filename)