]> Cypherpunks repositories - gostls13.git/commitdiff
codereview: work better with mq
authorPeter Williams <pwil3058@gmail.com>
Mon, 24 May 2010 21:37:00 +0000 (14:37 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 24 May 2010 21:37:00 +0000 (14:37 -0700)
R=rsc
CC=golang-dev
https://golang.org/cl/1140043

lib/codereview/codereview.py

index 9af28cfdaa8f5aac34b5dc6809ea50d74eb4e037..4b1797a7f01b2fee8643b40db8e2efeb43312b7a 100644 (file)
@@ -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."""