# HG changeset patch # User Matt Mackall # Date 1310506023 18000 # Node ID 1a52f04ac51be41311566d45dd700f4be91a8054 # Parent 5b46c16e71218325a213d62328c0cb4796f59eb3# Parent f96c354493d7a3f32def72f293bbdc4f9a0558f4 merge with stable diff -r 5b46c16e7121 -r 1a52f04ac51b hgext/hgcia.py --- 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 '%s/rev/%s' % (saxutils.escape(self.url), - n) or '' + url = self.url + if url and url[-1] == '/': + url = url[:-1] + url = url and '%s/rev/%s' % (saxutils.escape(url), n) or '' msg = """ @@ -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: diff -r 5b46c16e7121 -r 1a52f04ac51b mercurial/revset.py --- 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] diff -r 5b46c16e7121 -r 1a52f04ac51b tests/test-hgcia.t --- 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 @@ test 0:e63c23eaa88a foo - http://hgserver/$TESTTMP/cia/rev/e63c23eaa88a - foo + http://hgserver/rev/e63c23eaa88a + foo 0 + + $ cat >> $HGRCPATH < 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 + + + + Mercurial (hgcia) + 0.1 + http://hg.kublai.com/mercurial/hgcia + testuser + + + testproject + default + + + + test + 1:c0c7cf58edc5 + bar + http://hgserver/$TESTTMP/cia/rev/c0c7cf58edc5 + bar + + + 0 +