Updated Patch<br>___________<br><br><br># HG changeset patch<br># User madhu@madhu<br># Date 1237925943 -19800<br># Node ID fcc918d0cd3f8a4ba4cd90bdf9e458c000e23a74<br># Parent  b2c18c7956221df0f961ac697a01effa1233978f<br>
Returns lines changed for paths specified as arguments correctly.<br><br>This fixes issue 1569. hg churn &lt;path&gt; now returns only the number<br>of lines changed in the path, if the path is specified by filtering<br>files through a match filter at the changeset level. test-churn<br>
has been updated to take care of this issue.<br><br>diff -r b2c18c795622 -r fcc918d0cd3f hgext/churn.py<br>--- a/hgext/churn.py    Fri Mar 20 18:55:20 2009 -0500<br>+++ b/hgext/churn.py    Wed Mar 25 01:49:03 2009 +0530<br>
@@ -21,9 +21,10 @@<br>     t.use_template(tmpl)<br>     return t<br> <br>-def changedlines(ui, repo, ctx1, ctx2):<br>+def changedlines(ui, repo, ctx1, ctx2, fns):<br>     lines = 0<br>-    diff = &#39;&#39;.join(patch.diff(repo, ctx1.node(), ctx2.node()))<br>
+    fmatch = cmdutil.match(repo, pats=fns)<br>+    diff = &#39;&#39;.join(patch.diff(repo, ctx1.node(), ctx2.node(), fmatch))<br>     for l in diff.split(&#39;\n&#39;):<br>         if (l.startswith(&quot;+&quot;) and not l.startswith(&quot;+++ &quot;) or<br>
             l.startswith(&quot;-&quot;) and not l.startswith(&quot;--- &quot;)):<br>@@ -71,7 +72,7 @@<br>                 continue<br> <br>             ctx1 = parents[0]<br>-            lines = changedlines(ui, repo, ctx1, ctx)<br>
+            lines = changedlines(ui, repo, ctx1, ctx, fns)<br>             rate[key] = rate.get(key, 0) + lines<br> <br>         if opts.get(&#39;progress&#39;):<br>diff -r b2c18c795622 -r fcc918d0cd3f tests/test-churn<br>
--- a/tests/test-churn    Fri Mar 20 18:55:20 2009 -0500<br>+++ b/tests/test-churn    Wed Mar 25 01:49:03 2009 +0530<br>@@ -20,7 +20,15 @@<br> hg ci -m changeca -u user3 -d 12:00 a<br> hg ci -m changecb -u user3 -d 12:15 b<br>
 hg ci -Am addc -u user3 -d 12:30<br>+mkdir -p d/e<br>+echo abc &gt; d/e/f1.txt<br>+hg ci -Am &quot;add d/e/f1.txt&quot; -u user1 -d 12:45 d/e/f1.txt<br>+mkdir -p d/g<br>+echo def &gt; d/g/f2.txt<br>+hg ci -Am &quot;add d/g/f2.txt&quot; -u user1 -d 13:00 d/g/f2.txt<br>
 <br>+echo % churn separate directories<br>+hg churn d/e<br> echo % churn all<br> hg churn<br> echo % churn up to rev 2<br>diff -r b2c18c795622 -r fcc918d0cd3f tests/test-churn.out<br>--- a/tests/test-churn.out    Fri Mar 20 18:55:20 2009 -0500<br>
+++ b/tests/test-churn.out    Wed Mar 25 01:49:03 2009 +0530<br>@@ -2,22 +2,25 @@<br> adding a<br> adding b<br> adding c<br>+% churn separate directories<br>+user1      1 ***************************************************************<br>
 % churn all<br> user3      3 ***************************************************************<br>+user1      3 ***************************************************************<br> user2      2 ******************************************<br>
-user1      1 *********************<br> % churn up to rev 2<br> user2      2 ***************************************************************<br> user1      1 *******************************<br> % churn with aliases<br> alias3      3 **************************************************************<br>
+alias1      3 **************************************************************<br> user2       2 *****************************************<br>-alias1      1 ********************<br> % churn with column specifier<br> user3      3 ***********************<br>
+user1      3 ***********************<br> user2      2 ***************<br>-user1      1 *******<br> % churn by hour<br>-06      1 **********************<br>-09      2 ********************************************<br>-12      3 ******************************************************************<br>
+06      1 ****************<br>+09      2 *********************************<br>+12      4 ******************************************************************<br>+13      1 ****************<br><br clear="all"><br>-- <br>Thanks and regards,<br>
  Madhusudan.C.S<br><br>Blogs at: <a href="http://www.madhusudancs.info">www.madhusudancs.info</a><br>Official Email ID: <a href="mailto:madhusudan@madhusudancs.info">madhusudan@madhusudancs.info</a><br>