Mercurial > hg
view tests/test-qrecord.out @ 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 | 708938509732 |
children | b9a8b616521d |
line wrap: on
line source
% help (no mq, so no qrecord) hg: unknown command 'qrecord' Mercurial Distributed SCM basic commands: add add the specified files on the next commit annotate show changeset information by line for each file clone make a copy of an existing repository commit commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets init create a new repository in the given directory log show revision history of entire repository or files merge merge working directory with another revision parents show the parents of the working directory or revision pull pull changes from the specified source push push changes to the specified destination remove remove the specified files on the next commit serve export the repository via HTTP status show changed files in the working directory update update working directory use "hg help" for the full list of commands or "hg -v" for details % help (mq present) hg qrecord [OPTION]... PATCH [FILE]... interactively record a new patch See 'hg help qnew' & 'hg help record' for more information and usage. options: -e --edit edit commit message -g --git use git extended diff format -U --currentuser add "From: <current user>" to patch -u --user add "From: <given user>" to patch -D --currentdate add "Date: <current date>" to patch -d --date add "Date: <given date>" to patch -I --include include names matching the given patterns -X --exclude exclude names matching the given patterns -m --message use <text> as commit message -l --logfile read commit message from <file> use "hg -v help qrecord" to show global options % base commit % changing files % whole diff diff -r 1057167b20ef 1.txt --- a/1.txt +++ b/1.txt @@ -1,5 +1,5 @@ 1 -2 +2 2 3 -4 +4 4 5 diff -r 1057167b20ef 2.txt --- a/2.txt +++ b/2.txt @@ -1,5 +1,5 @@ a -b +b b c d e diff -r 1057167b20ef dir/a.txt --- a/dir/a.txt +++ b/dir/a.txt @@ -1,4 +1,4 @@ -hello world +hello world! someone up % qrecord a.patch diff --git a/1.txt b/1.txt 2 hunks, 4 lines changed examine changes to '1.txt'? [Ynsfdaq?] @@ -1,3 +1,3 @@ 1 -2 +2 2 3 record change 1/6 to '1.txt'? [Ynsfdaq?] @@ -3,3 +3,3 @@ 3 -4 +4 4 5 record change 2/6 to '1.txt'? [Ynsfdaq?] diff --git a/2.txt b/2.txt 1 hunks, 2 lines changed examine changes to '2.txt'? [Ynsfdaq?] @@ -1,5 +1,5 @@ a -b +b b c d e record change 4/6 to '2.txt'? [Ynsfdaq?] diff --git a/dir/a.txt b/dir/a.txt 1 hunks, 2 lines changed examine changes to 'dir/a.txt'? [Ynsfdaq?] % after qrecord a.patch 'tip' changeset: 1:5d1ca63427ee tag: qtip tag: tip tag: a.patch tag: qbase user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: aaa diff -r 1057167b20ef -r 5d1ca63427ee 1.txt --- a/1.txt Thu Jan 01 00:00:00 1970 +0000 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,5 @@ 1 -2 +2 2 3 4 5 diff -r 1057167b20ef -r 5d1ca63427ee 2.txt --- a/2.txt Thu Jan 01 00:00:00 1970 +0000 +++ b/2.txt Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,5 @@ a -b +b b c d e % after qrecord a.patch 'diff' diff -r 5d1ca63427ee 1.txt --- a/1.txt +++ b/1.txt @@ -1,5 +1,5 @@ 1 2 2 3 -4 +4 4 5 diff -r 5d1ca63427ee dir/a.txt --- a/dir/a.txt +++ b/dir/a.txt @@ -1,4 +1,4 @@ -hello world +hello world! someone up % qrecord b.patch diff --git a/1.txt b/1.txt 1 hunks, 2 lines changed examine changes to '1.txt'? [Ynsfdaq?] @@ -1,5 +1,5 @@ 1 2 2 3 -4 +4 4 5 record change 1/3 to '1.txt'? [Ynsfdaq?] diff --git a/dir/a.txt b/dir/a.txt 1 hunks, 2 lines changed examine changes to 'dir/a.txt'? [Ynsfdaq?] @@ -1,4 +1,4 @@ -hello world +hello world! someone up record change 3/3 to 'dir/a.txt'? [Ynsfdaq?] % after qrecord b.patch 'tip' changeset: 2:b056198bf878 tag: qtip tag: tip tag: b.patch user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: bbb diff -r 5d1ca63427ee -r b056198bf878 1.txt --- a/1.txt Thu Jan 01 00:00:00 1970 +0000 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,5 @@ 1 2 2 3 -4 +4 4 5 diff -r 5d1ca63427ee -r b056198bf878 dir/a.txt --- a/dir/a.txt Thu Jan 01 00:00:00 1970 +0000 +++ b/dir/a.txt Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +1,4 @@ -hello world +hello world! someone up % after qrecord b.patch 'diff' % --- end ---