# HG changeset patch # User Brendan Cully # Date 1173920484 25200 # Node ID 2792dbd648c78ac47de369c83da65433b39a4ff4 # Parent 0a95d0e83b4cf9c4026e0e15c73936b5cee99e95# Parent 5ccbc0be6cdb3b42a15c844356cdcb22cc99dab9 Merge with mpm diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -2085,14 +2085,15 @@ def reposetup(ui, repo): if not q.applied: return tagscache - mqtags = [(patch.rev, patch.name) for patch in q.applied] + mqtags = [(revlog.bin(patch.rev), patch.name) for patch in q.applied] mqtags.append((mqtags[-1][0], 'qtip')) mqtags.append((mqtags[0][0], 'qbase')) + mqtags.append((self.changelog.parents(mqtags[0][0])[0], 'qparent')) for patch in mqtags: if patch[1] in tagscache: self.ui.warn('Tag %s overrides mq patch of the same name\n' % patch[1]) else: - tagscache[patch[1]] = revlog.bin(patch[0]) + tagscache[patch[1]] = patch[0] return tagscache diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -48,8 +48,6 @@ def extract(ui, fileobj): fd, tmpname = tempfile.mkstemp(prefix='hg-patch-') tmpfp = os.fdopen(fd, 'w') try: - hgpatch = False - msg = email.Parser.Parser().parse(fileobj) message = msg['Subject'] @@ -77,6 +75,9 @@ def extract(ui, fileobj): payload = part.get_payload(decode=True) m = diffre.search(payload) if m: + hgpatch = False + ignoretext = False + ui.debug(_('found patch at byte %d\n') % m.start(0)) diffs_seen += 1 cfp = cStringIO.StringIO() @@ -96,7 +97,9 @@ def extract(ui, fileobj): ui.debug('From: %s\n' % user) elif line.startswith("# Date "): date = line[7:] - if not line.startswith('# '): + elif line == '---' and 'git-send-email' in msg['X-Mailer']: + ignoretext = True + if not line.startswith('# ') and not ignoretext: cfp.write(line) cfp.write('\n') message = cfp.getvalue() diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -361,7 +361,7 @@ class ui(object): def expandpath(self, loc, default=None): """Return repository location relative to cwd or from [paths]""" - if "://" in loc or os.path.isdir(loc): + if "://" in loc or os.path.isdir(os.path.join(loc, '.hg')): return loc path = self.config("paths", loc) diff --git a/tests/test-mq b/tests/test-mq --- a/tests/test-mq +++ b/tests/test-mq @@ -262,6 +262,9 @@ echo bar > foo hg qpush -a hg st +echo % mq tags +hg log --template '{rev} {tags}\n' -r qparent:qtip + cat >>$HGRCPATH <