Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:53:49 -0500] rev 14679
fileset: add resolved and unresolved predicates
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:53:49 -0500] rev 14678
fileset: prescan parse tree to optimize status usage
We only call status if needed to avoid walking the working directory
or comparing manifests.
Similarly, we scan for whether unknown or ignored files are mentioned
so we can include them.
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:53:49 -0500] rev 14677
fileset: add support for file status predicates
This forcibly walks the tree looking for unknown and ignored files,
which is suboptimal. A better approach would scan the tree first to
find required status components and skip the status check entirely if
it's unused.
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:53:49 -0500] rev 14676
fileset: add some basic predicates
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:53:44 -0500] rev 14675
match: introduce basic fileset support
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 14674
match: allow passing a context object to match core
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 14673
fileset: drop matchfn
This is now built into contexts
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 14672
scmutil: match no longer accepts repo objects
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 14671
scmutil: switch match users to supplying contexts
The most appropriate context is not always clearly defined. The obvious cases:
For working directory commands, we use None
For commands (eg annotate) with single revs, we use that revision
The less obvious cases:
For commands (eg status, diff) with a pair of revs, we use the second revision
For commands that take a range (like log), we use None
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 14670
scmutil: match now accepts a context or a repo