view tests/test-hgwebdir.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 783c8c78db86
children 1de6e7e1bb9f
line wrap: on
line source

adding a
adding b
adding d
adding c
% should give a 404 - file does not exist
404 Not Found


error: bork@8580ff50825a: not found in manifest
% should succeed
200 Script output follows


/a/
/b/

200 Script output follows

a
200 Script output follows

b
% should give a 404 - repo is not published
404 Not Found


error: repository c not found
% should succeed, slashy names
200 Script output follows


/b/
/coll/a/
/coll/a/.hg/patches/
/coll/b/
/coll/c/
/rcoll/a/
/rcoll/a/.hg/patches/
/rcoll/b/
/rcoll/b/d/
/rcoll/c/
/t/a/

200 Script output follows

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<link rel="icon" href="/static/hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />

<title>Mercurial repositories index</title>
</head>
<body>

<div class="container">
<div class="menu">
<a href="http://www.selenic.com/mercurial/">
<img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<div class="main">
<h2>Mercurial Repositories</h2>

<table class="bigtable">
    <tr>
        <th><a href="?sort=-name">Name</a></th>
        <th><a href="?sort=description">Description</a></th>
        <th><a href="?sort=contact">Contact</a></th>
        <th><a href="?sort=lastchange">Last change</a></th>
        <th>&nbsp;</th>
    </tr>
    
<tr class="parity0">
<td><a href="/b/?style=paper">b</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity1">
<td><a href="/coll/a/?style=paper">coll/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity0">
<td><a href="/coll/a/.hg/patches/?style=paper">coll/a/.hg/patches</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity1">
<td><a href="/coll/b/?style=paper">coll/b</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity0">
<td><a href="/coll/c/?style=paper">coll/c</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity1">
<td><a href="/rcoll/a/?style=paper">rcoll/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity0">
<td><a href="/rcoll/a/.hg/patches/?style=paper">rcoll/a/.hg/patches</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity1">
<td><a href="/rcoll/b/?style=paper">rcoll/b</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity0">
<td><a href="/rcoll/b/d/?style=paper">rcoll/b/d</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity1">
<td><a href="/rcoll/c/?style=paper">rcoll/c</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

<tr class="parity0">
<td><a href="/t/a/?style=paper">t/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

</table>
</div>
</div>


</body>
</html>

200 Script output follows


/t/a/

200 Script output follows


/t/a/

200 Script output follows

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<link rel="icon" href="/static/hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />

<title>Mercurial repositories index</title>
</head>
<body>

<div class="container">
<div class="menu">
<a href="http://www.selenic.com/mercurial/">
<img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<div class="main">
<h2>Mercurial Repositories</h2>

<table class="bigtable">
    <tr>
        <th><a href="?sort=-name">Name</a></th>
        <th><a href="?sort=description">Description</a></th>
        <th><a href="?sort=contact">Contact</a></th>
        <th><a href="?sort=lastchange">Last change</a></th>
        <th>&nbsp;</th>
    </tr>
    
<tr class="parity0">
<td><a href="/t/a/?style=paper">a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
<td class="age">seconds ago</td>
<td class="indexlinks"></td>
</tr>

</table>
</div>
</div>


</body>
</html>

200 Script output follows

<?xml version="1.0" encoding="ascii"?>
<feed xmlns="http://127.0.0.1/2005/Atom">
 <!-- Changelog -->
 <id>http://127.0.0.1/t/a/</id>
 <link rel="self" href="http://127.0.0.1/t/a/atom-log"/>
 <link rel="alternate" href="http://127.0.0.1/t/a/"/>
 <title>t/a Changelog</title>
 <updated>1970-01-01T00:00:01+00:00</updated>

 <entry>
  <title>a</title>
  <id>http://127.0.0.1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id>
  <link href="http://127.0.0.1/t/a/rev/8580ff50825a50c8f716709acdf8de0deddcd6ab"/>
  <author>
   <name>test</name>
   <email>&#116;&#101;&#115;&#116;</email>
  </author>
  <updated>1970-01-01T00:00:01+00:00</updated>
  <published>1970-01-01T00:00:01+00:00</published>
  <content type="xhtml">
   <div xmlns="http://127.0.0.1/1999/xhtml">
    <pre xml:space="preserve">a</pre>
   </div>
  </content>
 </entry>

</feed>
200 Script output follows

<?xml version="1.0" encoding="ascii"?>
<feed xmlns="http://127.0.0.1/2005/Atom">
 <!-- Changelog -->
 <id>http://127.0.0.1/t/a/</id>
 <link rel="self" href="http://127.0.0.1/t/a/atom-log"/>
 <link rel="alternate" href="http://127.0.0.1/t/a/"/>
 <title>t/a Changelog</title>
 <updated>1970-01-01T00:00:01+00:00</updated>

 <entry>
  <title>a</title>
  <id>http://127.0.0.1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id>
  <link href="http://127.0.0.1/t/a/rev/8580ff50825a50c8f716709acdf8de0deddcd6ab"/>
  <author>
   <name>test</name>
   <email>&#116;&#101;&#115;&#116;</email>
  </author>
  <updated>1970-01-01T00:00:01+00:00</updated>
  <published>1970-01-01T00:00:01+00:00</published>
  <content type="xhtml">
   <div xmlns="http://127.0.0.1/1999/xhtml">
    <pre xml:space="preserve">a</pre>
   </div>
  </content>
 </entry>

</feed>
200 Script output follows

a
200 Script output follows


/coll/a/
/coll/a/.hg/patches/
/coll/b/
/coll/c/

200 Script output follows

a
200 Script output follows


/rcoll/a/
/rcoll/a/.hg/patches/
/rcoll/b/
/rcoll/b/d/
/rcoll/c/

200 Script output follows

d
% collections: should succeed
200 Script output follows


/a/
/a/.hg/patches/
/b/
/c/

200 Script output follows

a
200 Script output follows

b
200 Script output follows

c
% paths errors 1
% paths errors 2
% collections errors