Mercurial > public > mercurial-scm > hg-stable
diff hgext/mq.py @ 9725:3f522d2fa633
diff: add --inverse option
Most of the time, one can reverse a diff by swapping the revisions passed with
-r but it happens that if you use the global -R, and diff against the tip of
the current repo, you can't swap the revisions. One use-case for that is
reviewing changes from a bundle before unbundling. One could also pipe the
output of `hg diff` to a command line filter that reverses the diff, but that
would remove the benefit from color diffs. Therefore, having an option in
`hg diff` to reverse a diff is a good thing.
The option flag selection was tricky. GNU patch uses -R/--reverse but -R is
already used as a global option and --reverse would make --rev ambiguous.
author | Yannick Gingras <ygingras@ygingras.net> |
---|---|
date | Thu, 05 Nov 2009 15:18:56 +0100 |
parents | 7d17794f08a9 |
children | f16ec85f125c |
line wrap: on
line diff
--- a/hgext/mq.py Thu Nov 05 15:06:35 2009 +0100 +++ b/hgext/mq.py Thu Nov 05 15:18:56 2009 +0100 @@ -1129,8 +1129,12 @@ self.ui.write(_("no patches applied\n")) return qp = self.qparents(repo, top) + if opts.get('inverse'): + node1, node2 = None, qp + else: + node1, node2 = qp, None self._diffopts = patch.diffopts(self.ui, opts) - self.printdiff(repo, qp, files=pats, opts=opts) + self.printdiff(repo, node1, node2, files=pats, opts=opts) def refresh(self, repo, pats=None, **opts): if len(self.applied) == 0: