# HG changeset patch # User Matt Mackall # Date 1308434029 18000 # Node ID 394121d9f4fc5e875ff7e13455203ac289c6cdbb # Parent 87b9d6a7d807979d3ff64df99348b05db0da0636 fileset: add copied predicate diff -r 87b9d6a7d807 -r 394121d9f4fc hg2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hg2 Sat Jun 18 16:53:49 2011 -0500 @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# +# mercurial - scalable distributed SCM +# +# Copyright 2005-2007 Matt Mackall +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +import os +import sys + +libdir = '@LIBDIR@' + +if libdir != '@' 'LIBDIR' '@': + if not os.path.isabs(libdir): + libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), + libdir) + libdir = os.path.abspath(libdir) + sys.path.insert(0, libdir) + +# enable importing on demand to reduce startup time +try: + from mercurial import demandimport; demandimport.enable() +except ImportError: + import sys + sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % + ' '.join(sys.path)) + sys.stderr.write("(check your install and PYTHONPATH)\n") + sys.exit(-1) + +import mercurial.util +import mercurial.dispatch + +for fp in (sys.stdin, sys.stdout, sys.stderr): + mercurial.util.setbinary(fp) + +mercurial.dispatch.run() diff -r 87b9d6a7d807 -r 394121d9f4fc mercurial/fileset.py --- a/mercurial/fileset.py Sat Jun 18 16:53:49 2011 -0500 +++ b/mercurial/fileset.py Sat Jun 18 16:53:49 2011 -0500 @@ -335,10 +335,22 @@ return s +def copied(mctx, x): + """``copied()`` + File that is recorded as being copied. + """ + s = [] + for f in mctx.subset: + p = mctx.ctx[f].parents() + if p and p[0].path() != f: + s.append(f) + return s + symbols = { 'added': added, 'binary': binary, 'clean': clean, + 'copied': copied, 'deleted': deleted, 'encoding': encoding, 'exec': exec_,