# HG changeset patch # User Matt Mackall # Date 1240336386 18000 # Node ID 0019be957555b5b7de2a12316fc805169ffade1f # Parent fd7cc930ab8f03b37ac464616e471f4c89f5aa08# Parent d8229670710fa17ed594b036f815318968fd5e8b Merge with crew-stable diff -r d8229670710f -r 0019be957555 hgext/churn.py --- a/hgext/churn.py Tue Apr 21 15:57:15 2009 +0200 +++ b/hgext/churn.py Tue Apr 21 12:53:06 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'): diff -r d8229670710f -r 0019be957555 mercurial/help.py --- a/mercurial/help.py Tue Apr 21 15:57:15 2009 +0200 +++ b/mercurial/help.py Tue Apr 21 12:53:06 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. diff -r d8229670710f -r 0019be957555 mercurial/patch.py --- a/mercurial/patch.py Tue Apr 21 15:57:15 2009 +0200 +++ b/mercurial/patch.py Tue Apr 21 12:53:06 2009 -0500 @@ -910,7 +910,7 @@ # else error? # copy/rename + modify should modify target, not source gp = changed.get(bfile) - if gp and gp.op in ('COPY', 'DELETE', 'RENAME'): + if gp and gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD'): afile = bfile gitworkdone = True newfile = True diff -r d8229670710f -r 0019be957555 tests/test-churn --- a/tests/test-churn Tue Apr 21 15:57:15 2009 +0200 +++ b/tests/test-churn Tue Apr 21 12:53:06 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 diff -r d8229670710f -r 0019be957555 tests/test-churn.out --- a/tests/test-churn.out Tue Apr 21 15:57:15 2009 +0200 +++ b/tests/test-churn.out Tue Apr 21 12:53:06 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 **************** diff -r d8229670710f -r 0019be957555 tests/test-import --- a/tests/test-import Tue Apr 21 15:57:15 2009 +0200 +++ b/tests/test-import Tue Apr 21 12:53:06 2009 -0500 @@ -313,3 +313,22 @@ hg import --no-commit -v -s 100 ../rename.diff hg st -C cd .. + + +echo '% add empty file from the end of patch (issue 1495)' +hg init addemptyend +cd addemptyend +touch a +hg addremove +hg ci -m "commit" +cat > a.patch <