Mercurial > hg
view doc/hg.1.txt @ 8849:80cc4b1a62d0
compare grep result between target and its parent
I found that typical case is that grep target is added at (*) revision
in the tree shown below.
+--- 1(*) --- 3
0
+--- 2 ------ 4
Now, I expect 'hg grep --all' to show only rev:1 which is first
appearance of target line.
But 'hg grep --all' will tell:
target line dis-appeared at 3 => 4
target line appeared at 2 => 3
target line dis-appeared at 1 => 2
target line appeared at 0 => 1
because current 'hg grep' implementation compares not between target
revision and its parent, but between neighbor revisions in walkthrough
order.
I checked performance of this patch by "hg grep --follow --all
walkchangerevs" on whole Mercurial repo, and patched version could
complete as fast as un-patched one.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 19 May 2009 16:49:54 +0900 |
parents | 8e15f4afdf06 |
children | 1de6e7e1bb9f |
line wrap: on
line source
HG(1) ===== Matt Mackall <mpm@selenic.com> :man source: Mercurial :man manual: Mercurial Manual NAME ---- hg - Mercurial source code management system SYNOPSIS -------- *hg* 'command' ['option']... ['argument']... DESCRIPTION ----------- The *hg* command provides a command line interface to the Mercurial system. COMMAND ELEMENTS ---------------- files ...:: indicates one or more filename or relative path filenames; see "FILE NAME PATTERNS" for information on pattern matching path:: indicates a path on the local machine revision:: indicates a changeset which can be specified as a changeset revision number, a tag, or a unique substring of the changeset hash value repository path:: either the pathname of a local repository or the URI of a remote repository. include::hg.1.gendoc.txt[] FILES ----- `.hgignore`:: This file contains regular expressions (one per line) that describe file names that should be ignored by *hg*. For details, see *hgignore(5)*. `.hgtags`:: This file contains changeset hash values and text tag names (one of each separated by spaces) that correspond to tagged versions of the repository contents. `/etc/mercurial/hgrc`, `$HOME/.hgrc`, `.hg/hgrc`:: This file contains defaults and configuration. Values in `.hg/hgrc` override those in `$HOME/.hgrc`, and these override settings made in the global `/etc/mercurial/hgrc` configuration. See *hgrc(5)* for details of the contents and format of these files. Some commands (e.g. revert) produce backup files ending in `.orig`, if the `.orig` file already exists and is not tracked by Mercurial, it will be overwritten. BUGS ---- Probably lots, please post them to the mailing list (See Resources below) when you find them. SEE ALSO -------- *hgignore(5)*, *hgrc(5)* AUTHOR ------ Written by Matt Mackall <mpm@selenic.com> RESOURCES --------- http://selenic.com/mercurial[Main Web Site] http://selenic.com/hg[Source code repository] http://selenic.com/mailman/listinfo/mercurial[Mailing list] COPYING ------- Copyright \(C) 2005-2009 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License (GPL).