# HG changeset patch # User Benoit Boissinot # Date 1134615225 21600 # Node ID 6a104941d56a17ae86806d36fa39eccd4072b6c0 # Parent dd186cb70a649e23a6453aef4041851f60529ce7 hg log -p should show file deletions diff -r dd186cb70a64 -r 6a104941d56a mercurial/commands.py --- a/mercurial/commands.py Wed Dec 14 20:38:11 2005 -0600 +++ b/mercurial/commands.py Wed Dec 14 20:53:45 2005 -0600 @@ -66,7 +66,7 @@ window, we first walk forwards to gather data, then in the desired order (usually backwards) to display it. - This function returns an (iterator, getchange) pair. The + This function returns an (iterator, getchange, matchfn) tuple. The getchange function returns the changelog entry for a numeric revision. The iterator yields 3-tuples. They will be of one of the following forms: @@ -82,10 +82,11 @@ "iter", rev, None: in-order traversal of the revs earlier iterated over with "add" - use to display data''' + files, matchfn, anypats, cwd = matchpats(repo, pats, opts) + if repo.changelog.count() == 0: - return [], False + return [], False, matchfn - files, matchfn, anypats, cwd = matchpats(repo, pats, opts) revs = map(int, revrange(ui, repo, opts['rev'] or ['tip:0'])) wanted = {} slowpath = anypats @@ -153,7 +154,7 @@ yield 'add', rev, fns for rev in nrevs: yield 'iter', rev, None - return iterate(), getchange + return iterate(), getchange, matchfn revrangesep = ':' @@ -1287,7 +1288,7 @@ fstate = {} skip = {} - changeiter, getchange = walkchangerevs(ui, repo, pats, opts) + changeiter, getchange, matchfn = walkchangerevs(ui, repo, pats, opts) count = 0 incrementing = False for st, rev, fns in changeiter: @@ -1550,7 +1551,7 @@ self.write(*args) def __getattr__(self, key): return getattr(self.ui, key) - changeiter, getchange = walkchangerevs(ui, repo, pats, opts) + changeiter, getchange, matchfn = walkchangerevs(ui, repo, pats, opts) for st, rev, fns in changeiter: if st == 'window': du = dui(ui) @@ -1566,7 +1567,7 @@ br = None if opts['keyword']: - changes = repo.changelog.read(repo.changelog.node(rev)) + changes = getchange(rev) miss = 0 for k in [kw.lower() for kw in opts['keyword']]: if not (k in changes[1].lower() or @@ -1583,7 +1584,7 @@ show_changeset(du, repo, rev, brinfo=br) if opts['patch']: prev = (parents and parents[0]) or nullid - dodiff(du, du, repo, prev, changenode, fns) + dodiff(du, du, repo, prev, changenode, match=matchfn) du.write("\n\n") elif st == 'iter': for args in du.hunk[rev]: diff -r dd186cb70a64 -r 6a104941d56a tests/test-remove --- a/tests/test-remove Wed Dec 14 20:38:11 2005 -0600 +++ b/tests/test-remove Wed Dec 14 20:53:45 2005 -0600 @@ -8,6 +8,10 @@ rm foo hg remove foo hg commit -m 2 -d "0 0" +hg export 0 +hg export 1 +hg log -p -r 0 +hg log -p -r 1 cd .. hg clone a b diff -r dd186cb70a64 -r 6a104941d56a tests/test-remove.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-remove.out Wed Dec 14 20:53:45 2005 -0600 @@ -0,0 +1,47 @@ +# HG changeset patch +# User test +# Node ID b51ca55c20354097ca299529d18b5cd356976ba2 +# Parent 0000000000000000000000000000000000000000 +1 + +diff -r 000000000000 -r b51ca55c2035 foo +--- /dev/null Thu Jan 1 00:00:00 1970 +0000 ++++ b/foo Thu Jan 1 00:00:00 1970 +0000 +@@ -0,0 +1,1 @@ ++a +# HG changeset patch +# User test +# Node ID 1e555b9b85c52e1e9e8175446f1ede507b2d1ebb +# Parent b51ca55c20354097ca299529d18b5cd356976ba2 +2 + +diff -r b51ca55c2035 -r 1e555b9b85c5 foo +--- a/foo Thu Jan 1 00:00:00 1970 +0000 ++++ /dev/null Thu Jan 1 00:00:00 1970 +0000 +@@ -1,1 +0,0 @@ +-a +changeset: 0:b51ca55c2035 +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: 1 + +diff -r 000000000000 -r b51ca55c2035 foo +--- /dev/null Thu Jan 1 00:00:00 1970 +0000 ++++ b/foo Thu Jan 1 00:00:00 1970 +0000 +@@ -0,0 +1,1 @@ ++a + + +changeset: 1:1e555b9b85c5 +tag: tip +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: 2 + +diff -r b51ca55c2035 -r 1e555b9b85c5 foo +--- a/foo Thu Jan 1 00:00:00 1970 +0000 ++++ /dev/null Thu Jan 1 00:00:00 1970 +0000 +@@ -1,1 +0,0 @@ +-a + +