summaryrefslogtreecommitdiff
path: root/lib/codereview/codereview.py
diff options
context:
space:
mode:
authorPeter Williams <pwil3058@gmail.com>2010-05-24 14:37:00 -0700
committerPeter Williams <pwil3058@gmail.com>2010-05-24 14:37:00 -0700
commit20049bf9714521e66654e19a59a149f2ed6e24df (patch)
tree9c8d096f3c1c9a5f1908789dd28e3027b194a2e9 /lib/codereview/codereview.py
parentbc1826bb9ea58e344e276c444e9fb678f751f7f6 (diff)
downloadgolang-20049bf9714521e66654e19a59a149f2ed6e24df.tar.gz
codereview: work better with mq
R=rsc CC=golang-dev http://codereview.appspot.com/1140043 Committer: Russ Cox <rsc@golang.org>
Diffstat (limited to 'lib/codereview/codereview.py')
-rw-r--r--lib/codereview/codereview.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/codereview/codereview.py b/lib/codereview/codereview.py
index 9af28cfda..4b1797a7f 100644
--- a/lib/codereview/codereview.py
+++ b/lib/codereview/codereview.py
@@ -533,11 +533,18 @@ _change_prolog = """# Change list.
#######################################################################
# Mercurial helper functions
+# Get effective change nodes taking into account applied MQ patches
+def effective_revpair(repo):
+ try:
+ return cmdutil.revpair(repo, ['qparent'])
+ except:
+ return cmdutil.revpair(repo, None)
+
# Return list of changed files in repository that match pats.
def ChangedFiles(ui, repo, pats, opts):
# Find list of files being operated on.
matcher = cmdutil.match(repo, pats, opts)
- node1, node2 = cmdutil.revpair(repo, None)
+ node1, node2 = effective_revpair(repo)
modified, added, removed = repo.status(node1, node2, matcher)[:3]
l = modified + added + removed
l.sort()
@@ -546,7 +553,7 @@ def ChangedFiles(ui, repo, pats, opts):
# Return list of changed files in repository that match pats and still exist.
def ChangedExistingFiles(ui, repo, pats, opts):
matcher = cmdutil.match(repo, pats, opts)
- node1, node2 = cmdutil.revpair(repo, None)
+ node1, node2 = effective_revpair(repo)
modified, added, _ = repo.status(node1, node2, matcher)[:3]
l = modified + added
l.sort()
@@ -2828,8 +2835,11 @@ class MercurialVCS(VersionControlSystem):
if self.options.revision:
self.base_rev = self.options.revision
else:
- self.base_rev = RunShell(["hg", "parent", "-q"]).split(':')[1].strip()
-
+ mqparent, err = RunShellWithReturnCode(['hg', 'log', '--rev', 'qparent', '--template={node}'])
+ if not err:
+ self.base_rev = mqparent
+ else:
+ self.base_rev = RunShell(["hg", "parent", "-q"]).split(':')[1].strip()
def _GetRelPath(self, filename):
"""Get relative path of a file according to the current directory,
given its logical path in the repo."""