--- a/hgext/churn.py Sun Mar 22 20:59:03 2009 +0100
+++ b/hgext/churn.py Tue Mar 24 16:41:41 2009 -0500
@@ -21,9 +21,10 @@
t.use_template(tmpl)
return t
-def changedlines(ui, repo, ctx1, ctx2):
+def changedlines(ui, repo, ctx1, ctx2, fns):
lines = 0
- diff = ''.join(patch.diff(repo, ctx1.node(), ctx2.node()))
+ fmatch = cmdutil.match(repo, pats=fns)
+ diff = ''.join(patch.diff(repo, ctx1.node(), ctx2.node(), fmatch))
for l in diff.split('\n'):
if (l.startswith("+") and not l.startswith("+++ ") or
l.startswith("-") and not l.startswith("--- ")):
@@ -71,7 +72,7 @@
continue
ctx1 = parents[0]
- lines = changedlines(ui, repo, ctx1, ctx)
+ lines = changedlines(ui, repo, ctx1, ctx, fns)
rate[key] = rate.get(key, 0) + lines
if opts.get('progress'):
--- a/mercurial/help.py Sun Mar 22 20:59:03 2009 +0100
+++ b/mercurial/help.py Tue Mar 24 16:41:41 2009 -0500
@@ -178,7 +178,7 @@
revisions.
A plain integer is treated as a revision number. Negative
- integers are treated as toplogical offsets from the tip, with
+ integers are treated as topological offsets from the tip, with
-1 denoting the tip. As such, negative numbers are only useful
if you've memorized your local tree numbers and want to save
typing a single digit. This editor suggests copy and paste.
--- a/tests/test-churn Sun Mar 22 20:59:03 2009 +0100
+++ b/tests/test-churn Tue Mar 24 16:41:41 2009 -0500
@@ -20,7 +20,15 @@
hg ci -m changeca -u user3 -d 12:00 a
hg ci -m changecb -u user3 -d 12:15 b
hg ci -Am addc -u user3 -d 12:30
+mkdir -p d/e
+echo abc > d/e/f1.txt
+hg ci -Am "add d/e/f1.txt" -u user1 -d 12:45 d/e/f1.txt
+mkdir -p d/g
+echo def > d/g/f2.txt
+hg ci -Am "add d/g/f2.txt" -u user1 -d 13:00 d/g/f2.txt
+echo % churn separate directories
+hg churn d/e
echo % churn all
hg churn
echo % churn up to rev 2
--- a/tests/test-churn.out Sun Mar 22 20:59:03 2009 +0100
+++ b/tests/test-churn.out Tue Mar 24 16:41:41 2009 -0500
@@ -2,22 +2,25 @@
adding a
adding b
adding c
+% churn separate directories
+user1 1 ***************************************************************
% churn all
user3 3 ***************************************************************
+user1 3 ***************************************************************
user2 2 ******************************************
-user1 1 *********************
% churn up to rev 2
user2 2 ***************************************************************
user1 1 *******************************
% churn with aliases
alias3 3 **************************************************************
+alias1 3 **************************************************************
user2 2 *****************************************
-alias1 1 ********************
% churn with column specifier
user3 3 ***********************
+user1 3 ***********************
user2 2 ***************
-user1 1 *******
% churn by hour
-06 1 **********************
-09 2 ********************************************
-12 3 ******************************************************************
+06 1 ****************
+09 2 *********************************
+12 4 ******************************************************************
+13 1 ****************