merge with stable
authorMatt Mackall <mpm@selenic.com>
Tue, 12 Jul 2011 16:27:03 -0500
changeset 14858 1a52f04ac51b
parent 14857 5b46c16e7121 (current diff)
parent 14851 f96c354493d7 (diff)
child 14859 dccecfaebdd2
merge with stable
--- a/hgext/hgcia.py	Tue Jul 12 16:22:36 2011 -0500
+++ b/hgext/hgcia.py	Tue Jul 12 16:27:03 2011 -0500
@@ -81,6 +81,8 @@
         n = self.ctx.node()
         f = self.cia.repo.status(self.ctx.p1().node(), n)
         url = self.url or ''
+        if url and url[-1] == '/':
+            url = url[:-1]
         elems = []
         for path in f[0]:
             uri = '%s/diff/%s/%s' % (url, short(n), path)
@@ -141,8 +143,10 @@
         rev = '%d:%s' % (self.ctx.rev(), n)
         log = saxutils.escape(self.logmsg())
 
-        url = self.url and '<url>%s/rev/%s</url>' % (saxutils.escape(self.url),
-                                                     n) or ''
+        url = self.url
+        if url and url[-1] == '/':
+            url = url[:-1]
+        url = url and '<url>%s/rev/%s</url>' % (saxutils.escape(url), n) or ''
 
         msg = """
 <message>
@@ -190,7 +194,8 @@
         self.emailfrom = self.ui.config('email', 'from')
         self.dryrun = self.ui.configbool('cia', 'test')
         self.url = self.ui.config('web', 'baseurl')
-        self.stripcount = int(self.ui.config('cia', 'strip', 0))
+        # Default to -1 for backward compatibility
+        self.stripcount = int(self.ui.config('cia', 'strip', -1))
         self.root = self.strip(self.repo.root)
 
         style = self.ui.config('cia', 'style')
@@ -208,6 +213,8 @@
 
         path = util.pconvert(path)
         count = self.stripcount
+        if count < 0:
+            return ''
         while count > 0:
             c = path.find('/')
             if c == -1:
--- a/mercurial/revset.py	Tue Jul 12 16:22:36 2011 -0500
+++ b/mercurial/revset.py	Tue Jul 12 16:27:03 2011 -0500
@@ -217,7 +217,7 @@
     """
     try:
         n = int(n[1])
-    except ValueError:
+    except (TypeError, ValueError):
         raise error.ParseError(_("~ expects a number"))
     ps = set()
     cl = repo.changelog
@@ -521,7 +521,7 @@
     try:
         # i18n: "limit" is a keyword
         lim = int(getstring(l[1], _("limit requires a number")))
-    except ValueError:
+    except (TypeError, ValueError):
         # i18n: "limit" is a keyword
         raise error.ParseError(_("limit expects a number"))
     ss = set(subset)
@@ -537,7 +537,7 @@
     try:
         # i18n: "last" is a keyword
         lim = int(getstring(l[1], _("last requires a number")))
-    except ValueError:
+    except (TypeError, ValueError):
         # i18n: "last" is a keyword
         raise error.ParseError(_("last expects a number"))
     ss = set(subset)
@@ -676,7 +676,7 @@
         n = int(n[1])
         if n not in (0, 1, 2):
             raise ValueError
-    except ValueError:
+    except (TypeError, ValueError):
         raise error.ParseError(_("^ expects a number 0, 1, or 2"))
     ps = set()
     cl = repo.changelog
@@ -718,7 +718,7 @@
     try:
         # i18n: "rev" is a keyword
         l = int(getstring(l[0], _("rev requires a number")))
-    except ValueError:
+    except (TypeError, ValueError):
         # i18n: "rev" is a keyword
         raise error.ParseError(_("rev expects a number"))
     return [r for r in subset if r == l]
--- a/tests/test-hgcia.t	Tue Jul 12 16:22:36 2011 -0500
+++ b/tests/test-hgcia.t	Tue Jul 12 16:27:03 2011 -0500
@@ -46,9 +46,47 @@
         <author>test</author>
         <version>0:e63c23eaa88a</version>
         <log>foo</log>
-        <url>http://hgserver/$TESTTMP/cia/rev/e63c23eaa88a</url>
-        <files><file uri="http://hgserver/$TESTTMP/cia/file/e63c23eaa88a/foo" action="add">foo</file></files>
+        <url>http://hgserver/rev/e63c23eaa88a</url>
+        <files><file uri="http://hgserver/file/e63c23eaa88a/foo" action="add">foo</file></files>
       </commit>
     </body>
     <timestamp>0</timestamp>
   </message>
+
+  $ cat >> $HGRCPATH <<EOF
+  > strip = 0
+  > EOF
+
+  $ echo bar > bar
+  $ hg ci -Ambar
+  adding bar
+  $ hg push ../cia
+  pushing to ../cia
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  
+  <message>
+    <generator>
+      <name>Mercurial (hgcia)</name>
+      <version>0.1</version>
+      <url>http://hg.kublai.com/mercurial/hgcia</url>
+      <user>testuser</user>
+    </generator>
+    <source>
+  <project>testproject</project>
+  <branch>default</branch>
+  </source>
+    <body>
+      <commit>
+        <author>test</author>
+        <version>1:c0c7cf58edc5</version>
+        <log>bar</log>
+        <url>http://hgserver/$TESTTMP/cia/rev/c0c7cf58edc5</url>
+        <files><file uri="http://hgserver/$TESTTMP/cia/file/c0c7cf58edc5/bar" action="add">bar</file></files>
+      </commit>
+    </body>
+    <timestamp>0</timestamp>
+  </message>