Mercurial > hg
view tests/generate-working-copy-states.py @ 23305:0cc283f44655
manifest: add matches() method
Move the code in context._manifestmatches() into a new
manifest.matches(). It's a natural place for the code to live and it
allows other callers to easily use it. It should also make it easier
to optimize the new method in alternative implementations of the
manifest (same reasoning as with manifest.diff()).
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 22 Oct 2014 21:38:30 -0700 |
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)