Mercurial > hg
changeset 12565:52f93dc2980b
merge with i18n
author | Wagner Bruna <wbruna@softwareexpress.com.br> |
---|---|
date | Fri, 24 Sep 2010 19:47:50 -0300 |
parents | 4cdaf1adafc8 (diff) 12f58fa94a31 (current diff) |
children | 27e014189d3b |
files | |
diffstat | 131 files changed, 2423 insertions(+), 1790 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/check-code.py Fri Sep 24 02:17:54 2010 +0200 +++ b/contrib/check-code.py Fri Sep 24 19:47:50 2010 -0300 @@ -63,6 +63,7 @@ (r'export.*=', "don't export and assign at once"), ('^([^"\']|("[^"]*")|(\'[^\']*\'))*\\^', "^ must be quoted"), (r'^source\b', "don't use 'source', use '.'"), + (r'touch -d', "don't use 'touch -d', use 'touch -t' instead"), ] testfilters = [ @@ -70,6 +71,27 @@ (r"<<(\S+)((.|\n)*?\n\1)", rephere), ] +uprefix = r"^ \$ " +utestpats = [ + (uprefix + r'.*\|\s*sed', "use regex test output patterns instead of sed"), + (uprefix + r'(true|exit 0)', "explicit zero exit unnecessary"), + (uprefix + r'.*\$\?', "explicit exit code checks unnecessary"), + (uprefix + r'.*\|\| echo.*(fail|error)', + "explicit exit code checks unnecessary"), + (uprefix + r'set -e', "don't use set -e"), +] + +for p, m in testpats: + if p.startswith('^'): + p = uprefix + p[1:] + else: + p = uprefix + p + utestpats.append((p, m)) + +utestfilters = [ + (r"( *)(#([^\n]*\S)?)", repcomment), +] + pypats = [ (r'^\s*def\s*\w+\s*\(.*,\s*\(', "tuple parameter unpacking not available in Python 3+"), @@ -157,6 +179,7 @@ ('python', r'.*\.(py|cgi)$', pyfilters, pypats), ('test script', r'(.*/)?test-[^.~]*$', testfilters, testpats), ('c', r'.*\.c$', cfilters, cpats), + ('unified test', r'.*\.t$', utestfilters, utestpats), ] class norepeatlogger(object):
--- a/doc/hgrc.5.txt Fri Sep 24 02:17:54 2010 +0200 +++ b/doc/hgrc.5.txt Fri Sep 24 19:47:50 2010 -0300 @@ -699,13 +699,12 @@ Optional. Whether to connect to mail server using TLS. True or False. Default: False. ``username`` - Optional. User name to authenticate to SMTP server with. If - username is specified, password must also be specified. + Optional. User name for authenticating with the SMTP server. Default: none. ``password`` - Optional. Password to authenticate to SMTP server with. If - username is specified, password must also be specified. - Default: none. + Optional. Password for authenticating with the SMTP server. If not + specified, interactive sessions will prompt the user for a + password; non-interactive sessions will fail. Default: none. ``local_hostname`` Optional. It's the hostname that the sender can use to identify itself to the MTA.
--- a/hgext/bookmarks.py Fri Sep 24 02:17:54 2010 +0200 +++ b/hgext/bookmarks.py Fri Sep 24 19:47:50 2010 -0300 @@ -224,6 +224,7 @@ in the .hg/bookmarks file. Read the file and return a (name=>nodeid) dictionary ''' + self._loadingbookmarks = True try: bookmarks = {} for line in self.opener('bookmarks'): @@ -231,6 +232,7 @@ bookmarks[refspec] = super(bookmark_repo, self).lookup(sha) except: pass + self._loadingbookmarks = False return bookmarks @util.propertycache @@ -257,8 +259,9 @@ return super(bookmark_repo, self).rollback(*args) def lookup(self, key): - if key in self._bookmarks: - key = self._bookmarks[key] + if not getattr(self, '_loadingbookmarks', False): + if key in self._bookmarks: + key = self._bookmarks[key] return super(bookmark_repo, self).lookup(key) def _bookmarksupdate(self, parents, node): @@ -357,7 +360,8 @@ def _findtags(self): """Merge bookmarks with normal tags""" (tags, tagtypes) = super(bookmark_repo, self)._findtags() - tags.update(self._bookmarks) + if not getattr(self, '_loadingbookmarks', False): + tags.update(self._bookmarks) return (tags, tagtypes) if hasattr(repo, 'invalidate'):
--- a/hgext/convert/darcs.py Fri Sep 24 02:17:54 2010 +0200 +++ b/hgext/convert/darcs.py Fri Sep 24 19:47:50 2010 -0300 @@ -8,7 +8,7 @@ from common import NoRepo, checktool, commandline, commit, converter_source from mercurial.i18n import _ from mercurial import util -import os, shutil, tempfile +import os, shutil, tempfile, re # The naming drift of ElementTree is fun! @@ -31,11 +31,8 @@ converter_source.__init__(self, ui, path, rev=rev) commandline.__init__(self, ui, 'darcs') - # check for _darcs, ElementTree, _darcs/inventory so that we can - # easily skip test-convert-darcs if ElementTree is not around - if not os.path.exists(os.path.join(path, '_darcs', 'inventories')): - raise NoRepo(_("%s does not look like a darcs repository") % path) - + # check for _darcs, ElementTree so that we can easily skip + # test-convert-darcs if ElementTree is not around if not os.path.exists(os.path.join(path, '_darcs')): raise NoRepo(_("%s does not look like a darcs repository") % path) @@ -55,6 +52,15 @@ self.parents = {} self.tags = {} + # Check darcs repository format + format = self.format() + if format: + if format in ('darcs-1.0', 'hashed'): + raise NoRepo(_("%s repository format is unsupported, " + "please upgrade") % format) + else: + self.ui.warn(_('failed to detect repository format!')) + def before(self): self.tmppath = tempfile.mkdtemp( prefix='convert-' + os.path.basename(self.path) + '-') @@ -91,6 +97,15 @@ self.checkexit(fp.close()) return etree.getroot() + def format(self): + output, status = self.run('show', 'repo', no_files=True, + repodir=self.path) + self.checkexit(status) + m = re.search(r'^\s*Format:\s*(.*)$', output, re.MULTILINE) + if not m: + return None + return ','.join(sorted(f.strip() for f in m.group(1).split(','))) + def manifest(self): man = [] output, status = self.run('show', 'files', no_directories=True,
--- a/hgext/keyword.py Fri Sep 24 02:17:54 2010 +0200 +++ b/hgext/keyword.py Fri Sep 24 19:47:50 2010 -0300 @@ -52,8 +52,9 @@ # prefer svn- over cvs-like default keywordmaps svn = True -NOTE: the more specific you are in your filename patterns the less you -lose speed in huge repositories. +.. note:: + The more specific you are in your filename patterns the less you + lose speed in huge repositories. For [keywordmaps] template mapping and expansion demonstration and control run :hg:`kwdemo`. See :hg:`help templates` for a list of
--- a/hgext/mq.py Fri Sep 24 02:17:54 2010 +0200 +++ b/hgext/mq.py Fri Sep 24 19:47:50 2010 -0300 @@ -2174,7 +2174,9 @@ With no arguments, print the currently active guards. With arguments, set guards for the named patch. - NOTE: Specifying negative guards now requires '--'. + + .. note:: + Specifying negative guards now requires '--'. To set guards on another patch:: @@ -2797,8 +2799,16 @@ editor, extra) def push(self, remote, force=False, revs=None, newbranch=False): - if self.mq.applied and not force and not revs: - raise util.Abort(_('source has mq patches applied')) + if self.mq.applied and not force: + haspatches = True + if revs: + # Assume applied patches have no non-patch descendants + # and are not on remote already. If they appear in the + # set of resolved 'revs', bail out. + applied = set(e.node for e in self.mq.applied) + haspatches = bool([n for n in revs if n in applied]) + if haspatches: + raise util.Abort(_('source has mq patches applied')) return super(mqrepo, self).push(remote, force, revs, newbranch) def _findtags(self):
--- a/hgext/share.py Fri Sep 24 02:17:54 2010 +0200 +++ b/hgext/share.py Fri Sep 24 19:47:50 2010 -0300 @@ -14,15 +14,16 @@ Initialize a new repository and working directory that shares its history with another repository. - NOTE: using rollback or extensions that destroy/modify history - (mq, rebase, etc.) can cause considerable confusion with shared - clones. In particular, if two shared clones are both updated to - the same changeset, and one of them destroys that changeset with - rollback, the other clone will suddenly stop working: all - operations will fail with "abort: working directory has unknown - parent". The only known workaround is to use debugsetparents on - the broken clone to reset it to a changeset that still exists - (e.g. tip). + .. note:: + using rollback or extensions that destroy/modify history (mq, + rebase, etc.) can cause considerable confusion with shared + clones. In particular, if two shared clones are both updated to + the same changeset, and one of them destroys that changeset + with rollback, the other clone will suddenly stop working: all + operations will fail with "abort: working directory has unknown + parent". The only known workaround is to use debugsetparents on + the broken clone to reset it to a changeset that still exists + (e.g. tip). """ return hg.share(ui, source, dest, not noupdate)
--- a/mercurial/cmdutil.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/cmdutil.py Fri Sep 24 19:47:50 2010 -0300 @@ -363,7 +363,7 @@ islink, isexec = gp.mode dst = repo.wjoin(gp.path) # patch won't create empty files - if gp.op == 'ADD' and not os.path.exists(dst): + if gp.op == 'ADD' and not os.path.lexists(dst): flags = (isexec and 'x' or '') + (islink and 'l' or '') repo.wwrite(gp.path, '', flags) util.set_flags(dst, islink, isexec) @@ -521,7 +521,7 @@ score = 0 for s in srcs: t = os.path.join(dest, util.localpath(s[0])[striplen:]) - if os.path.exists(t): + if os.path.lexists(t): score += 1 return score
--- a/mercurial/commands.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/commands.py Fri Sep 24 19:47:50 2010 -0300 @@ -1432,9 +1432,10 @@ Differences between files are shown using the unified diff format. - NOTE: diff may generate unexpected results for merges, as it will - default to comparing against the working directory's first parent - changeset if no revisions are specified. + .. note:: + diff may generate unexpected results for merges, as it will + default to comparing against the working directory's first + parent changeset if no revisions are specified. When two revision arguments are given, then changes are shown between those revisions. If only one revision is specified then @@ -1486,9 +1487,10 @@ branch name (if non-default), changeset hash, parent(s) and commit comment. - NOTE: export may generate unexpected diff output for merge - changesets, as it will compare the merge changeset against its - first parent only. + .. note:: + export may generate unexpected diff output for merge + changesets, as it will compare the merge changeset against its + first parent only. Output may be to a file, in which case the name of the file is given using a format string. The formatting rules are as follows: @@ -1585,7 +1587,7 @@ reflags |= re.I try: regexp = re.compile(pattern, reflags) - except Exception, inst: + except re.error, inst: ui.warn(_("grep: invalid match pattern: %s\n") % inst) return 1 sep, eol = ':', '\n' @@ -2361,11 +2363,6 @@ raise util.Abort(_('cannot combine --bundle and --subrepos')) ret = hg.incoming(ui, repo, source, opts) - if opts.get('subrepos'): - ctx = repo[None] - for subpath in sorted(ctx.substate): - sub = ctx.sub(subpath) - ret = min(ret, sub.incoming(ui, source, opts)) return ret def init(ui, dest=".", **opts): @@ -2444,10 +2441,11 @@ each commit. When the -v/--verbose switch is used, the list of changed files and full commit message are shown. - NOTE: log -p/--patch may generate unexpected diff output for merge - changesets, as it will only compare the merge changeset against - its first parent. Also, only files different from BOTH parents - will appear in files:. + .. note:: + log -p/--patch may generate unexpected diff output for merge + changesets, as it will only compare the merge changeset against + its first parent. Also, only files different from BOTH parents + will appear in files:. Returns 0 on success. """ @@ -2502,7 +2500,11 @@ revmatchfn = None if opts.get('patch') or opts.get('stat'): - revmatchfn = cmdutil.match(repo, fns, default='path') + if opts.get('follow') or opts.get('follow_first'): + # note: this might be wrong when following through merges + revmatchfn = cmdutil.match(repo, fns, default='path') + else: + revmatchfn = matchfn displayer.show(ctx, copies=copies, matchfn=revmatchfn) @@ -2623,11 +2625,6 @@ Returns 0 if there are outgoing changes, 1 otherwise. """ ret = hg.outgoing(ui, repo, dest, opts) - if opts.get('subrepos'): - ctx = repo[None] - for subpath in sorted(ctx.substate): - sub = ctx.sub(subpath) - ret = min(ret, sub.outgoing(ui, dest, opts)) return ret def parents(ui, repo, file_=None, **opts): @@ -2990,16 +2987,20 @@ # replace filemerge's .orig file with our resolve file util.rename(a + ".resolve", a + ".orig") + + ms.commit() return ret def revert(ui, repo, *pats, **opts): """restore individual files or directories to an earlier state - NOTE: This command is most likely not what you are looking for. revert - will partially overwrite content in the working directory without changing - the working directory parents. Use :hg:`update -r rev` to check out earlier - revisions, or :hg:`update --clean .` to undo a merge which has added - another parent. + .. note:: + This command is most likely not what you are looking for. + revert will partially overwrite content in the working + directory without changing the working directory parents. Use + :hg:`update -r rev` to check out earlier revisions, or + :hg:`update --clean .` to undo a merge which has added another + parent. With no revision specified, revert the named files or directories to the contents they had in the parent of the working directory. @@ -3365,10 +3366,11 @@ Option -q/--quiet hides untracked (unknown and ignored) files unless explicitly requested with -u/--unknown or -i/--ignored. - NOTE: status may appear to disagree with diff if permissions have - changed or a merge has occurred. The standard diff format does not - report permission changes and diff only reports changes relative - to one merge parent. + .. note:: + status may appear to disagree with diff if permissions have + changed or a merge has occurred. The standard diff format does + not report permission changes and diff only reports changes + relative to one merge parent. If one revision is given, it is used as the base revision. If two revisions are given, the differences between them are
--- a/mercurial/context.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/context.py Fri Sep 24 19:47:50 2010 -0300 @@ -844,7 +844,7 @@ if self._repo.dirstate[f] != 'r': self._repo.ui.warn(_("%s not removed!\n") % f) else: - fctx = f in pctxs[0] and pctxs[0] or pctxs[1] + fctx = f in pctxs[0] and pctxs[0][f] or pctxs[1][f] t = fctx.data() self._repo.wwrite(f, t, fctx.flags()) self._repo.dirstate.normal(f)
--- a/mercurial/dagparser.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/dagparser.py Fri Sep 24 19:47:50 2010 -0300 @@ -219,7 +219,7 @@ yield 'n', (r, [p1]) p1 = r r += 1 - elif c == '*' or c == '/': + elif c in '*/': if c == '*': c = nextch() c, pref = nextstring(c)
--- a/mercurial/help/templates.txt Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/help/templates.txt Fri Sep 24 19:47:50 2010 -0300 @@ -106,6 +106,9 @@ :escape: Any text. Replaces the special XML/XHTML characters "&", "<" and ">" with XML entities. +:hex: Any text. Convert a binary Mercurial node identifier into + its long hexadecimal representation. + :fill68: Any text. Wraps the text to fit in 68 columns. :fill76: Any text. Wraps the text to fit in 76 columns.
--- a/mercurial/hg.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/hg.py Fri Sep 24 19:47:50 2010 -0300 @@ -409,6 +409,15 @@ return stats[3] > 0 def incoming(ui, repo, source, opts): + def recurse(): + ret = 1 + if opts.get('subrepos'): + ctx = repo[None] + for subpath in sorted(ctx.substate): + sub = ctx.sub(subpath) + ret = min(ret, sub.incoming(ui, source, opts)) + return ret + limit = cmdutil.loglimit(opts) source, branches = parseurl(ui.expandpath(source), opts.get('branch')) other = repository(remoteui(repo, opts), source) @@ -426,7 +435,7 @@ except: pass ui.status(_("no changes found\n")) - return 1 + return recurse() cleanup = None try: @@ -469,8 +478,19 @@ other.close() if cleanup: os.unlink(cleanup) + recurse() + return 0 # exit code is zero since we found incoming changes def outgoing(ui, repo, dest, opts): + def recurse(): + ret = 1 + if opts.get('subrepos'): + ctx = repo[None] + for subpath in sorted(ctx.substate): + sub = ctx.sub(subpath) + ret = min(ret, sub.outgoing(ui, dest, opts)) + return ret + limit = cmdutil.loglimit(opts) dest = ui.expandpath(dest or 'default-push', dest or 'default') dest, branches = parseurl(dest, opts.get('branch')) @@ -483,7 +503,8 @@ o = discovery.findoutgoing(repo, other, force=opts.get('force')) if not o: ui.status(_("no changes found\n")) - return 1 + return recurse() + o = repo.changelog.nodesbetween(o, revs)[0] if opts.get('newest_first'): o.reverse() @@ -498,6 +519,8 @@ count += 1 displayer.show(repo[n]) displayer.close() + recurse() + return 0 # exit code is zero since we found outgoing changes def revert(repo, node, choose): """revert changes to revision in node without updating dirstate"""
--- a/mercurial/merge.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/merge.py Fri Sep 24 19:47:50 2010 -0300 @@ -14,12 +14,14 @@ '''track 3-way merge state of individual files''' def __init__(self, repo): self._repo = repo + self._dirty = False self._read() def reset(self, node=None): self._state = {} if node: self._local = node shutil.rmtree(self._repo.join("merge"), True) + self._dirty = False def _read(self): self._state = {} try: @@ -33,17 +35,20 @@ except IOError, err: if err.errno != errno.ENOENT: raise - def _write(self): - f = self._repo.opener("merge/state", "w") - f.write(hex(self._local) + "\n") - for d, v in self._state.iteritems(): - f.write("\0".join([d] + v) + "\n") + self._dirty = False + def commit(self): + if self._dirty: + f = self._repo.opener("merge/state", "w") + f.write(hex(self._local) + "\n") + for d, v in self._state.iteritems(): + f.write("\0".join([d] + v) + "\n") + self._dirty = False def add(self, fcl, fco, fca, fd, flags): hash = util.sha1(fcl.path()).hexdigest() self._repo.opener("merge/" + hash, "w").write(fcl.data()) self._state[fd] = ['u', hash, fcl.path(), fca.path(), hex(fca.filenode()), fco.path(), flags] - self._write() + self._dirty = True def __contains__(self, dfile): return dfile in self._state def __getitem__(self, dfile): @@ -55,7 +60,7 @@ yield f def mark(self, dfile, state): self._state[dfile][0] = state - self._write() + self._dirty = True def resolve(self, dfile, wctx, octx): if self[dfile] == 'r': return 0 @@ -352,6 +357,7 @@ elif m == "e": # exec flags = a[2] util.set_flags(repo.wjoin(f), 'l' in flags, 'x' in flags) + ms.commit() u.progress(_('updating'), None, total=numupdates, unit='files') return updated, merged, removed, unresolved
--- a/mercurial/minirst.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/minirst.py Fri Sep 24 19:47:50 2010 -0300 @@ -24,6 +24,8 @@ - definition lists +- specific admonitions + - bullet lists (items must start with '-') - enumerated lists (no autonumbering) @@ -37,6 +39,8 @@ import re, sys import util, encoding +from i18n import _ + def replace(text, substs): utext = text.decode(encoding.encoding) @@ -292,12 +296,58 @@ i += 2 return blocks +def findadmonitions(blocks): + """ + Makes the type of the block an admonition block if + the first line is an admonition directive + """ + + i = 0 + + pattern = (r"\.\. (admonition|attention|caution|danger|error|hint|" + r"important|note|tip|warning)::") + + prog = re.compile(pattern, flags=re.IGNORECASE) + while i < len(blocks): + m = prog.match(blocks[i]['lines'][0]) + if m: + blocks[i]['type'] = 'admonition' + admonitiontitle = blocks[i]['lines'][0][3:m.end() - 2].lower() + + firstline = blocks[i]['lines'][0][m.end() + 1:] + if firstline != '': + blocks[i]['lines'].insert(1, ' ' + firstline + '') + + + blocks[i]['admonitiontitle'] = admonitiontitle + del blocks[i]['lines'][0] + i = i + 1 + return blocks def formatblock(block, width): """Format a block according to width.""" if width <= 0: width = 78 indent = ' ' * block['indent'] + if block['type'] == 'admonition': + titles = {'attention': _('Attention:'), + 'caution': _('Caution:'), + 'danger': _('!Danger!') , + 'error': _('Error:'), + 'hint': _('Hint:'), + 'important': _('Important:'), + 'note': _('Note:'), + 'tip': _('Tip:'), + 'warning': _('Warning!')} + + admonition = titles[block['admonitiontitle']] + hang = len(block['lines'][-1]) - len(block['lines'][-1].lstrip()) + + defindent = indent + hang * ' ' + text = ' '.join(map(str.strip, block['lines'])) + return '%s\n%s' % (indent + admonition, util.wrap(text, width=width, + initindent=defindent, + hangindent=defindent)) if block['type'] == 'margin': return '' if block['type'] == 'literal': @@ -363,6 +413,7 @@ blocks = splitparagraphs(blocks) blocks = updatefieldlists(blocks) blocks = addmargins(blocks) + blocks = findadmonitions(blocks) text = '\n'.join(formatblock(b, width) for b in blocks) if keep is None: return text @@ -389,4 +440,5 @@ blocks = debug(updatefieldlists, blocks) blocks = debug(findsections, blocks) blocks = debug(addmargins, blocks) + blocks = debug(findadmonitions, blocks) print '\n'.join(formatblock(b, 30) for b in blocks)
--- a/mercurial/pure/diffhelpers.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/pure/diffhelpers.py Fri Sep 24 19:47:50 2010 -0300 @@ -41,9 +41,9 @@ hline = l[:-1] c = hline[0] - if c == " " or c == "+": + if c in " +": b[-1] = hline[1:] - if c == " " or c == "-": + if c in " -": a[-1] = hline hunk[-1] = hline return 0
--- a/mercurial/templatefilters.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/templatefilters.py Fri Sep 24 19:47:50 2010 -0300 @@ -6,7 +6,7 @@ # GNU General Public License version 2 or any later version. import cgi, re, os, time, urllib -import util, encoding +import encoding, node, util def stringify(thing): '''turn nested template iterator into string.''' @@ -216,6 +216,7 @@ "person": person, "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S %1%2"), "rfc3339date": lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S%1:%2"), + "hex": node.hex, "short": lambda x: x[:12], "shortdate": util.shortdate, "stringify": stringify,
--- a/mercurial/url.py Fri Sep 24 02:17:54 2010 +0200 +++ b/mercurial/url.py Fri Sep 24 19:47:50 2010 -0300 @@ -486,9 +486,6 @@ _generic_start_transaction(self, h, req) return keepalive.HTTPHandler._start_transaction(self, h, req) - def __del__(self): - self.close_all() - if has_https: class BetterHTTPS(httplib.HTTPSConnection): send = keepalive.safesend
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/_darcs/inventory Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,2 @@ +[adda +test@test.com**20100923184058]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/_darcs/prefs/author Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,1 @@ +test@test.com \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/_darcs/prefs/binaries Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,59 @@ +# Binary file regexps: +\.png$ +\.PNG$ +\.gz$ +\.GZ$ +\.pdf$ +\.PDF$ +\.jpg$ +\.JPG$ +\.jpeg$ +\.JPEG$ +\.gif$ +\.GIF$ +\.tif$ +\.TIF$ +\.tiff$ +\.TIFF$ +\.pnm$ +\.PNM$ +\.pbm$ +\.PBM$ +\.pgm$ +\.PGM$ +\.ppm$ +\.PPM$ +\.bmp$ +\.BMP$ +\.mng$ +\.MNG$ +\.tar$ +\.TAR$ +\.bz2$ +\.BZ2$ +\.z$ +\.Z$ +\.zip$ +\.ZIP$ +\.jar$ +\.JAR$ +\.so$ +\.SO$ +\.a$ +\.A$ +\.tgz$ +\.TGZ$ +\.mpg$ +\.MPG$ +\.mpeg$ +\.MPEG$ +\.iso$ +\.ISO$ +\.exe$ +\.EXE$ +\.doc$ +\.DOC$ +\.elc$ +\.ELC$ +\.pyc$ +\.PYC$
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/_darcs/prefs/boring Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,49 @@ +# Boring file regexps: +\.hi$ +\.hi-boot$ +\.o-boot$ +\.o$ +\.o\.cmd$ +# *.ko files aren't boring by default because they might +# be Korean translations rather than kernel modules. +# \.ko$ +\.ko\.cmd$ +\.mod\.c$ +(^|/)\.tmp_versions($|/) +(^|/)CVS($|/) +\.cvsignore$ +^\.# +(^|/)RCS($|/) +,v$ +(^|/)\.svn($|/) +\.bzr$ +(^|/)SCCS($|/) +~$ +(^|/)_darcs($|/) +\.bak$ +\.BAK$ +\.orig$ +\.rej$ +(^|/)vssver\.scc$ +\.swp$ +(^|/)MT($|/) +(^|/)\{arch\}($|/) +(^|/).arch-ids($|/) +(^|/), +\.prof$ +(^|/)\.DS_Store$ +(^|/)BitKeeper($|/) +(^|/)ChangeSet($|/) +\.py[co]$ +\.elc$ +\.class$ +\# +(^|/)Thumbs\.db$ +(^|/)autom4te\.cache($|/) +(^|/)config\.(log|status)$ +^\.depend$ +(^|/)(tags|TAGS)$ +#(^|/)\.[^/] +(^|/|\.)core$ +\.(obj|a|exe|so|lo|la)$ +^\.darcs-temp-mail$
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/_darcs/pristine/a Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,1 @@ +a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/darcs/darcs1/a Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,1 @@ +a
--- a/tests/run-tests.py Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/run-tests.py Fri Sep 24 19:47:50 2010 -0300 @@ -503,14 +503,31 @@ def rematch(el, l): try: - # hack to deal with graphlog, which looks like bogus regexes - if el.startswith('|'): - el = '\\' + el - return re.match(el, l) + # ensure that the regex matches to the end of the string + return re.match(el + r'\Z', l) except re.error: # el is an invalid regex return False + def globmatch(el, l): + # The only supported special characters are * and ?. Escaping is + # supported. + i, n = 0, len(el) + res = '' + while i < n: + c = el[i] + i += 1 + if c == '\\' and el[i] in '*?\\': + res += el[i - 1:i + 1] + i += 1 + elif c == '*': + res += '.*' + elif c == '?': + res += '.' + else: + res += re.escape(c) + return rematch(res, l) + pos = -1 postout = [] ret = 0 @@ -530,10 +547,12 @@ if el == l: # perfect match (fast) postout.append(" " + l) - elif el and rematch(el, l): # fallback regex match - postout.append(" " + el) - else: # mismatch - let diff deal with it - postout.append(" " + l) + elif (el and + (el.endswith(" (re)\n") and rematch(el[:-6] + '\n', l) or + el.endswith(" (glob)\n") and globmatch(el[:-8] + '\n', l))): + postout.append(" " + el) # fallback regex/glob match + else: + postout.append(" " + l) # let diff deal with it if pos in after: postout += after.pop(pos)
--- a/tests/test-586.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-586.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,4 +1,5 @@ -a test for issue586 +Issue586: removing remote files after merge appears to corrupt the +dirstate $ hg init a $ cd a @@ -31,7 +32,8 @@ C b $ cd .. -a test for issue 1433, related to issue586 +Issue1433: Traceback after two unrelated pull, two move, a merge and +a commit (related to issue586) create test repos
--- a/tests/test-add.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-add.t Fri Sep 24 19:47:50 2010 -0300 @@ -20,7 +20,7 @@ $ hg st A a ? b - $ hg add b || echo "failed to add b" + $ hg add b $ hg st A a A b @@ -69,7 +69,7 @@ $ hg resolve -m a $ hg ci -m merge -issue683 +Issue683: peculiarity with hg revert of an removed then added file $ hg forget a $ hg add a
--- a/tests/test-addremove-similar.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-addremove-similar.t Fri Sep 24 19:47:50 2010 -0300 @@ -69,7 +69,7 @@ $ cd .. -issue 1527 +Issue1527: repeated addremove causes util.Abort $ hg init rep3; cd rep3 $ mkdir d
--- a/tests/test-annotate.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-annotate.t Fri Sep 24 19:47:50 2010 -0300 @@ -207,7 +207,7 @@ 1:2: a 1:3: a -test issue 589 +Issue589: "undelete" sequence leads to crash annotate was crashing when trying to --follow something
--- a/tests/test-archive.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-archive.t Fri Sep 24 19:47:50 2010 -0300 @@ -74,23 +74,23 @@ > % (os.environ['HGPORT'], node, archive)) > sys.stdout.write(f.read()) > EOF - $ python getarchive.py "$TIP" gz | gunzip | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" - test-archive-TIP/.hg_archival.txt - test-archive-TIP/bar - test-archive-TIP/baz/bletch - test-archive-TIP/foo - $ python getarchive.py "$TIP" bz2 | bunzip2 | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" - test-archive-TIP/.hg_archival.txt - test-archive-TIP/bar - test-archive-TIP/baz/bletch - test-archive-TIP/foo + $ python getarchive.py "$TIP" gz | gunzip | tar tf - 2>/dev/null + test-archive-2c0277f05ed4/.hg_archival.txt + test-archive-2c0277f05ed4/bar + test-archive-2c0277f05ed4/baz/bletch + test-archive-2c0277f05ed4/foo + $ python getarchive.py "$TIP" bz2 | bunzip2 | tar tf - 2>/dev/null + test-archive-2c0277f05ed4/.hg_archival.txt + test-archive-2c0277f05ed4/bar + test-archive-2c0277f05ed4/baz/bletch + test-archive-2c0277f05ed4/foo $ python getarchive.py "$TIP" zip > archive.zip - $ unzip -t archive.zip | sed "s/$QTIP/TIP/" + $ unzip -t archive.zip Archive: archive.zip - testing: test-archive-TIP/.hg_archival.txt OK - testing: test-archive-TIP/bar OK - testing: test-archive-TIP/baz/bletch OK - testing: test-archive-TIP/foo OK + testing: test-archive-2c0277f05ed4/.hg_archival.txt OK + testing: test-archive-2c0277f05ed4/bar OK + testing: test-archive-2c0277f05ed4/baz/bletch OK + testing: test-archive-2c0277f05ed4/foo OK No errors detected in compressed data of archive.zip. $ "$TESTDIR/killdaemons.py" @@ -109,11 +109,11 @@ test/foo $ hg archive -t tgz -p %b-%h test-%h.tar.gz - $ gzip -dc test-$QTIP.tar.gz | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" - test-TIP/.hg_archival.txt - test-TIP/bar - test-TIP/baz/bletch - test-TIP/foo + $ gzip -dc test-$QTIP.tar.gz | tar tf - 2>/dev/null + test-2c0277f05ed4/.hg_archival.txt + test-2c0277f05ed4/bar + test-2c0277f05ed4/baz/bletch + test-2c0277f05ed4/foo $ hg archive autodetected_test.tar $ tar tf autodetected_test.tar @@ -175,11 +175,11 @@ testing: test/foo OK No errors detected in compressed data of test.zip. - $ hg archive -t tar - | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" - test-TIP/.hg_archival.txt - test-TIP/bar - test-TIP/baz/bletch - test-TIP/foo + $ hg archive -t tar - | tar tf - 2>/dev/null + test-2c0277f05ed4/.hg_archival.txt + test-2c0277f05ed4/bar + test-2c0277f05ed4/baz/bletch + test-2c0277f05ed4/foo $ hg archive -r 0 -t tar rev-%r.tar $ if [ -f rev-0.tar ]; then @@ -221,15 +221,15 @@ [255] old file -- date clamped to 1980 - $ touch -d 1975-01-01 old + $ touch -t 197501010000 old $ hg add old $ hg commit -m old $ hg archive ../old.zip $ unzip -l ../old.zip Archive: ../old.zip - \s*Length.* - .*-----.* - .*147.*80.*00:00.*old/.hg_archival.txt - .*0.*80.*00:00.*old/old - .*-----.* - \s*147\s+2 files + \s*Length.* (re) + *-----* (glob) + *147*80*00:00*old/.hg_archival.txt (glob) + *0*80*00:00*old/old (glob) + *-----* (glob) + \s*147\s+2 files (re)
--- a/tests/test-audit-path.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-audit-path.t Fri Sep 24 19:47:50 2010 -0300 @@ -78,5 +78,5 @@ $ hg manifest -r4 /tmp/test $ hg update -Cr4 - abort: No such file or directory: .*/test-audit-path.t/target//tmp/test + abort: No such file or directory: */test-audit-path.t/target//tmp/test (glob) [255]
--- a/tests/test-bad-extension.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bad-extension.t Fri Sep 24 19:47:50 2010 -0300 @@ -8,8 +8,8 @@ $ echo "badext2 =" >> $HGRCPATH $ hg -q help help - \*\*\* failed to import extension badext from .*/badext.py: bit bucket overflow - \*\*\* failed to import extension badext2: No module named badext2 + \*\*\* failed to import extension badext from */badext.py: bit bucket overflow (glob) + *** failed to import extension badext2: No module named badext2 hg help [TOPIC] show help for a given topic or a help overview
--- a/tests/test-bad-pull.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bad-pull.t Fri Sep 24 19:47:50 2010 -0300 @@ -2,9 +2,6 @@ abort: error: Connection refused [255] - $ echo $? - 0 - $ test -d copy || echo copy: No such file or directory copy: No such file or directory @@ -27,10 +24,7 @@ $ sleep 1 $ hg clone http://localhost:$HGPORT/foo copy2 2>&1 - abort: HTTP Error 404: .* + abort: HTTP Error 404: * (glob) [255] - $ echo $? - 0 - $ kill $!
--- a/tests/test-bheads.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bheads.t Fri Sep 24 19:47:50 2010 -0300 @@ -133,34 +133,22 @@ $ heads -r 3 . no open branch heads found on branches c (started at 3) [1] - $ echo $? - 0 $ heads -r 2 . 7: Adding c branch (c) - $ echo $? - 0 ------- $ hg update -C 4 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ echo $? - 0 ------- $ heads -r 3 . 3: Adding b branch head 1 (b) - $ echo $? - 0 ------- $ heads -r 2 . 6: Merging b branch head 2 and b branch head 3 (b) 3: Adding b branch head 1 (b) - $ echo $? - 0 ------- $ heads -r 7 . no open branch heads found on branches b (started at 7) [1] - $ echo $? - 0 =======
--- a/tests/test-bisect.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bisect.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,4 +1,3 @@ - $ set -e $ hg init @@ -270,12 +269,15 @@ date: Thu Jan 01 00:00:01 1970 +0000 summary: msg 1 + $ false + [1] + $ hg bisect -r $ hg bisect -g tip - $ hg bisect -b tip || echo error + $ hg bisect -b tip abort: starting revisions are not directly related - error + [255] $ hg bisect -r $ hg bisect -g null @@ -285,7 +287,8 @@ 5cd978ea5149 -reproduce AssertionError, issue1228 and issue1182 +Issue1228: hg bisect crashes when you skip the last rev in bisection +Issue1182: hg bisect exception $ hg bisect -r $ hg bisect -b 4 @@ -346,9 +349,9 @@ test no action $ hg bisect -r - $ hg bisect || echo failure + $ hg bisect abort: cannot bisect (no known good revisions) - failure + [255] reproduce AssertionError, issue1445
--- a/tests/test-bookmarks-rebase.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bookmarks-rebase.t Fri Sep 24 19:47:50 2010 -0300 @@ -37,7 +37,7 @@ rebase $ hg rebase -s two -d one - saved backup bundle to .* + saved backup bundle to * (glob) $ hg log changeset: 3:9163974d1cb5
--- a/tests/test-bookmarks-strip.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bookmarks-strip.t Fri Sep 24 19:47:50 2010 -0300 @@ -50,7 +50,7 @@ strip to revision 1 $ hg strip 1 - saved backup bundle to .* + saved backup bundle to * (glob) list bookmarks @@ -58,3 +58,30 @@ * test 1:8cf31af87a2b * test2 1:8cf31af87a2b +immediate rollback and reentrancy issue + + $ echo "mq=!" >> $HGRCPATH + $ hg init repo + $ cd repo + $ echo a > a + $ hg ci -Am adda + adding a + $ echo b > b + $ hg ci -Am addb + adding b + $ hg bookmarks markb + $ hg rollback + rolling back to revision 0 (undo commit) + +are you there? + + $ hg bookmarks + no bookmarks set + +can you be added again? + + $ hg bookmarks markb + $ hg bookmarks + * markb 0:07f494440405 + $ cd .. +
--- a/tests/test-bundle-r.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bundle-r.t Fri Sep 24 19:47:50 2010 -0300 @@ -232,7 +232,8 @@ $ hg -R test bundle --base 3 -r 3 -r 3 test-bundle-cset-3.hg 1 changesets found -issue1910 +Issue1910: 'hg bundle --base $head' does not exclude $head from +result $ hg -R test bundle --base 7 test-bundle-cset-7.hg 4 changesets found
--- a/tests/test-bundle-vs-outgoing.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-bundle-vs-outgoing.t Fri Sep 24 19:47:50 2010 -0300 @@ -27,8 +27,6 @@ > hg -q ci -m"rev $revno" > } - $ set -e - setup test repo1 $ hg init repo1
--- a/tests/test-churn.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-churn.t Fri Sep 24 19:47:50 2010 -0300 @@ -126,7 +126,7 @@ $ cd .. -issue 833: ZeroDivisionError +Issue833: ZeroDivisionError $ hg init issue-833 $ cd issue-833
--- a/tests/test-clone.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-clone.t Fri Sep 24 19:47:50 2010 -0300 @@ -80,7 +80,7 @@ $ hg clone -q -U --config 'paths.foobar=a#0' foobar f $ hg -R f showconfig paths.default - .*/a#0 + */a#0 (glob) Use --pull: @@ -418,7 +418,8 @@ $ rm -r ua -Testing issue2267: +Issue2267: Error in 1.6 hg.py: TypeError: 'NoneType' object is not +iterable in addbranchrevs() $ cat <<EOF > simpleclone.py > from mercurial import ui, hg
--- a/tests/test-command-template.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-command-template.t Fri Sep 24 19:47:50 2010 -0300 @@ -548,7 +548,7 @@ [1e4e1b8f71e0] -Issue 2130: +Issue2130: xml output for 'hg heads' is malformed $ hg heads --style changelog 2020-01-01 test <test> @@ -1298,7 +1298,8 @@ $ cd .. -Style path expansion (issue1948): +Style path expansion: issue1948 - ui.style option doesn't work on OSX +if it is a relative path $ mkdir -p home/styles
--- a/tests/test-commit.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-commit.t Fri Sep 24 19:47:50 2010 -0300 @@ -204,6 +204,8 @@ $ cd .. $ cd .. +Issue1049: Hg permits partial commit of merge without warning + $ cd .. $ hg init issue1049 $ cd issue1049
--- a/tests/test-committer.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-committer.t Fri Sep 24 19:47:50 2010 -0300 @@ -53,7 +53,7 @@ [255] $ rm .hg/hgrc $ hg commit -m commit-1 2>&1 - No username found, using '[^']*' instead + No username found, using '[^']*' instead (re) $ echo space > asdf $ hg commit -u ' ' -m commit-1
--- a/tests/test-convert-darcs Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-convert-darcs Fri Sep 24 19:47:50 2010 -0300 @@ -17,6 +17,9 @@ exit 80 fi +echo '% try converting darcs1 repository' +hg convert -s darcs "$TESTDIR/darcs/darcs1" 2>&1 | grep darcs-1.0 + echo % initialize darcs repo mkdir darcs-repo cd darcs-repo
--- a/tests/test-convert-darcs.out Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-convert-darcs.out Fri Sep 24 19:47:50 2010 -0300 @@ -1,3 +1,5 @@ +% try converting darcs1 repository +darcs-1.0 repository format is unsupported, please upgrade % initialize darcs repo Finished recording patch 'p0' % branch and update
--- a/tests/test-convert-svn-branches Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo "graphlog =" >> $HGRCPATH - -svnadmin create svn-repo -cat "$TESTDIR/svn/branches.svndump" | svnadmin load svn-repo > /dev/null - -echo % convert trunk and branches -cat >branchmap <<EOF -old3 newbranch -EOF -hg convert --branchmap=branchmap --datesort -r 10 svn-repo A-hg - -echo % convert again -hg convert --branchmap=branchmap --datesort svn-repo A-hg - -cd A-hg -hg glog --template 'branch={branches} {rev} {desc|firstline} files: {files}\n' -hg branches | sed 's/:.*/:/' -hg tags -q -cd .. - -echo '% test hg failing to call itself' -HG=foobar hg convert svn-repo B-hg 2>&1 | grep itself -
--- a/tests/test-convert-svn-branches.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -% convert trunk and branches -initializing destination A-hg repository -scanning source... -sorting... -converting... -10 init projA -9 hello -8 branch trunk, remove c and dir -7 change a -6 change b -5 move and update c -4 move and update c -3 change b again -2 move to old2 -1 move back to old -0 last change to a -% convert again -scanning source... -sorting... -converting... -0 branch trunk@1 into old3 -o branch=newbranch 11 branch trunk@1 into old3 files: -| -| o branch= 10 last change to a files: a -| | -| | o branch=old 9 move back to old files: -| | | -| | o branch=old2 8 move to old2 files: -| | | -| | o branch=old 7 change b again files: b -| | | -| o | branch= 6 move and update c files: b -| | | -| | o branch=old 5 move and update c files: c -| | | -| | o branch=old 4 change b files: b -| | | -| o | branch= 3 change a files: a -| | | -| | o branch=old 2 branch trunk, remove c and dir files: c -| |/ -| o branch= 1 hello files: a b c dir/e -|/ -o branch= 0 init projA files: - -newbranch 11: -default 10: -old 9: -old2 8: -tip -% test hg failing to call itself -abort: Mercurial failed to run itself, check hg executable is in PATH
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-branches.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,86 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/branches.svndump" + +Convert trunk and branches + + $ cat > branchmap <<EOF + > old3 newbranch + > EOF + $ hg convert --branchmap=branchmap --datesort -r 10 svn-repo A-hg + initializing destination A-hg repository + scanning source... + sorting... + converting... + 10 init projA + 9 hello + 8 branch trunk, remove c and dir + 7 change a + 6 change b + 5 move and update c + 4 move and update c + 3 change b again + 2 move to old2 + 1 move back to old + 0 last change to a + +Convert again + + $ hg convert --branchmap=branchmap --datesort svn-repo A-hg + scanning source... + sorting... + converting... + 0 branch trunk@1 into old3 + + $ cd A-hg + $ hg glog --template 'branch={branches} {rev} {desc|firstline} files: {files}\n' + o branch=newbranch 11 branch trunk@1 into old3 files: + | + | o branch= 10 last change to a files: a + | | + | | o branch=old 9 move back to old files: + | | | + | | o branch=old2 8 move to old2 files: + | | | + | | o branch=old 7 change b again files: b + | | | + | o | branch= 6 move and update c files: b + | | | + | | o branch=old 5 move and update c files: c + | | | + | | o branch=old 4 change b files: b + | | | + | o | branch= 3 change a files: a + | | | + | | o branch=old 2 branch trunk, remove c and dir files: c + | |/ + | o branch= 1 hello files: a b c dir/e + |/ + o branch= 0 init projA files: + + + $ hg branches + newbranch 11:08fca3ff8634 + default 10:098988aa63ba + old 9:b308f345079b + old2 8:49f2336c7b8b (inactive) + $ hg tags -q + tip + $ cd .. + +Test hg failing to call itself + + $ HG=foobar hg convert svn-repo B-hg + * (glob) + initializing destination B-hg repository + abort: Mercurial failed to run itself, check hg executable is in PATH + [255] +
--- a/tests/test-convert-svn-encoding Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH - -svnadmin create svn-repo -cat "$TESTDIR/svn/encoding.svndump" | svnadmin load svn-repo > /dev/null - -echo '% convert while testing all possible outputs' -hg --debug convert svn-repo A-hg > /dev/null -cd A-hg -hg up -echo '% check tags are in UTF-8' -python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])" -cd ..
--- a/tests/test-convert-svn-encoding.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -% convert while testing all possible outputs -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% check tags are in UTF-8 -'221c3fdaf24df5f14c0a64c597581e2eacfb47bb branch\xc3\xa9e\n' -'7a40952c2db29cf00d9e31df3749e98d8a4bdcbf branch\xc3\xa9\n'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-encoding.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,135 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/encoding.svndump" + +Convert while testing all possible outputs + + $ hg --debug convert svn-repo A-hg + initializing destination A-hg repository + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + run hg sink pre-conversion action + scanning source... + found trunk at 'trunk' + found tags at 'tags' + found branches at 'branches' + found branch branché at 5 + found branch branchée at 6 + scanning: 1 revisions + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + fetching revision log for "/trunk" from 4 to 0 + parsing revision 4 (2 changes) + parsing revision 3 (4 changes) + parsing revision 2 (3 changes) + parsing revision 1 (3 changes) + no copyfrom path, don't know what to do. + '/branches' is not under '/trunk', ignoring + '/tags' is not under '/trunk', ignoring + scanning: 2 revisions + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9 (glob) + fetching revision log for "/branches/branché" from 5 to 0 + parsing revision 5 (1 changes) + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9 (glob) + found parent of branch /branches/branché at 4: /trunk + scanning: 3 revisions + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e (glob) + fetching revision log for "/branches/branchée" from 6 to 0 + parsing revision 6 (1 changes) + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e (glob) + found parent of branch /branches/branchée at 5: /branches/branché + scanning: 4 revisions + scanning: 5 revisions + scanning: 6 revisions + sorting... + converting... + 5 init projA + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@1 + converting: 0/6 revisions (0.00%) + 4 hello + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@2 + converting: 1/6 revisions (16.67%) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + scanning paths: /trunk/à 0/3 (0.00%) + scanning paths: /trunk/à/é 1/3 (33.33%) + scanning paths: /trunk/é 2/3 (66.67%) + à/é + getting files: à/é 1/2 (50.00%) + é + getting files: é 2/2 (100.00%) + 3 copy files + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@3 + converting: 2/6 revisions (33.33%) + scanning paths: /trunk/à 0/4 (0.00%) + gone from -1 + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + scanning paths: /trunk/è 1/4 (25.00%) + copied to è from é@2 + scanning paths: /trunk/é 2/4 (50.00%) + gone from -1 + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + scanning paths: /trunk/ù 3/4 (75.00%) + mark /trunk/ù came from à:2 + à/é + getting files: à/é 1/4 (25.00%) + è + getting files: è 2/4 (50.00%) + è: copy é:6b67ccefd5ce6de77e7ead4f5292843a0255329f + é + getting files: é 3/4 (75.00%) + ù/é + getting files: ù/é 4/4 (100.00%) + ù/é: copy à/é:a9092a3d84a37b9993b5c73576f6de29b7ea50f6 + 2 remove files + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@4 + converting: 3/6 revisions (50.00%) + scanning paths: /trunk/è 0/2 (0.00%) + gone from -1 + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + scanning paths: /trunk/ù 1/2 (50.00%) + gone from -1 + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/trunk (glob) + è + getting files: è 1/2 (50.00%) + ù/é + getting files: ù/é 2/2 (100.00%) + 1 branch to branch? + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/branches/branch?@5 + converting: 4/6 revisions (66.67%) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9 (glob) + scanning paths: /branches/branché 0/1 (0.00%) + 0 branch to branch?e + source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/branches/branch?e@6 + converting: 5/6 revisions (83.33%) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e (glob) + scanning paths: /branches/branchée 0/1 (0.00%) + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo (glob) + reparent to file://*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e (glob) + updating tags + .hgtags + run hg sink post-conversion action + $ cd A-hg + $ hg up + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +Check tags are in UTF-8 + + $ python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])" + '221c3fdaf24df5f14c0a64c597581e2eacfb47bb branch\xc3\xa9e\n' + '7a40952c2db29cf00d9e31df3749e98d8a4bdcbf branch\xc3\xa9\n' + + $ cd ..
--- a/tests/test-convert-svn-move Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -fix_path() -{ - tr '\\' / -} - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo "hgext.graphlog =" >> $HGRCPATH - -svnadmin create svn-repo -cat "$TESTDIR/svn/move.svndump" | svnadmin load svn-repo > /dev/null - -svnpath=`pwd | fix_path` -# SVN wants all paths to start with a slash. Unfortunately, -# Windows ones don't. Handle that. -expr "$svnpath" : "\/" > /dev/null -if [ $? -ne 0 ]; then - svnpath="/$svnpath" -fi -svnurl="file://$svnpath/svn-repo" - -echo % convert trunk and branches -hg convert --datesort "$svnurl"/subproject A-hg - -cd A-hg -hg glog --template '{rev} {desc|firstline} files: {files}\n' -echo '% check move copy records' -hg st --rev 12:13 --copies -echo '% check branches' -hg branches | sed 's/:.*/:/' -cd .. - -mkdir test-replace -cd test-replace -svnadmin create svn-repo -cat "$TESTDIR/svn/replace.svndump" | svnadmin load svn-repo > /dev/null - -echo '% convert files being replaced by directories' -hg convert svn-repo hg-repo -cd hg-repo -echo '% manifest before' -hg -v manifest -r 1 -echo '% manifest after clobber1' -hg -v manifest -r 2 -echo '% manifest after clobber2' -hg -v manifest -r 3 -echo '% try updating' -hg up -qC default -cd .. - -echo '% test convert progress bar' - -echo "progress=" >> $HGRCPATH -echo "[progress]" >> $HGRCPATH -echo "assume-tty=1" >> $HGRCPATH -echo "delay=0" >> $HGRCPATH -echo "refresh=0" >> $HGRCPATH - -cat > filtercr.py <<EOF -import sys, re -for line in sys.stdin: - line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line) - sys.stdout.write(line) -EOF - -hg convert svn-repo hg-progress 2>&1 | python filtercr.py
--- a/tests/test-convert-svn-move.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -% convert trunk and branches -initializing destination A-hg repository -scanning source... -sorting... -converting... -13 createtrunk -12 moved1 -11 moved1 -10 moved2 -9 changeb and rm d2 -8 changeb and rm d2 -7 moved1again -6 moved1again -5 copyfilefrompast -4 copydirfrompast -3 add d3 -2 copy dir and remove subdir -1 add d4old -0 rename d4old into d4new -o 13 rename d4old into d4new files: d4new/g d4old/g -| -o 12 add d4old files: d4old/g -| -o 11 copy dir and remove subdir files: d3/d31/e d4/d31/e d4/f -| -o 10 add d3 files: d3/d31/e d3/f -| -o 9 copydirfrompast files: d2/d -| -o 8 copyfilefrompast files: d -| -o 7 moved1again files: d1/b d1/c -| -| o 6 moved1again files: -| | -o | 5 changeb and rm d2 files: d1/b d2/d -| | -| o 4 changeb and rm d2 files: b -| | -o | 3 moved2 files: d2/d -| | -o | 2 moved1 files: d1/b d1/c -| | -| o 1 moved1 files: b c -| -o 0 createtrunk files: - -% check move copy records -A d4new/g - d4old/g -R d4old/g -% check branches -default 13: -d1 6: -% convert files being replaced by directories -initializing destination hg-repo repository -scanning source... -sorting... -converting... -3 initial -2 clobber symlink -1 clobber1 -0 clobber2 -% manifest before -644 a -644 d/b -644 @ dlink -644 @ dlink2 -644 dlink3 -% manifest after clobber1 -644 a/b -644 d/b -644 dlink/b -644 @ dlink2 -644 dlink3 -% manifest after clobber2 -644 a/b -644 d/b -644 dlink/b -644 @ dlink2 -644 @ dlink3 -% try updating -% test convert progress bar - -scanning [ <=> ] 1 -scanning [ <=> ] 2 -scanning [ <=> ] 3 -scanning [ <=> ] 4 - -converting [ ] 0/4 -getting files [==========> ] 1/5 -getting files [======================> ] 2/5 -getting files [==================================> ] 3/5 -getting files [==============================================> ] 4/5 -getting files [==========================================================>] 5/5 - -converting [==============> ] 1/4 -scanning paths [ ] 0/1 - -getting files [==========================================================>] 1/1 - -converting [==============================> ] 2/4 -scanning paths [ ] 0/2 -scanning paths [============================> ] 1/2 - -getting files [=============> ] 1/4 -getting files [============================> ] 2/4 -getting files [===========================================> ] 3/4 -getting files [==========================================================>] 4/4 - -converting [=============================================> ] 3/4 -scanning paths [ ] 0/1 - -getting files [==========================================================>] 1/1 - -initializing destination hg-progress repository -scanning source... -sorting... -converting... -3 initial -2 clobber symlink -1 clobber1 -0 clobber2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-move.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,202 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ fixpath() + > { + > tr '\\' / + > } + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/move.svndump" + $ svnpath=`pwd | fixpath` + +SVN wants all paths to start with a slash. Unfortunately, +Windows ones don't. Handle that. + + $ expr "$svnpath" : "\/" > /dev/null + > if [ $? -ne 0 ]; then + > svnpath="/$svnpath" + > fi + > svnurl="file://$svnpath/svn-repo" + +Convert trunk and branches + + $ hg convert --datesort "$svnurl"/subproject A-hg + initializing destination A-hg repository + scanning source... + sorting... + converting... + 13 createtrunk + 12 moved1 + 11 moved1 + 10 moved2 + 9 changeb and rm d2 + 8 changeb and rm d2 + 7 moved1again + 6 moved1again + 5 copyfilefrompast + 4 copydirfrompast + 3 add d3 + 2 copy dir and remove subdir + 1 add d4old + 0 rename d4old into d4new + + $ cd A-hg + $ hg glog --template '{rev} {desc|firstline} files: {files}\n' + o 13 rename d4old into d4new files: d4new/g d4old/g + | + o 12 add d4old files: d4old/g + | + o 11 copy dir and remove subdir files: d3/d31/e d4/d31/e d4/f + | + o 10 add d3 files: d3/d31/e d3/f + | + o 9 copydirfrompast files: d2/d + | + o 8 copyfilefrompast files: d + | + o 7 moved1again files: d1/b d1/c + | + | o 6 moved1again files: + | | + o | 5 changeb and rm d2 files: d1/b d2/d + | | + | o 4 changeb and rm d2 files: b + | | + o | 3 moved2 files: d2/d + | | + o | 2 moved1 files: d1/b d1/c + | | + | o 1 moved1 files: b c + | + o 0 createtrunk files: + + +Check move copy records + + $ hg st --rev 12:13 --copies + A d4new/g + d4old/g + R d4old/g + +Check branches + + $ hg branches + default 13:* (glob) + d1 6:* (glob) + $ cd .. + + $ mkdir test-replace + $ cd test-replace + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/replace.svndump" + +Convert files being replaced by directories + + $ hg convert svn-repo hg-repo + initializing destination hg-repo repository + scanning source... + sorting... + converting... + 3 initial + 2 clobber symlink + 1 clobber1 + 0 clobber2 + + $ cd hg-repo + +Manifest before + + $ hg -v manifest -r 1 + 644 a + 644 d/b + 644 @ dlink + 644 @ dlink2 + 644 dlink3 + +Manifest after clobber1 + + $ hg -v manifest -r 2 + 644 a/b + 644 d/b + 644 dlink/b + 644 @ dlink2 + 644 dlink3 + +Manifest after clobber2 + + $ hg -v manifest -r 3 + 644 a/b + 644 d/b + 644 dlink/b + 644 @ dlink2 + 644 @ dlink3 + +Try updating + + $ hg up -qC default + $ cd .. + +Test convert progress bar' + + $ cat >> $HGRCPATH <<EOF + > [extensions] + > progress = + > [progress] + > assume-tty = 1 + > delay = 0 + > refresh = 0 + > EOF + $ cat > filtercr.py <<EOF + > import sys, re + > for line in sys.stdin: + > line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line) + > sys.stdout.write(line) + > EOF + + $ hg convert svn-repo hg-progress 2>&1 | python filtercr.py + + scanning [ <=> ] 1 + scanning [ <=> ] 2 + scanning [ <=> ] 3 + scanning [ <=> ] 4 + + converting [ ] 0/4 + getting files [==========> ] 1/5 + getting files [======================> ] 2/5 + getting files [==================================> ] 3/5 + getting files [==============================================> ] 4/5 + getting files [==========================================================>] 5/5 + + converting [==============> ] 1/4 + scanning paths [ ] 0/1 + + getting files [==========================================================>] 1/1 + + converting [==============================> ] 2/4 + scanning paths [ ] 0/2 + scanning paths [============================> ] 1/2 + + getting files [=============> ] 1/4 + getting files [============================> ] 2/4 + getting files [===========================================> ] 3/4 + getting files [==========================================================>] 4/4 + + converting [=============================================> ] 3/4 + scanning paths [ ] 0/1 + + getting files [==========================================================>] 1/1 + + initializing destination hg-progress repository + scanning source... + sorting... + converting... + 3 initial + 2 clobber symlink + 1 clobber1 + 0 clobber2
--- a/tests/test-convert-svn-sink Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings no-outer-repo || exit 80 - -fixpath() -{ - tr '\\' / -} - -svnupanddisplay() -{ - ( - cd $1; - svn up; - svn st -v | fixpath | sed 's/ */ /g' - limit='' - if [ $2 -gt 0 ]; then - limit="--limit=$2" - fi - svn log --xml -v $limit | fixpath | sed 's,<date>.*,<date/>,' | grep -v 'kind="' - ) -} - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH - -hg init a - -echo a > a/a -mkdir -p a/d1/d2 -echo b > a/d1/d2/b -ln -s a/missing a/link -echo % add -hg --cwd a ci -d '0 0' -A -m 'add a file' - -"$TESTDIR/svn-safe-append.py" a a/a -echo % modify -hg --cwd a ci -d '1 0' -m 'modify a file' -hg --cwd a tip -q - -hg convert -d svn a -svnupanddisplay a-hg-wc 2 -ls a a-hg-wc -cmp a/a a-hg-wc/a && echo same || echo different - -hg --cwd a mv a b -hg --cwd a mv link newlink -echo % rename -hg --cwd a ci -d '2 0' -m 'rename a file' -hg --cwd a tip -q - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 -ls a a-hg-wc - -hg --cwd a cp b c -echo % copy -hg --cwd a ci -d '3 0' -m 'copy a file' -hg --cwd a tip -q - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 -ls a a-hg-wc - -hg --cwd a rm b -echo % remove -hg --cwd a ci -d '4 0' -m 'remove a file' -hg --cwd a tip -q - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 -ls a a-hg-wc - -chmod +x a/c -echo % executable -hg --cwd a ci -d '5 0' -m 'make a file executable' -hg --cwd a tip -q - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 -test -x a-hg-wc/c && echo executable || echo not executable - -echo % executable in new directory - -rm -rf a a-hg a-hg-wc -hg init a - -mkdir a/d1 -echo a > a/d1/a -chmod +x a/d1/a -hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory' - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 -test -x a-hg-wc/d1/a && echo executable || echo not executable - -echo % copy to new directory - -mkdir a/d2 -hg --cwd a cp d1/a d2/a -hg --cwd a ci -d '1 0' -A -m 'copy file to new directory' - -hg convert -d svn a -svnupanddisplay a-hg-wc 1 - -echo % branchy history - -hg init b -echo base > b/b -hg --cwd b ci -d '0 0' -Ambase - -"$TESTDIR/svn-safe-append.py" left-1 b/b -echo left-1 > b/left-1 -hg --cwd b ci -d '1 0' -Amleft-1 - -"$TESTDIR/svn-safe-append.py" left-2 b/b -echo left-2 > b/left-2 -hg --cwd b ci -d '2 0' -Amleft-2 - -hg --cwd b up 0 - -"$TESTDIR/svn-safe-append.py" right-1 b/b -echo right-1 > b/right-1 -hg --cwd b ci -d '3 0' -Amright-1 - -"$TESTDIR/svn-safe-append.py" right-2 b/b -echo right-2 > b/right-2 -hg --cwd b ci -d '4 0' -Amright-2 - -hg --cwd b up -C 2 -hg --cwd b merge -hg --cwd b revert -r 2 b -hg resolve -m b -hg --cwd b ci -d '5 0' -m 'merge' - -hg convert -d svn b -echo % expect 4 changes -svnupanddisplay b-hg-wc 0 - -echo % tags are not supported, but must not break conversion - -rm -rf a a-hg a-hg-wc -hg init a -echo a > a/a -hg --cwd a ci -d '0 0' -A -m 'Add file a' -hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0 - -hg convert -d svn a -svnupanddisplay a-hg-wc 2 -rm -rf a a-hg a-hg-wc
--- a/tests/test-convert-svn-sink.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,397 +0,0 @@ -% add -adding a -adding d1/d2/b -adding link -% modify -1:8231f652da37 -assuming destination a-hg -initializing svn repository 'a-hg' -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -1 add a file -0 modify a file -At revision 2. - 2 2 test . - 2 2 test a - 2 1 test d1 - 2 1 test d1/d2 - 2 1 test d1/d2/b - 2 1 test link -<?xml version="1.0"?> -<log> -<logentry - revision="2"> -<author>test</author> -<date/> -<paths> -<path - action="M">/a</path> -</paths> -<msg>modify a file</msg> -</logentry> -<logentry - revision="1"> -<author>test</author> -<date/> -<paths> -<path - action="A">/a</path> -<path - action="A">/d1</path> -<path - action="A">/d1/d2</path> -<path - action="A">/d1/d2/b</path> -<path - action="A">/link</path> -</paths> -<msg>add a file</msg> -</logentry> -</log> -a: -a -d1 -link - -a-hg-wc: -a -d1 -link -same -% rename -2:a67e26ccec09 -assuming destination a-hg -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 rename a file -At revision 3. - 3 3 test . - 3 3 test b - 3 1 test d1 - 3 1 test d1/d2 - 3 1 test d1/d2/b - 3 3 test newlink -<?xml version="1.0"?> -<log> -<logentry - revision="3"> -<author>test</author> -<date/> -<paths> -<path - action="D">/a</path> -<path - copyfrom-path="/a" - copyfrom-rev="2" - action="A">/b</path> -<path - copyfrom-path="/link" - copyfrom-rev="2" - action="A">/newlink</path> -<path - action="D">/link</path> -</paths> -<msg>rename a file</msg> -</logentry> -</log> -a: -b -d1 -newlink - -a-hg-wc: -b -d1 -newlink -% copy -3:0cf087b9ab02 -assuming destination a-hg -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 copy a file -At revision 4. - 4 4 test . - 4 3 test b - 4 4 test c - 4 1 test d1 - 4 1 test d1/d2 - 4 1 test d1/d2/b - 4 3 test newlink -<?xml version="1.0"?> -<log> -<logentry - revision="4"> -<author>test</author> -<date/> -<paths> -<path - copyfrom-path="/b" - copyfrom-rev="3" - action="A">/c</path> -</paths> -<msg>copy a file</msg> -</logentry> -</log> -a: -b -c -d1 -newlink - -a-hg-wc: -b -c -d1 -newlink -% remove -4:07b2e34a5b17 -assuming destination a-hg -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 remove a file -At revision 5. - 5 5 test . - 5 4 test c - 5 1 test d1 - 5 1 test d1/d2 - 5 1 test d1/d2/b - 5 3 test newlink -<?xml version="1.0"?> -<log> -<logentry - revision="5"> -<author>test</author> -<date/> -<paths> -<path - action="D">/b</path> -</paths> -<msg>remove a file</msg> -</logentry> -</log> -a: -c -d1 -newlink - -a-hg-wc: -c -d1 -newlink -% executable -5:31093672760b -assuming destination a-hg -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 make a file executable -At revision 6. - 6 6 test . - 6 6 test c - 6 1 test d1 - 6 1 test d1/d2 - 6 1 test d1/d2/b - 6 3 test newlink -<?xml version="1.0"?> -<log> -<logentry - revision="6"> -<author>test</author> -<date/> -<paths> -<path - action="M">/c</path> -</paths> -<msg>make a file executable</msg> -</logentry> -</log> -executable -% executable in new directory -adding d1/a -assuming destination a-hg -initializing svn repository 'a-hg' -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 add executable file in new directory -At revision 1. - 1 1 test . - 1 1 test d1 - 1 1 test d1/a -<?xml version="1.0"?> -<log> -<logentry - revision="1"> -<author>test</author> -<date/> -<paths> -<path - action="A">/d1</path> -<path - action="A">/d1/a</path> -</paths> -<msg>add executable file in new directory</msg> -</logentry> -</log> -executable -% copy to new directory -assuming destination a-hg -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -0 copy file to new directory -At revision 2. - 2 2 test . - 2 1 test d1 - 2 1 test d1/a - 2 2 test d2 - 2 2 test d2/a -<?xml version="1.0"?> -<log> -<logentry - revision="2"> -<author>test</author> -<date/> -<paths> -<path - action="A">/d2</path> -<path - copyfrom-path="/d1/a" - copyfrom-rev="1" - action="A">/d2/a</path> -</paths> -<msg>copy file to new directory</msg> -</logentry> -</log> -% branchy history -adding b -adding left-1 -adding left-2 -1 files updated, 0 files merged, 2 files removed, 0 files unresolved -adding right-1 -created new head -adding right-2 -3 files updated, 0 files merged, 2 files removed, 0 files unresolved -merging b -warning: conflicts during merge. -merging b failed! -2 files updated, 0 files merged, 0 files removed, 1 files unresolved -use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon -assuming destination b-hg -initializing svn repository 'b-hg' -initializing svn working copy 'b-hg-wc' -scanning source... -sorting... -converting... -5 base -4 left-1 -3 left-2 -2 right-1 -1 right-2 -0 merge -% expect 4 changes -At revision 4. - 4 4 test . - 4 3 test b - 4 2 test left-1 - 4 3 test left-2 - 4 4 test right-1 - 4 4 test right-2 -<?xml version="1.0"?> -<log> -<logentry - revision="4"> -<author>test</author> -<date/> -<paths> -<path - action="A">/right-1</path> -<path - action="A">/right-2</path> -</paths> -<msg>merge</msg> -</logentry> -<logentry - revision="3"> -<author>test</author> -<date/> -<paths> -<path - action="M">/b</path> -<path - action="A">/left-2</path> -</paths> -<msg>left-2</msg> -</logentry> -<logentry - revision="2"> -<author>test</author> -<date/> -<paths> -<path - action="M">/b</path> -<path - action="A">/left-1</path> -</paths> -<msg>left-1</msg> -</logentry> -<logentry - revision="1"> -<author>test</author> -<date/> -<paths> -<path - action="A">/b</path> -</paths> -<msg>base</msg> -</logentry> -</log> -% tags are not supported, but must not break conversion -adding a -assuming destination a-hg -initializing svn repository 'a-hg' -initializing svn working copy 'a-hg-wc' -scanning source... -sorting... -converting... -1 Add file a -0 Tagged as v1.0 -writing Subversion tags is not yet implemented -At revision 2. - 2 2 test . - 2 1 test a - 2 2 test .hgtags -<?xml version="1.0"?> -<log> -<logentry - revision="2"> -<author>test</author> -<date/> -<paths> -<path - action="A">/.hgtags</path> -</paths> -<msg>Tagged as v1.0</msg> -</logentry> -<logentry - revision="1"> -<author>test</author> -<date/> -<paths> -<path - action="A">/a</path> -</paths> -<msg>Add file a</msg> -</logentry> -</log>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-sink.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,548 @@ + + $ "$TESTDIR/hghave" svn svn-bindings no-outer-repo || exit 80 + + $ fixpath() + > { + > tr '\\' / + > } + $ svnupanddisplay() + > { + > ( + > cd $1; + > svn up; + > svn st -v | fixpath | sed 's/ */ /g' + > limit='' + > if [ $2 -gt 0 ]; then + > limit="--limit=$2" + > fi + > svn log --xml -v $limit \ + > | fixpath \ + > | sed 's,<date>.*,<date/>,' \ + > | grep -v 'kind="' + > ) + > } + + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ hg init a + +Add + + $ echo a > a/a + $ mkdir -p a/d1/d2 + $ echo b > a/d1/d2/b + $ ln -s a/missing a/link + $ hg --cwd a ci -d '0 0' -A -m 'add a file' + adding a + adding d1/d2/b + adding link + +Modify + + $ "$TESTDIR/svn-safe-append.py" a a/a + $ hg --cwd a ci -d '1 0' -m 'modify a file' + $ hg --cwd a tip -q + 1:8231f652da37 + + $ hg convert -d svn a + assuming destination a-hg + initializing svn repository 'a-hg' + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 1 add a file + 0 modify a file + $ svnupanddisplay a-hg-wc 2 + At revision 2. + 2 2 test . + 2 2 test a + 2 1 test d1 + 2 1 test d1/d2 + 2 1 test d1/d2/b + 2 1 test link + <?xml version="1.0"?> + <log> + <logentry + revision="2"> + <author>test</author> + <date/> + <paths> + <path + action="M">/a</path> + </paths> + <msg>modify a file</msg> + </logentry> + <logentry + revision="1"> + <author>test</author> + <date/> + <paths> + <path + action="A">/a</path> + <path + action="A">/d1</path> + <path + action="A">/d1/d2</path> + <path + action="A">/d1/d2/b</path> + <path + action="A">/link</path> + </paths> + <msg>add a file</msg> + </logentry> + </log> + $ ls a a-hg-wc + a: + a + d1 + link + + a-hg-wc: + a + d1 + link + $ cmp a/a a-hg-wc/a + +Rename + + $ hg --cwd a mv a b + $ hg --cwd a mv link newlink + + $ hg --cwd a ci -d '2 0' -m 'rename a file' + $ hg --cwd a tip -q + 2:a67e26ccec09 + + $ hg convert -d svn a + assuming destination a-hg + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 rename a file + $ svnupanddisplay a-hg-wc 1 + At revision 3. + 3 3 test . + 3 3 test b + 3 1 test d1 + 3 1 test d1/d2 + 3 1 test d1/d2/b + 3 3 test newlink + <?xml version="1.0"?> + <log> + <logentry + revision="3"> + <author>test</author> + <date/> + <paths> + <path + action="D">/a</path> + <path + copyfrom-path="/a" + copyfrom-rev="2" + action="A">/b</path> + <path + copyfrom-path="/link" + copyfrom-rev="2" + action="A">/newlink</path> + <path + action="D">/link</path> + </paths> + <msg>rename a file</msg> + </logentry> + </log> + $ ls a a-hg-wc + a: + b + d1 + newlink + + a-hg-wc: + b + d1 + newlink + +Copy + + $ hg --cwd a cp b c + + $ hg --cwd a ci -d '3 0' -m 'copy a file' + $ hg --cwd a tip -q + 3:0cf087b9ab02 + + $ hg convert -d svn a + assuming destination a-hg + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 copy a file + $ svnupanddisplay a-hg-wc 1 + At revision 4. + 4 4 test . + 4 3 test b + 4 4 test c + 4 1 test d1 + 4 1 test d1/d2 + 4 1 test d1/d2/b + 4 3 test newlink + <?xml version="1.0"?> + <log> + <logentry + revision="4"> + <author>test</author> + <date/> + <paths> + <path + copyfrom-path="/b" + copyfrom-rev="3" + action="A">/c</path> + </paths> + <msg>copy a file</msg> + </logentry> + </log> + $ ls a a-hg-wc + a: + b + c + d1 + newlink + + a-hg-wc: + b + c + d1 + newlink + + $ hg --cwd a rm b + $ echo % remove + % remove + $ hg --cwd a ci -d '4 0' -m 'remove a file' + $ hg --cwd a tip -q + 4:07b2e34a5b17 + + $ hg convert -d svn a + assuming destination a-hg + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 remove a file + $ svnupanddisplay a-hg-wc 1 + At revision 5. + 5 5 test . + 5 4 test c + 5 1 test d1 + 5 1 test d1/d2 + 5 1 test d1/d2/b + 5 3 test newlink + <?xml version="1.0"?> + <log> + <logentry + revision="5"> + <author>test</author> + <date/> + <paths> + <path + action="D">/b</path> + </paths> + <msg>remove a file</msg> + </logentry> + </log> + $ ls a a-hg-wc + a: + c + d1 + newlink + + a-hg-wc: + c + d1 + newlink + +Exectutable + + $ chmod +x a/c + $ hg --cwd a ci -d '5 0' -m 'make a file executable' + $ hg --cwd a tip -q + 5:31093672760b + + $ hg convert -d svn a + assuming destination a-hg + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 make a file executable + $ svnupanddisplay a-hg-wc 1 + At revision 6. + 6 6 test . + 6 6 test c + 6 1 test d1 + 6 1 test d1/d2 + 6 1 test d1/d2/b + 6 3 test newlink + <?xml version="1.0"?> + <log> + <logentry + revision="6"> + <author>test</author> + <date/> + <paths> + <path + action="M">/c</path> + </paths> + <msg>make a file executable</msg> + </logentry> + </log> + $ test -x a-hg-wc/c + +Executable in new directory + + $ rm -rf a a-hg a-hg-wc + $ hg init a + + $ mkdir a/d1 + $ echo a > a/d1/a + $ chmod +x a/d1/a + $ hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory' + adding d1/a + + $ hg convert -d svn a + assuming destination a-hg + initializing svn repository 'a-hg' + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 add executable file in new directory + $ svnupanddisplay a-hg-wc 1 + At revision 1. + 1 1 test . + 1 1 test d1 + 1 1 test d1/a + <?xml version="1.0"?> + <log> + <logentry + revision="1"> + <author>test</author> + <date/> + <paths> + <path + action="A">/d1</path> + <path + action="A">/d1/a</path> + </paths> + <msg>add executable file in new directory</msg> + </logentry> + </log> + $ test -x a-hg-wc/d1/a + +Copy to new directory + + $ mkdir a/d2 + $ hg --cwd a cp d1/a d2/a + $ hg --cwd a ci -d '1 0' -A -m 'copy file to new directory' + + $ hg convert -d svn a + assuming destination a-hg + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 0 copy file to new directory + $ svnupanddisplay a-hg-wc 1 + At revision 2. + 2 2 test . + 2 1 test d1 + 2 1 test d1/a + 2 2 test d2 + 2 2 test d2/a + <?xml version="1.0"?> + <log> + <logentry + revision="2"> + <author>test</author> + <date/> + <paths> + <path + action="A">/d2</path> + <path + copyfrom-path="/d1/a" + copyfrom-rev="1" + action="A">/d2/a</path> + </paths> + <msg>copy file to new directory</msg> + </logentry> + </log> + +Branchy history + + $ hg init b + $ echo base > b/b + $ hg --cwd b ci -d '0 0' -Ambase + adding b + + $ "$TESTDIR/svn-safe-append.py" left-1 b/b + $ echo left-1 > b/left-1 + $ hg --cwd b ci -d '1 0' -Amleft-1 + adding left-1 + + $ "$TESTDIR/svn-safe-append.py" left-2 b/b + $ echo left-2 > b/left-2 + $ hg --cwd b ci -d '2 0' -Amleft-2 + adding left-2 + + $ hg --cwd b up 0 + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + + $ "$TESTDIR/svn-safe-append.py" right-1 b/b + $ echo right-1 > b/right-1 + $ hg --cwd b ci -d '3 0' -Amright-1 + adding right-1 + created new head + + $ "$TESTDIR/svn-safe-append.py" right-2 b/b + $ echo right-2 > b/right-2 + $ hg --cwd b ci -d '4 0' -Amright-2 + adding right-2 + + $ hg --cwd b up -C 2 + 3 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ hg --cwd b merge + merging b + warning: conflicts during merge. + merging b failed! + 2 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + [1] + $ hg --cwd b revert -r 2 b + $ hg resolve -m b + $ hg --cwd b ci -d '5 0' -m 'merge' + +Expect 4 changes + + $ hg convert -d svn b + assuming destination b-hg + initializing svn repository 'b-hg' + initializing svn working copy 'b-hg-wc' + scanning source... + sorting... + converting... + 5 base + 4 left-1 + 3 left-2 + 2 right-1 + 1 right-2 + 0 merge + + $ svnupanddisplay b-hg-wc 0 + At revision 4. + 4 4 test . + 4 3 test b + 4 2 test left-1 + 4 3 test left-2 + 4 4 test right-1 + 4 4 test right-2 + <?xml version="1.0"?> + <log> + <logentry + revision="4"> + <author>test</author> + <date/> + <paths> + <path + action="A">/right-1</path> + <path + action="A">/right-2</path> + </paths> + <msg>merge</msg> + </logentry> + <logentry + revision="3"> + <author>test</author> + <date/> + <paths> + <path + action="M">/b</path> + <path + action="A">/left-2</path> + </paths> + <msg>left-2</msg> + </logentry> + <logentry + revision="2"> + <author>test</author> + <date/> + <paths> + <path + action="M">/b</path> + <path + action="A">/left-1</path> + </paths> + <msg>left-1</msg> + </logentry> + <logentry + revision="1"> + <author>test</author> + <date/> + <paths> + <path + action="A">/b</path> + </paths> + <msg>base</msg> + </logentry> + </log> + +Tags are not supported, but must not break conversion + + $ rm -rf a a-hg a-hg-wc + $ hg init a + $ echo a > a/a + $ hg --cwd a ci -d '0 0' -A -m 'Add file a' + adding a + $ hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0 + + $ hg convert -d svn a + assuming destination a-hg + initializing svn repository 'a-hg' + initializing svn working copy 'a-hg-wc' + scanning source... + sorting... + converting... + 1 Add file a + 0 Tagged as v1.0 + writing Subversion tags is not yet implemented + $ svnupanddisplay a-hg-wc 2 + At revision 2. + 2 2 test . + 2 1 test a + 2 2 test .hgtags + <?xml version="1.0"?> + <log> + <logentry + revision="2"> + <author>test</author> + <date/> + <paths> + <path + action="A">/.hgtags</path> + </paths> + <msg>Tagged as v1.0</msg> + </logentry> + <logentry + revision="1"> + <author>test</author> + <date/> + <paths> + <path + action="A">/a</path> + </paths> + <msg>Add file a</msg> + </logentry> + </log> + $ rm -rf a a-hg a-hg-wc
--- a/tests/test-convert-svn-source Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -fix_path() -{ - tr '\\' / -} - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo 'graphlog =' >> $HGRCPATH - -svnadmin create svn-repo - -svnpath=`pwd | fix_path` -# SVN wants all paths to start with a slash. Unfortunately, -# Windows ones don't. Handle that. -expr "$svnpath" : "\/" > /dev/null -if [ $? -ne 0 ]; then - svnpath="/$svnpath" -fi - -echo "# now tests that it works with trunk/tags layout, but no branches yet" -echo -echo % initial svn import -mkdir projB -cd projB -mkdir trunk -mkdir tags -cd .. - -svnurl="file://$svnpath/svn-repo/proj%20B" -svn import -m "init projB" projB "$svnurl" | fix_path - - -echo % update svn repository -svn co "$svnurl"/trunk B | fix_path -cd B -echo hello > 'letter .txt' -svn add 'letter .txt' -svn ci -m hello - -"$TESTDIR/svn-safe-append.py" world 'letter .txt' -svn ci -m world - -svn copy -m "tag v0.1" "$svnurl"/trunk "$svnurl"/tags/v0.1 - -"$TESTDIR/svn-safe-append.py" 'nice day today!' 'letter .txt' -svn ci -m "nice day" -cd .. - -echo % convert to hg once -hg convert "$svnurl" B-hg - -echo % update svn repository again -cd B -"$TESTDIR/svn-safe-append.py" "see second letter" 'letter .txt' -echo "nice to meet you" > letter2.txt -svn add letter2.txt -svn ci -m "second letter" - -svn copy -m "tag v0.2" "$svnurl"/trunk "$svnurl"/tags/v0.2 - -"$TESTDIR/svn-safe-append.py" "blah-blah-blah" letter2.txt -svn ci -m "work in progress" -cd .. - -######################################## - -echo % test incremental conversion -hg convert "$svnurl" B-hg - -cd B-hg -hg glog --template '{rev} {desc|firstline} files: {files}\n' -hg tags -q -cd .. - -echo % test filemap -echo 'include letter2.txt' > filemap -hg convert --filemap filemap "$svnurl"/trunk fmap -hg glog -R fmap --template '{rev} {desc|firstline} files: {files}\n' - -echo % test stop revision -hg convert --rev 1 "$svnurl"/trunk stoprev -# Check convert_revision extra-records. -# This is also the only place testing more than one extra field -# in a revision. -hg --cwd stoprev tip --debug | grep extra | sed 's/=.*/=/'
--- a/tests/test-convert-svn-source.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -# now tests that it works with trunk/tags layout, but no branches yet - -% initial svn import -Adding projB/trunk -Adding projB/tags - -Committed revision 1. -% update svn repository -Checked out revision 1. -A letter .txt -Adding letter .txt -Transmitting file data . -Committed revision 2. -Sending letter .txt -Transmitting file data . -Committed revision 3. - -Committed revision 4. -Sending letter .txt -Transmitting file data . -Committed revision 5. -% convert to hg once -initializing destination B-hg repository -scanning source... -sorting... -converting... -3 init projB -2 hello -1 world -0 nice day -updating tags -% update svn repository again -A letter2.txt -Sending letter .txt -Adding letter2.txt -Transmitting file data .. -Committed revision 6. - -Committed revision 7. -Sending letter2.txt -Transmitting file data . -Committed revision 8. -% test incremental conversion -scanning source... -sorting... -converting... -1 second letter -0 work in progress -updating tags -o 7 update tags files: .hgtags -| -o 6 work in progress files: letter2.txt -| -o 5 second letter files: letter .txt letter2.txt -| -o 4 update tags files: .hgtags -| -o 3 nice day files: letter .txt -| -o 2 world files: letter .txt -| -o 1 hello files: letter .txt -| -o 0 init projB files: - -tip -v0.2 -v0.1 -% test filemap -initializing destination fmap repository -scanning source... -sorting... -converting... -5 init projB -4 hello -3 world -2 nice day -1 second letter -0 work in progress -o 1 work in progress files: letter2.txt -| -o 0 second letter files: letter2.txt - -% test stop revision -initializing destination stoprev repository -scanning source... -sorting... -converting... -0 init projB -extra: branch= -extra: convert_revision=
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-source.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,178 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ fixpath() + > { + > tr '\\' / + > } + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnpath=`pwd | fixpath` + + + $ expr "$svnpath" : "\/" > /dev/null + > if [ $? -ne 0 ]; then + > svnpath="/$svnpath" + > fi + > svnurl="file://$svnpath/svn-repo" + +Now test that it works with trunk/tags layout, but no branches yet. + +Initial svn import + + $ mkdir projB + $ cd projB + $ mkdir trunk + $ mkdir tags + $ cd .. + + $ svnurl="file://$svnpath/svn-repo/proj%20B" + $ svn import -m "init projB" projB "$svnurl" | fixpath + Adding projB/trunk + Adding projB/tags + + Committed revision 1. + +Update svn repository + + $ svn co "$svnurl"/trunk B | fixpath + Checked out revision 1. + $ cd B + $ echo hello > 'letter .txt' + $ svn add 'letter .txt' + A letter .txt + $ svn ci -m hello + Adding letter .txt + Transmitting file data . + Committed revision 2. + + $ "$TESTDIR/svn-safe-append.py" world 'letter .txt' + $ svn ci -m world + Sending letter .txt + Transmitting file data . + Committed revision 3. + + $ svn copy -m "tag v0.1" "$svnurl"/trunk "$svnurl"/tags/v0.1 + + Committed revision 4. + + $ "$TESTDIR/svn-safe-append.py" 'nice day today!' 'letter .txt' + $ svn ci -m "nice day" + Sending letter .txt + Transmitting file data . + Committed revision 5. + $ cd .. + +Convert to hg once + + $ hg convert "$svnurl" B-hg + initializing destination B-hg repository + scanning source... + sorting... + converting... + 3 init projB + 2 hello + 1 world + 0 nice day + updating tags + +Update svn repository again + + $ cd B + $ "$TESTDIR/svn-safe-append.py" "see second letter" 'letter .txt' + $ echo "nice to meet you" > letter2.txt + $ svn add letter2.txt + A letter2.txt + $ svn ci -m "second letter" + Sending letter .txt + Adding letter2.txt + Transmitting file data .. + Committed revision 6. + + $ svn copy -m "tag v0.2" "$svnurl"/trunk "$svnurl"/tags/v0.2 + + Committed revision 7. + + $ "$TESTDIR/svn-safe-append.py" "blah-blah-blah" letter2.txt + $ svn ci -m "work in progress" + Sending letter2.txt + Transmitting file data . + Committed revision 8. + $ cd .. + +######################################## + +Test incremental conversion + + $ hg convert "$svnurl" B-hg + scanning source... + sorting... + converting... + 1 second letter + 0 work in progress + updating tags + + $ cd B-hg + $ hg glog --template '{rev} {desc|firstline} files: {files}\n' + o 7 update tags files: .hgtags + | + o 6 work in progress files: letter2.txt + | + o 5 second letter files: letter .txt letter2.txt + | + o 4 update tags files: .hgtags + | + o 3 nice day files: letter .txt + | + o 2 world files: letter .txt + | + o 1 hello files: letter .txt + | + o 0 init projB files: + + $ hg tags -q + tip + v0.2 + v0.1 + $ cd .. + +Test filemap + $ echo 'include letter2.txt' > filemap + $ hg convert --filemap filemap "$svnurl"/trunk fmap + initializing destination fmap repository + scanning source... + sorting... + converting... + 5 init projB + 4 hello + 3 world + 2 nice day + 1 second letter + 0 work in progress + $ hg glog -R fmap --template '{rev} {desc|firstline} files: {files}\n' + o 1 work in progress files: letter2.txt + | + o 0 second letter files: letter2.txt + + +Test stop revision + $ hg convert --rev 1 "$svnurl"/trunk stoprev + initializing destination stoprev repository + scanning source... + sorting... + converting... + 0 init projB + +Check convert_revision extra-records. +This is also the only place testing more than one extra field in a revision. + + $ cd stoprev + $ hg tip --debug | grep extra + extra: branch=default + extra: convert_revision=svn:........-....-....-....-............/proj B/trunk@1 (re) + $ cd ..
--- a/tests/test-convert-svn-startrev Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo "graphlog =" >> $HGRCPATH - -svnadmin create svn-repo -cat "$TESTDIR/svn/startrev.svndump" | svnadmin load svn-repo > /dev/null - -convert() -{ - startrev=$1 - repopath=A-r$startrev-hg - hg convert --config convert.svn.startrev=$startrev \ - --config convert.svn.trunk=branches/branch1 \ - --config convert.svn.branches=" " \ - --config convert.svn.tags= \ - --datesort svn-repo $repopath - hg -R $repopath glog --template '{rev} {desc|firstline} files: {files}\n' - echo -} - -echo % convert before branching point -convert 3 -echo % convert before branching point -convert 4 -echo % convert at branching point -convert 5 -echo % convert last revision only -convert 6
--- a/tests/test-convert-svn-startrev.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -% convert before branching point -initializing destination A-r3-hg repository -scanning source... -sorting... -converting... -3 removeb -2 changeaa -1 branch, changeaaa -0 addc,changeaaaa -o 3 addc,changeaaaa files: a c -| -o 2 branch, changeaaa files: a -| -o 1 changeaa files: a -| -o 0 removeb files: a - - -% convert before branching point -initializing destination A-r4-hg repository -scanning source... -sorting... -converting... -2 changeaa -1 branch, changeaaa -0 addc,changeaaaa -o 2 addc,changeaaaa files: a c -| -o 1 branch, changeaaa files: a -| -o 0 changeaa files: a - - -% convert at branching point -initializing destination A-r5-hg repository -scanning source... -sorting... -converting... -1 branch, changeaaa -0 addc,changeaaaa -o 1 addc,changeaaaa files: a c -| -o 0 branch, changeaaa files: a - - -% convert last revision only -initializing destination A-r6-hg repository -scanning source... -sorting... -converting... -0 addc,changeaaaa -o 0 addc,changeaaaa files: a c - -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-startrev.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,90 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + $ convert() + > { + > startrev=$1 + > repopath=A-r$startrev-hg + > hg convert --config convert.svn.startrev=$startrev \ + > --config convert.svn.trunk=branches/branch1 \ + > --config convert.svn.branches=" " \ + > --config convert.svn.tags= \ + > --datesort svn-repo $repopath + > hg -R $repopath glog \ + > --template '{rev} {desc|firstline} files: {files}\n' + > echo + > } + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/startrev.svndump" + +Convert before branching point + + $ convert 3 + initializing destination A-r3-hg repository + scanning source... + sorting... + converting... + 3 removeb + 2 changeaa + 1 branch, changeaaa + 0 addc,changeaaaa + o 3 addc,changeaaaa files: a c + | + o 2 branch, changeaaa files: a + | + o 1 changeaa files: a + | + o 0 removeb files: a + + + +Convert before branching point + + $ convert 4 + initializing destination A-r4-hg repository + scanning source... + sorting... + converting... + 2 changeaa + 1 branch, changeaaa + 0 addc,changeaaaa + o 2 addc,changeaaaa files: a c + | + o 1 branch, changeaaa files: a + | + o 0 changeaa files: a + + + +Convert at branching point + + $ convert 5 + initializing destination A-r5-hg repository + scanning source... + sorting... + converting... + 1 branch, changeaaa + 0 addc,changeaaaa + o 1 addc,changeaaaa files: a c + | + o 0 branch, changeaaa files: a + + + +Convert last revision only + + $ convert 6 + initializing destination A-r6-hg repository + scanning source... + sorting... + converting... + 0 addc,changeaaaa + o 0 addc,changeaaaa files: a c + +
--- a/tests/test-convert-svn-tags Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -#!/bin/sh - -"$TESTDIR/hghave" svn svn-bindings || exit 80 - -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo "graphlog =" >> $HGRCPATH - -svnadmin create svn-repo -cat "$TESTDIR/svn/tags.svndump" | svnadmin load svn-repo > /dev/null - -echo % convert -hg convert --datesort svn-repo A-hg - -cd A-hg -hg glog --template '{rev} {desc|firstline} tags: {tags}\n' -hg tags | sed 's/:.*/:/' -cd .. - -echo % convert without tags -hg convert --datesort --config convert.svn.tags= svn-repo A-notags-hg -hg -R A-notags-hg tags -q -
--- a/tests/test-convert-svn-tags.out Fri Sep 24 02:17:54 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -% convert -initializing destination A-hg repository -scanning source... -sorting... -converting... -5 init projA -4 adda -3 changea -2 changea2 -1 changea3 -0 changea -updating tags -o 6 update tags tags: tip -| -o 5 changea tags: trunk.goodtag -| -o 4 changea3 tags: -| -o 3 changea2 tags: trunk.v1 -| -o 2 changea tags: -| -o 1 adda tags: -| -o 0 init projA tags: - -tip 6: -trunk.goodtag 5: -trunk.v1 3: -% convert without tags -initializing destination A-notags-hg repository -scanning source... -sorting... -converting... -5 init projA -4 adda -3 changea -2 changea2 -1 changea3 -0 changea -tip
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-tags.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,67 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/tags.svndump" + +Convert + $ hg convert --datesort svn-repo A-hg + initializing destination A-hg repository + scanning source... + sorting... + converting... + 5 init projA + 4 adda + 3 changea + 2 changea2 + 1 changea3 + 0 changea + updating tags + + $ cd A-hg + $ hg glog --template '{rev} {desc|firstline} tags: {tags}\n' + o 6 update tags tags: tip + | + o 5 changea tags: trunk.goodtag + | + o 4 changea3 tags: + | + o 3 changea2 tags: trunk.v1 + | + o 2 changea tags: + | + o 1 adda tags: + | + o 0 init projA tags: + + + $ hg tags -q + tip + trunk.goodtag + trunk.v1 + + $ cd .. + +Convert without tags + + $ hg convert --datesort --config convert.svn.tags= svn-repo A-notags-hg + initializing destination A-notags-hg repository + scanning source... + sorting... + converting... + 5 init projA + 4 adda + 3 changea + 2 changea2 + 1 changea3 + 0 changea + + $ hg -R A-notags-hg tags -q + tip +
--- a/tests/test-default-push.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-default-push.t Fri Sep 24 19:47:50 2010 -0300 @@ -18,7 +18,7 @@ Push should push to 'default' when 'default-push' not set: $ hg --cwd b push - pushing to .*/a + pushing to */a (glob) searching for changes adding changesets adding manifests @@ -29,7 +29,7 @@ $ echo 'default-push = ../c' >> b/.hg/hgrc $ hg --cwd b push - pushing to .*/c + pushing to */c (glob) searching for changes adding changesets adding manifests
--- a/tests/test-dirstate.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-dirstate.t Fri Sep 24 19:47:50 2010 -0300 @@ -16,7 +16,8 @@ moving a/b/c/d/z to z/b/c/d/z $ cd .. ------- issue1790 +Issue1790: dirstate entry locked into unset if file mtime is set into +the future Prepare test repo:
--- a/tests/test-export.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-export.t Fri Sep 24 19:47:50 2010 -0300 @@ -81,13 +81,13 @@ Exporting 4 changesets to a file: $ hg export -o export_internal 1 2 3 4 - $ grep HG export_internal | wc -l | sed -e 's/^ *//' - 4 + $ grep HG export_internal | wc -l + \s*4 (re) Exporting 4 changesets to a file: - $ hg export 1 2 3 4 | grep HG | wc -l | sed -e 's/^ *//' - 4 + $ hg export 1 2 3 4 | grep HG | wc -l + \s*4 (re) Exporting revision -2 to a file:
--- a/tests/test-extension.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-extension.t Fri Sep 24 19:47:50 2010 -0300 @@ -232,7 +232,7 @@ [+] marked option can be specified multiple times $ echo 'debugextension = !' >> $HGRCPATH -Issue811: +Issue811: Problem loading extensions twice (by site and by user) $ debugpath=`pwd`/debugissue811.py $ cat > debugissue811.py <<EOF
--- a/tests/test-extra-filelog-entry.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-extra-filelog-entry.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,4 +1,4 @@ -test for issue351 +Issue351: mq: qrefresh can create extra revlog entry $ echo "[extensions]" >> $HGRCPATH $ echo "mq=" >> $HGRCPATH
--- a/tests/test-gendoc Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-gendoc Fri Sep 24 19:47:50 2010 -0300 @@ -11,7 +11,7 @@ echo "% extracting documentation from $LOCALE" echo ".. -*- coding: utf-8 -*-" > gendoc-$LOCALE.txt echo "" >> gendoc-$LOCALE.txt - LC_ALL=$LOCALE python $TESTDIR/../doc/gendoc.py >> gendoc-$LOCALE.txt || exit + LC_ALL=$LOCALE python $TESTDIR/../doc/gendoc.py >> gendoc-$LOCALE.txt 2> /dev/null || exit # We call runrst without adding "--halt warning" to make it report # all errors instead of stopping on the first one.
--- a/tests/test-git-import.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-git-import.t Fri Sep 24 19:47:50 2010 -0300 @@ -43,7 +43,7 @@ $ hg tip -q 2:3a34410f282e - $ test -x new || echo failed + $ test -x new Copy: @@ -65,10 +65,10 @@ 3:37bacb7ca14d $ if "$TESTDIR/hghave" -q execbit; then - > test -f copy -a ! -x copy || echo failed - > test -x copyx || echo failed + > test -f copy -a ! -x copy || echo bad + > test -x copyx || echo bad > else - > test -f copy || echo failed + > test -f copy || echo bad > fi $ cat copy @@ -117,7 +117,8 @@ new rename - $ test -f copyx && echo failed || true + $ test -f copyx + [1] Regular diff:
--- a/tests/test-globalopts.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-globalopts.t Fri Sep 24 19:47:50 2010 -0300 @@ -240,12 +240,12 @@ $ hg --cwd a --time id 8580ff50825a tip - Time: real .* + Time: real * (glob) Testing --version: $ hg --version -q - Mercurial Distributed SCM .* + Mercurial Distributed SCM * (glob) Testing -h/--help:
--- a/tests/test-glog.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-glog.t Fri Sep 24 19:47:50 2010 -0300 @@ -71,8 +71,6 @@ $ "$TESTDIR/hghave" no-outer-repo || exit 80 - $ set -e - $ commit() > { > rev=$1 @@ -681,12 +679,12 @@ Unused arguments: - $ hg glog -q foo bar || echo failed + $ hg glog -q foo bar hg glog: invalid arguments hg glog [OPTION]... [FILE] show revision history alongside an ASCII revision graph - failed + [255] Empty revision range - display nothing: $ hg glog -r 1..0 @@ -735,7 +733,7 @@ summary: two -File log with explicit style (issue 1896): +Issue1896: File log with explicit style $ hg glog --style=default one o changeset: 0:3d578b4a1f53 user: test
--- a/tests/test-grep.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-grep.t Fri Sep 24 19:47:50 2010 -0300 @@ -116,9 +116,10 @@ $ cd .. +Issue685: trackback in grep -r after rename + Got a traceback when using grep on a single revision with renamed files. -issue 685 $ hg init issue685 $ cd issue685
--- a/tests/test-help.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-help.t Fri Sep 24 19:47:50 2010 -0300 @@ -189,7 +189,7 @@ Test short command list with verbose option $ hg -v help shortlist - Mercurial Distributed SCM \(version .*?\) + Mercurial Distributed SCM (version *) (glob) Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others This is free software; see the source for copying conditions. There is NO @@ -341,7 +341,7 @@ Test help option with version option $ hg add -h --version - Mercurial Distributed SCM \(version .+?\) + Mercurial Distributed SCM (version *) (glob) Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others This is free software; see the source for copying conditions. There is NO @@ -439,9 +439,10 @@ Differences between files are shown using the unified diff format. - NOTE: diff may generate unexpected results for merges, as it will default - to comparing against the working directory's first parent changeset if no - revisions are specified. + Note: + diff may generate unexpected results for merges, as it will default to + comparing against the working directory's first parent changeset if no + revisions are specified. When two revision arguments are given, then changes are shown between those revisions. If only one revision is specified then that revision is @@ -498,10 +499,11 @@ Option -q/--quiet hides untracked (unknown and ignored) files unless explicitly requested with -u/--unknown or -i/--ignored. - NOTE: status may appear to disagree with diff if permissions have changed - or a merge has occurred. The standard diff format does not report - permission changes and diff only reports changes relative to one merge - parent. + Note: + status may appear to disagree with diff if permissions have changed or + a merge has occurred. The standard diff format does not report + permission changes and diff only reports changes relative to one merge + parent. If one revision is given, it is used as the base revision. If two revisions are given, the differences between them are shown. The --change
--- a/tests/test-hgignore.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-hgignore.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,6 +1,6 @@ $ hg init -Test issue 562: .hgignore requires newline at end: +Issue562: .hgignore requires newline at end: $ touch foo $ touch bar @@ -43,8 +43,9 @@ ? syntax $ echo "*.o" > .hgignore - $ hg status 2>&1 | sed -e 's/abort: .*\.hgignore:/abort: .hgignore:/' - abort: .hgignore: invalid pattern (relre): *.o + $ hg status + abort: */.hgignore: invalid pattern (relre): \*.o (glob) + [255] $ echo ".*\.o" > .hgignore $ hg status @@ -86,8 +87,8 @@ ? syntax $ echo "syntax: invalid" > .hgignore - $ hg status 2>&1 | sed -e 's/.*\.hgignore:/.hgignore:/' - .hgignore: ignoring invalid syntax 'invalid' + $ hg status + */.hgignore: ignoring invalid syntax 'invalid' (glob) A dir/b.o ? .hgignore ? a.c
--- a/tests/test-hgrc.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-hgrc.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,9 +1,10 @@ $ echo "invalid" > $HGRCPATH - $ hg version 2>&1 | sed -e "s|$HGRCPATH|\$HGRCPATH|" - hg: parse error at $HGRCPATH:1: invalid + $ hg version + hg: parse error at */.hgrc:1: invalid (glob) + [255] $ echo "" > $HGRCPATH -issue1199: escaping +Issue1199: Can't use '%' in hgrc (eg url encoded username) $ hg init "foo%bar" $ hg clone "foo%bar" foobar @@ -11,22 +12,23 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ p=`pwd` $ cd foobar - $ cat .hg/hgrc | sed -e "s:$p:...:" + $ cat .hg/hgrc [paths] - default = .../foo%bar - $ hg paths | sed -e "s:$p:...:" - default = .../foo%bar - $ hg showconfig | sed -e "s:$p:...:" - bundle.mainreporoot=.../foobar - paths.default=.../foo%bar + default = */foo%bar (glob) + $ hg paths + default = */foo%bar (glob) + $ hg showconfig + bundle.mainreporoot=*/foobar (glob) + paths.default=*/foo%bar (glob) $ cd .. issue1829: wrong indentation $ echo '[foo]' > $HGRCPATH $ echo ' x = y' >> $HGRCPATH - $ hg version 2>&1 | sed -e "s|$HGRCPATH|\$HGRCPATH|" - hg: parse error at $HGRCPATH:2: x = y + $ hg version + hg: parse error at */.hgrc:2: x = y (glob) + [255] $ python -c "print '[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n'" \ > > $HGRCPATH @@ -37,8 +39,9 @@ $ FAKEPATH=/path/to/nowhere $ export FAKEPATH $ echo '%include $FAKEPATH/no-such-file' > $HGRCPATH - $ hg version 2>&1 | sed -e "s|$HGRCPATH|\$HGRCPATH|" - hg: parse error at $HGRCPATH:1: cannot include /path/to/nowhere/no-such-file (No such file or directory) + $ hg version + hg: parse error at */.hgrc:1: cannot include /path/to/nowhere/no-such-file (No such file or directory) (glob) + [255] $ unset FAKEPATH username expansion @@ -86,24 +89,24 @@ customized hgrc - $ hg showconfig | sed -e "s:$p:...:" - read config from: .../.hgrc - .../.hgrc:13: alias.log=log -g - .../.hgrc:11: defaults.identify=-n - .../.hgrc:2: ui.debug=true - .../.hgrc:3: ui.fallbackencoding=ASCII - .../.hgrc:4: ui.quiet=true - .../.hgrc:5: ui.slash=true - .../.hgrc:6: ui.traceback=true - .../.hgrc:7: ui.verbose=true - .../.hgrc:8: ui.style=~/.hgstyle - .../.hgrc:9: ui.logtemplate={node} + $ hg showconfig + read config from: */.hgrc (glob) + */.hgrc:13: alias.log=log -g (glob) + */.hgrc:11: defaults.identify=-n (glob) + */.hgrc:2: ui.debug=true (glob) + */.hgrc:3: ui.fallbackencoding=ASCII (glob) + */.hgrc:4: ui.quiet=true (glob) + */.hgrc:5: ui.slash=true (glob) + */.hgrc:6: ui.traceback=true (glob) + */.hgrc:7: ui.verbose=true (glob) + */.hgrc:8: ui.style=~/.hgstyle (glob) + */.hgrc:9: ui.logtemplate={node} (glob) plain hgrc $ HGPLAIN=; export HGPLAIN - $ hg showconfig --config ui.traceback=True --debug | sed -e "s:$p:...:" - read config from: .../.hgrc + $ hg showconfig --config ui.traceback=True --debug + read config from: */.hgrc (glob) none: ui.traceback=True none: ui.verbose=False none: ui.debug=True
--- a/tests/test-hook.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-hook.t Fri Sep 24 19:47:50 2010 -0300 @@ -415,12 +415,12 @@ $ echo >> foo $ hg ci --debug -d '0 0' -m 'change foo' foo - calling hook commit.auto: <function autohook at .*> + calling hook commit.auto: <function autohook at *> (glob) Automatically installed hook committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708 $ hg showconfig hooks - hooks.commit.auto=<function autohook at .*> + hooks.commit.auto=<function autohook at *> (glob) test python hook configured with python:[file]:[hook] syntax @@ -467,7 +467,9 @@ ImportError: No module named hgext_importfail Traceback (most recent call last): -commit and update hooks should run after command completion (issue 1827) +Issue1827: Hooks Update & Commit not completely post operation + +commit and update hooks should run after command completion $ echo '[hooks]' > .hg/hgrc $ echo 'commit = hg id' >> .hg/hgrc
--- a/tests/test-import.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-import.t Fri Sep 24 19:47:50 2010 -0300 @@ -344,9 +344,11 @@ $ rm -r b -We weren't backing up the correct dirstate file when importing many patches -(issue963) -import patch1 patch2; rollback +Issue963: Parent of working dir incorrect after import of multiple +patches and rollback + +We weren't backing up the correct dirstate file when importing many +patches: import patch1 patch2; rollback $ echo line 3 >> a/a $ hg --cwd a ci -m'third change' @@ -380,7 +382,8 @@ added 1 changesets with 2 changes to 2 files updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg --cwd a export tip | sed -e 's/d1\/d2\///' > tip.patch + $ hg --cwd a export tip > tmp + $ sed -e 's/d1\/d2\///' < tmp > tip.patch $ dir=`pwd` $ cd b/d1/d2 2>&1 > /dev/null $ hg import ../../../tip.patch @@ -541,7 +544,7 @@ $ cd .. -test update+rename with common name (issue 927) +Issue927: test update+rename with common name $ hg init t $ cd t @@ -660,7 +663,7 @@ $ cd .. -add empty file from the end of patch (issue 1495) +Issue1495: add empty file from the end of patch $ hg init addemptyend $ cd addemptyend @@ -715,7 +718,7 @@ a -first line mistaken for email headers (issue 1859) +Issue1859: first line mistaken for email headers $ hg init emailconfusion $ cd emailconfusion @@ -824,7 +827,7 @@ $ cd .. -issue2102 +Issue2102: hg export and hg import speak different languages $ hg init issue2102 $ cd issue2102
--- a/tests/test-incoming-outgoing.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-incoming-outgoing.t Fri Sep 24 19:47:50 2010 -0300 @@ -20,8 +20,8 @@ http incoming - $ hg -R new incoming http://localhost:$HGPORT/ | sed -e "s,:$HGPORT/,:\$HGPORT/," - comparing with http://localhost:$HGPORT/ + $ hg -R new incoming http://localhost:$HGPORT/ + comparing with http://localhost:\d+/ (re) changeset: 0:00a43fa82f62 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -68,8 +68,8 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 8 - $ hg -R new incoming -r 4 http://localhost:$HGPORT/ | sed -e "s,:$HGPORT/,:\$HGPORT/," - comparing with http://localhost:$HGPORT/ + $ hg -R new incoming -r 4 http://localhost:$HGPORT/ + comparing with http://localhost:\d+/ (re) changeset: 0:00a43fa82f62 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -221,8 +221,8 @@ test with --bundle - $ hg -R new incoming --bundle test.hg http://localhost:$HGPORT/ | sed -e "s,:$HGPORT/,:\$HGPORT/," - comparing with http://localhost:$HGPORT/ + $ hg -R new incoming --bundle test.hg http://localhost:$HGPORT/ + comparing with http://localhost:*/ (glob) changeset: 0:00a43fa82f62 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -419,8 +419,8 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 11 - $ hg -R test-dev outgoing http://localhost:$HGPORT/ | sed -e "s,:$HGPORT/,:\$HGPORT/," - comparing with http://localhost:$HGPORT/ + $ hg -R test-dev outgoing http://localhost:$HGPORT/ + comparing with http://localhost:*/ (glob) searching for changes changeset: 9:d89d4abea5bc user: test @@ -448,8 +448,8 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 13 - $ hg -R test-dev outgoing -r 11 http://localhost:$HGPORT/ | sed -e "s,:$HGPORT/,:\$HGPORT/," - comparing with http://localhost:$HGPORT/ + $ hg -R test-dev outgoing -r 11 http://localhost:$HGPORT/ + comparing with http://localhost:*/ (glob) searching for changes changeset: 9:d89d4abea5bc user: test
--- a/tests/test-install.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-install.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,7 +1,7 @@ hg debuginstall $ hg debuginstall Checking encoding (ascii)... - Checking installed modules \(.*/mercurial\)... + Checking installed modules (*/mercurial)... (glob) Checking templates... Checking patch... Checking commit editor... @@ -11,7 +11,7 @@ hg debuginstall with no username $ HGUSER= hg debuginstall Checking encoding (ascii)... - Checking installed modules \(.*/mercurial\)... + Checking installed modules (*/mercurial)... (glob) Checking templates... Checking patch... Checking commit editor...
--- a/tests/test-journal-exists.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-journal-exists.t Fri Sep 24 19:47:50 2010 -0300 @@ -27,7 +27,7 @@ $ hg -R foo unbundle repo.hg adding changesets - abort: Permission denied: .* + abort: Permission denied: * (glob) [255] $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
--- a/tests/test-keyword.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-keyword.t Fri Sep 24 19:47:50 2010 -0300 @@ -26,14 +26,14 @@ RCSfile = {file|basename},v Revision = {node|short} Source = {root}/{file},v - \$Author: test \$ - \$Date: ..../../.. ..:..:.. \$ - \$Header: .*/demo.txt,v ............ ..../../.. ..:..:.. test \$ - \$Id: demo.txt,v ............ ..../../.. ..:..:.. test \$ - \$RCSFile: demo.txt,v \$ - \$RCSfile: demo.txt,v \$ - \$Revision: ............ \$ - \$Source: .*/demo.txt,v \$ + $Author: test $ + $Date: ????/??/?? ??:??:?? $ (glob) + $Header: */demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob) + $Id: demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob) + $RCSFile: demo.txt,v $ + $RCSfile: demo.txt,v $ + $Revision: ???????????? $ (glob) + $Source: */demo.txt,v $ (glob) $ hg --quiet kwdemo "Branch = {branches}" [extensions] @@ -71,7 +71,7 @@ hg bundle --base null ../test-keyword.hg $ hg pull -u "$TESTDIR"/test-keyword.hg - pulling from .*test-keyword.hg + pulling from *test-keyword.hg (glob) requesting all changes adding changesets adding manifests @@ -150,7 +150,7 @@ do not process $Id: xxx $ ignore $Id$ - a.* + a* (glob) Test hook execution @@ -195,15 +195,15 @@ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit - Date: .* - Subject: changeset in .* + Date: * (glob) + Subject: changeset in * (glob) From: mercurial X-Hg-Notification: changeset a2392c293916 - Message-Id: <hg.a2392c293916.*> + Message-Id: <hg.a2392c293916*> (glob) To: Test - changeset a2392c293916 in .* - details: .*?cmd=changeset;node=a2392c293916 + changeset a2392c293916 in * (glob) + details: *cmd=changeset;node=a2392c293916 (glob) description: addsym @@ -218,15 +218,15 @@ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit - Date:.* - Subject: changeset in.* + Date:* (glob) + Subject: changeset in* (glob) From: User Name <user@example.com> X-Hg-Notification: changeset ef63ca68695b - Message-Id: <hg.ef63ca68695b.*> + Message-Id: <hg.ef63ca68695b*> (glob) To: Test - changeset ef63ca68695b in .* - details: .*?cmd=changeset;node=ef63ca68695b + changeset ef63ca68695b in * (glob) + details: *cmd=changeset;node=ef63ca68695b (glob) description: absym @@ -335,7 +335,7 @@ $ hg diff diff -r d17e03c92c97 a --- a/a Wed Dec 31 23:59:51 1969 -0000 - \+\+\+ b/a .* + +++ b/a * (glob) @@ -2,3 +2,4 @@ foo do not process $Id: @@ -479,7 +479,7 @@ $ hg diff --rev 1 diff -r ef63ca68695b c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 - \+\+\+ b/c .* + +++ b/c * (glob) @@ -0,0 +1,3 @@ +expand $Id$ +do not process $Id: @@ -527,7 +527,7 @@ do not process $Id: xxx $ ignore $Id$ - a.* + a* (glob) Write custom keyword and prepare multiline commit message @@ -577,7 +577,7 @@ xxx $ $Xinfo: User Name <user@example.com>: firstline $ ignore $Id$ - a.* + a* (glob) annotate @@ -648,7 +648,7 @@ > default = ../Test > EOF $ hg incoming - comparing with .*test-keyword.t/Test + comparing with *test-keyword.t/Test (glob) searching for changes changeset: 2:bb948857c743 tag: tip @@ -718,7 +718,7 @@ kwexpand nonexistent $ hg kwexpand nonexistent - nonexistent:.* + nonexistent:* (glob) hg serve @@ -907,7 +907,7 @@ xxx $ $Xinfo: User Name <user@example.com>: firstline $ ignore $Id$ - a.* + a* (glob) Now disable keyword expansion @@ -924,4 +924,4 @@ xxx $ $Xinfo$ ignore $Id$ - a.* + a* (glob)
--- a/tests/test-locate.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-locate.t Fri Sep 24 19:47:50 2010 -0300 @@ -22,12 +22,11 @@ $ touch nottracked - $ hg locate a && echo locate succeeded || echo locate failed + $ hg locate a a - locate succeeded - $ hg locate NONEXISTENT && echo locate succeeded || echo locate failed - locate failed + $ hg locate NONEXISTENT + [1] $ hg locate a @@ -84,7 +83,7 @@ t/e.h t/x -Test issue294: +Issue294: hg remove --after dir fails when dir.* also exists $ cd .. $ rm -r t
--- a/tests/test-log.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-log.t Fri Sep 24 19:47:50 2010 -0300 @@ -1019,3 +1019,76 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: add foo, related + +Issue2383: hg log showing _less_ differences than hg diff + + $ hg init issue2383 + $ cd issue2383 + +Create a test repo: + + $ echo a > a + $ hg ci -Am0 + adding a + $ echo b > b + $ hg ci -Am1 + adding b + $ hg co 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo b > a + $ hg ci -m2 + created new head + +Merge: + + $ hg merge + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + +Make sure there's a file listed in the merge to trigger the bug: + + $ echo c > a + $ hg ci -m3 + +Two files shown here in diff: + + $ hg diff --rev 2:3 + diff -r b09be438c43a -r 8e07aafe1edc a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,1 @@ + -b + +c + diff -r b09be438c43a -r 8e07aafe1edc b + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/b Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +b + +Diff here should be the same: + + $ hg log -vpr 3 + changeset: 3:8e07aafe1edc + tag: tip + parent: 2:b09be438c43a + parent: 1:925d80f479bb + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: a + description: + 3 + + + diff -r b09be438c43a -r 8e07aafe1edc a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,1 @@ + -b + +c + diff -r b09be438c43a -r 8e07aafe1edc b + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/b Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +b + + $ cd ..
--- a/tests/test-merge-prompt.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-merge-prompt.t Fri Sep 24 19:47:50 2010 -0300 @@ -6,7 +6,6 @@ (issue556) $ status() { - > [ $? -ne 0 ] && echo "failed." > echo "--- status ---" > hg st -A file1 file2 > for file in file1 file2; do @@ -42,7 +41,7 @@ Non-interactive merge: - $ hg merge -y || echo "failed" + $ hg merge -y local changed file1 which remote deleted use (c)hanged version or (d)elete? c remote changed file2 which local deleted @@ -67,7 +66,7 @@ $ hg co -C 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg merge --config ui.interactive=true <<EOF || echo "failed" + $ hg merge --config ui.interactive=true <<EOF > c > d > EOF @@ -91,7 +90,7 @@ $ hg co -C 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg merge --config ui.interactive=true <<EOF || echo "failed" + $ hg merge --config ui.interactive=true <<EOF > foo > bar > d @@ -124,13 +123,13 @@ $ hg co -C 1 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg merge --config ui.interactive=true <<EOF || echo "failed" + $ hg merge --config ui.interactive=true <<EOF > d > EOF local changed file1 which remote deleted use (c)hanged version or (d)elete? remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? abort: response expected - failed + [255] $ status --- status ---
--- a/tests/test-minirst.py Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-minirst.py Fri Sep 24 19:47:50 2010 -0300 @@ -197,3 +197,20 @@ ------------------------------ """ debugformat('sections', sections, 20) + + +admonitions = """ +.. note:: + This is a note + + - Bullet 1 + - Bullet 2 + + .. warning:: This is a warning Second + input line of warning + +.. danger:: + This is danger +""" + +debugformat('admonitions', admonitions, 30)
--- a/tests/test-minirst.py.out Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-minirst.py.out Fri Sep 24 19:47:50 2010 -0300 @@ -318,3 +318,19 @@ --------------------------- ---------------------------------------------------------------------- +admonitions formatted to fit within 30 characters: +---------------------------------------------------------------------- +Note: + This is a note + + - Bullet 1 + - Bullet 2 + + Warning! + This is a warning Second + input line of warning + +!Danger! + This is danger +---------------------------------------------------------------------- +
--- a/tests/test-mq-merge.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-merge.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,4 +1,4 @@ -# Test issue 529 - mq aborts when merging patch deleting files +Issue529: mq aborts when merging patch deleting files $ checkundo() > { @@ -32,7 +32,7 @@ Save the patch queue so we can merge it later: $ hg qsave -c -e - copy .*/t/.hg/patches to .*/t/.hg/patches.1 + copy */t/.hg/patches to */t/.hg/patches.1 (glob) $ checkundo Update b and commit in an "update" changeset: @@ -52,7 +52,7 @@ b $ hg qpush -a -m - merging with queue at: .*/t/.hg/patches.1 + merging with queue at: */t/.hg/patches.1 (glob) applying rm_a now at: rm_a @@ -91,14 +91,14 @@ Create the reference queue: $ hg qsave -c -e -n refqueue - copy .*/t2/.hg/patches to .*/t2/.hg/refqueue + copy */t2/.hg/patches to */t2/.hg/refqueue (glob) $ hg up -C 1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved Merge: $ HGMERGE=internal:other hg qpush -a -m -n refqueue - merging with queue at: .*/t2/.hg/refqueue + merging with queue at: */t2/.hg/refqueue (glob) applying patcha patching file a Hunk #1 FAILED at 0 @@ -138,10 +138,10 @@ $ cat .hg/patches/patcha2 # HG changeset patch - # Parent ........................................ + # Parent ???????????????????????????????????????? (glob) # Date 0 0 - diff -r ............ -r ............ a + diff -r ???????????? -r ???????????? a (glob) --- a/a +++ b/a @@ -1,2 +1,3 @@
--- a/tests/test-mq-missingfiles.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-missingfiles.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,8 +1,7 @@ -# Test issue835: -# qpush fails immediately when patching a missing file, but -# remaining added files are still created empty which will -# trick a future qrefresh. +Issue835: qpush fails immediately when patching a missing file, but +remaining added files are still created empty which will trick a +future qrefresh. $ cat > writelines.py <<EOF > import sys
--- a/tests/test-mq-qdiff.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-qdiff.t Fri Sep 24 19:47:50 2010 -0300 @@ -17,10 +17,10 @@ qdiff: - $ hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" + $ hg qdiff diff -r d20a80d4def3 base --- a/base Thu Jan 01 00:00:00 1970 +0000 - +++ b/base + +++ b/base* (glob) @@ -1,1 +1,1 @@ -base +patched
--- a/tests/test-mq-qfold.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-qfold.t Fri Sep 24 19:47:50 2010 -0300 @@ -59,7 +59,7 @@ [255] $ hg diff -c . - diff -r 07f494440405 -r ............ a + diff -r 07f494440405 -r ???????????? a (glob) --- a/a +++ b/a @@ -1,1 +1,3 @@ @@ -85,7 +85,7 @@ $ cat .hg/patches/regular # HG changeset patch - # Parent ........................................ + # Parent ???????????????????????????????????????? (glob) diff --git a/a b/a --- a/a @@ -127,7 +127,7 @@ $ cat .hg/patches/git # HG changeset patch - # Parent ........................................ + # Parent ???????????????????????????????????????? (glob) diff --git a/a b/aa copy from a
--- a/tests/test-mq-qrefresh.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-qrefresh.t Fri Sep 24 19:47:50 2010 -0300 @@ -255,7 +255,7 @@ diff shows what is not in patch: $ hg diff - diff -r ............ orphanchild + diff -r ???????????? orphanchild (glob) --- /dev/null +++ b/orphanchild @@ -0,0 +1,1 @@ @@ -402,7 +402,7 @@ $ cd .. -Test issue 1441: qrefresh confused after hg rename: +Issue1441: qrefresh confused after hg rename: $ hg init repo-1441 $ cd repo-1441 @@ -422,7 +422,8 @@ $ cd .. -Issue2025: qrefresh does not honor filtering options when tip != qtip: +Issue2025: qrefresh does not honor filtering options when tip != +qtip: $ hg init repo-2025 $ cd repo-2025
--- a/tests/test-mq-qrename.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-qrename.t Fri Sep 24 19:47:50 2010 -0300 @@ -59,4 +59,25 @@ $ cd .. +Test overlapping renames (issue2388) + $ hg init c + $ cd c + $ hg qinit -c + $ echo a > a + $ hg add + adding a + $ hg qnew patcha + $ echo b > b + $ hg add + adding b + $ hg qnew patchb + $ hg ci --mq -m c1 + $ hg qrename patchb patchc + $ hg qrename patcha patchb + $ hg st --mq + M patchb + M series + A patchc + R patcha + $ cd ..
--- a/tests/test-mq-safety.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-safety.t Fri Sep 24 19:47:50 2010 -0300 @@ -39,7 +39,7 @@ abort: popping would remove a revision not managed by this patch queue [255] $ hg qpop -n patches - using patch queue: .*/repo/.hg/patches + using patch queue: */repo/.hg/patches (glob) abort: popping would remove a revision not managed by this patch queue [255] $ hg qrefresh @@ -110,3 +110,67 @@ $ hg qpush applying qp now at: qp + +Testing applied patches, push and --force + + $ cd .. + $ hg init forcepush + $ cd forcepush + $ echo a > a + $ hg ci -Am adda + adding a + $ echo a >> a + $ hg ci -m changea + $ hg up 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg branch branch + marked working directory as branch branch + $ echo b > b + $ hg ci -Am addb + adding b + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg --cwd .. clone -r 0 forcepush forcepush2 + requesting all changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + updating to branch default + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo a >> a + $ hg qnew patch + +Pushing applied patch with --rev without --force + + $ hg push -r default ../forcepush2 + pushing to ../forcepush2 + abort: source has mq patches applied + [255] + +Pushing applied patch with branchhash, without --force + + $ hg push ../forcepush2#default + pushing to ../forcepush2 + abort: source has mq patches applied + [255] + +Pushing revs excluding applied patch + + $ hg push --new-branch -r branch -r 2 ../forcepush2 + pushing to ../forcepush2 + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + +Pushing applied patch with --force + + $ hg push --force -r default ../forcepush2 + pushing to ../forcepush2 + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files (+1 heads)
--- a/tests/test-mq-strip.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-strip.t Fri Sep 24 19:47:50 2010 -0300 @@ -77,7 +77,7 @@ summary: e 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) % after update 4, strip 4 changeset: 3:65bd5f99a4a3 tag: tip @@ -96,7 +96,7 @@ summary: e 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) % after update 4, strip 3 changeset: 1:ef3a871183d7 user: test @@ -111,7 +111,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: b - saved backup bundle to .* + saved backup bundle to * (glob) % after update 1, strip 4 changeset: 1:ef3a871183d7 user: test @@ -127,7 +127,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: e - saved backup bundle to .* + saved backup bundle to * (glob) % after update 4, strip 2 changeset: 3:443431ffac4f tag: tip @@ -146,7 +146,7 @@ summary: c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) % after update 4, strip 1 changeset: 0:9ab35a2d17cb tag: tip @@ -157,7 +157,7 @@ $ teststrip null 4 0 files updated, 0 files merged, 1 files removed, 0 files unresolved % before update null, strip 4 - saved backup bundle to .* + saved backup bundle to * (glob) % after update null, strip 4 $ hg log @@ -212,7 +212,7 @@ $ hg strip 4 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) after strip of merge parent @@ -258,7 +258,7 @@ 2 is parent of 3, only one strip should happen $ hg strip 2 3 - saved backup bundle to .* + saved backup bundle to * (glob) $ hg glog @ changeset: 2:264128213d29 | tag: tip @@ -310,8 +310,8 @@ $ hg strip 2 4 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* - saved backup bundle to .* + saved backup bundle to * (glob) + saved backup bundle to * (glob) $ hg glog @ changeset: 2:65bd5f99a4a3 | tag: tip @@ -335,14 +335,14 @@ $ hg strip 1 2 4 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) $ restore remove branchy history for qimport tests $ hg strip 3 - saved backup bundle to .* + saved backup bundle to * (glob) strip of applied mq should cleanup status file @@ -364,7 +364,7 @@ $ hg strip 3 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) applied patches after stripping rev in queue @@ -375,7 +375,7 @@ $ hg strip 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) applied patches after stripping ancestor of queue
--- a/tests/test-mq-symlinks.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq-symlinks.t Fri Sep 24 19:47:50 2010 -0300 @@ -95,7 +95,8 @@ $ hg add linka $ hg qnew link $ hg mv linka linkb - $ ln -sf linkb linkb + $ rm linkb + $ ln -s linkb linkb $ hg qnew movelink $ hg qpop popping movelink
--- a/tests/test-mq.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-mq.t Fri Sep 24 19:47:50 2010 -0300 @@ -135,7 +135,7 @@ guards $ cat .hg/patches/series $ hg qinit -c - abort: repository .* already exists! + abort: repository * already exists! (glob) [255] $ cd .. @@ -204,8 +204,7 @@ $ hg init g $ hg init --mq g - $ test -d g/.hg/patches/.hg && echo "ok" || echo "failed" - ok + $ test -d g/.hg/patches/.hg init --mq with nonexistent directory @@ -238,9 +237,9 @@ $ cat .hg/patches/test.patch foo bar - diff -r [a-f0-9]* a - --- a/a\t(?P<date>.*) - \+\+\+ b/a\t(?P<date2>.*) + diff -r [a-f0-9]* a (re) + --- a/a\t(?P<date>.*) (re) + \+\+\+ b/a\t(?P<date2>.*) (re) @@ -1,1 +1,2 @@ a +a @@ -291,7 +290,7 @@ .hg/tags.cache (pre qpush): $ cat .hg/tags.cache - 1 [\da-f]{40} + 1 [\da-f]{40} (re) $ hg qpush applying test.patch @@ -301,7 +300,7 @@ .hg/tags.cache (post qpush): $ cat .hg/tags.cache - 2 [\da-f]{40} + 2 [\da-f]{40} (re) $ checkundo qpush $ cd .. @@ -633,14 +632,6 @@ added 1 changesets with 1 changes to 1 files -qpush/qpop error codes - - $ errorcode() - > { - > hg "$@" && echo " $@ succeeds" || echo " $@ fails" - > } - - we want to start with some patches applied $ hg qpush -a @@ -651,105 +642,92 @@ % pops all patches and succeeds - $ errorcode qpop -a + $ hg qpop -a popping test2.patch popping test1b.patch popping test.patch patch queue now empty - qpop -a succeeds % does nothing and succeeds - $ errorcode qpop -a + $ hg qpop -a no patches applied - qpop -a succeeds % fails - nothing else to pop - $ errorcode qpop + $ hg qpop no patches applied - qpop fails + [1] % pushes a patch and succeeds - $ errorcode qpush + $ hg qpush applying test.patch now at: test.patch - qpush succeeds % pops a patch and succeeds - $ errorcode qpop + $ hg qpop popping test.patch patch queue now empty - qpop succeeds % pushes up to test1b.patch and succeeds - $ errorcode qpush test1b.patch + $ hg qpush test1b.patch applying test.patch applying test1b.patch now at: test1b.patch - qpush test1b.patch succeeds % does nothing and succeeds - $ errorcode qpush test1b.patch + $ hg qpush test1b.patch qpush: test1b.patch is already at the top - qpush test1b.patch succeeds % does nothing and succeeds - $ errorcode qpop test1b.patch + $ hg qpop test1b.patch qpop: test1b.patch is already at the top - qpop test1b.patch succeeds % fails - can't push to this patch - $ errorcode qpush test.patch + $ hg qpush test.patch abort: cannot push to a previous patch: test.patch - qpush test.patch fails + [255] % fails - can't pop to this patch - $ errorcode qpop test2.patch + $ hg qpop test2.patch abort: patch test2.patch is not applied - qpop test2.patch fails + [255] % pops up to test.patch and succeeds - $ errorcode qpop test.patch + $ hg qpop test.patch popping test1b.patch now at: test.patch - qpop test.patch succeeds % pushes all patches and succeeds - $ errorcode qpush -a + $ hg qpush -a applying test1b.patch applying test2.patch now at: test2.patch - qpush -a succeeds % does nothing and succeeds - $ errorcode qpush -a + $ hg qpush -a all patches are currently applied - qpush -a succeeds % fails - nothing else to push - $ errorcode qpush + $ hg qpush patch series already fully applied - qpush fails + [1] % does nothing and succeeds - $ errorcode qpush test2.patch + $ hg qpush test2.patch qpush: test2.patch is already at the top - qpush test2.patch succeeds - - strip @@ -759,7 +737,7 @@ adding x $ hg strip tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) $ hg unbundle .hg/strip-backup/* adding changesets adding manifests @@ -782,7 +760,7 @@ $ hg strip -f tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) cd b; hg qrefresh @@ -804,14 +782,14 @@ foo diff -r cb9a9f314b8b a - --- a/a\t(?P<date>.*) - \+\+\+ b/a\t(?P<date>.*) + --- a/a\t(?P<date>.*) (re) + \+\+\+ b/a\t(?P<date>.*) (re) @@ -1,1 +1,2 @@ a +a diff -r cb9a9f314b8b b/f - --- /dev/null\t(?P<date>.*) - \+\+\+ b/b/f\t(?P<date>.*) + --- /dev/null\t(?P<date>.*) (re) + \+\+\+ b/b/f\t(?P<date>.*) (re) @@ -0,0 +1,1 @@ +f @@ -822,8 +800,8 @@ foo diff -r cb9a9f314b8b b/f - --- /dev/null\t(?P<date>.*) - \+\+\+ b/b/f\t(?P<date>.*) + --- /dev/null\t(?P<date>.*) (re) + \+\+\+ b/b/f\t(?P<date>.*) (re) @@ -0,0 +1,1 @@ +f $ hg status @@ -1087,7 +1065,7 @@ $ hg qpush applying addbucephalus now at: addbucephalus - $ test -f bucephalus || echo % bucephalus should be there + $ test -f bucephalus $ python "$TESTDIR/md5sum.py" bucephalus 8ba2a2f3e77b55d03051ff9c24ad65e7 bucephalus @@ -1140,7 +1118,7 @@ $ hg strip 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - saved backup bundle to .* + saved backup bundle to * (glob) $ checkundo strip $ hg log changeset: 1:20cbbe65cff7 @@ -1237,7 +1215,7 @@ $ cd .. -test applying on an empty file (issue 1033) +Issue1033: test applying on an empty file $ hg init empty $ cd empty
--- a/tests/test-parse-date.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-parse-date.t Fri Sep 24 19:47:50 2010 -0300 @@ -91,7 +91,7 @@ $ hg debugdate "2006-02-01 1:00:30PM +0000" internal: 1138798830 0 standard: Wed Feb 01 13:00:30 2006 +0000 - $ hg debugdate "1:00:30PM" > /dev/null || echo 'failed' + $ hg debugdate "1:00:30PM" > /dev/null Test date formats with '>' or '<' accompanied by space characters
--- a/tests/test-patchbomb.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-patchbomb.t Fri Sep 24 19:47:50 2010 -0300 @@ -25,8 +25,8 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH] a X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab - Message-Id: <8580ff50825a50c8f716.60@.* - User-Agent: Mercurial-patchbomb/.* + Message-Id: <8580ff50825a50c8f716.60@* (glob) + User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux To: foo @@ -80,8 +80,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2] test - Message-Id: <patchbomb.120@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <patchbomb\.120@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:00 +0000 From: quux To: foo @@ -94,10 +94,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 1 of 2] a X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab - Message-Id: <8580ff50825a50c8f716.121@[^>]*> - In-Reply-To: <patchbomb.120@[^>]*> - References: <patchbomb.120@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <8580ff50825a50c8f716\.121@[^>]*> (re) + In-Reply-To: <patchbomb\.120@[^>]*> (re) + References: <patchbomb\.120@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:01 +0000 From: quux To: foo @@ -122,10 +122,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 2 of 2] b X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 - Message-Id: <97d72e5f12c7e84f8506.122@[^>]*> - In-Reply-To: <patchbomb.120@[^>]*> - References: <patchbomb.120@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <97d72e5f12c7e84f8506\.122@[^>]*> (re) + In-Reply-To: <patchbomb\.120@[^>]*> (re) + References: <patchbomb\.120@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:02 +0000 From: quux To: foo @@ -241,8 +241,8 @@ Content-Transfer-Encoding: base64 Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a - Message-Id: <c3c9e37db9f4fe4882cd.240@.* - User-Agent: Mercurial-patchbomb/.* + Message-Id: <c3c9e37db9f4fe4882cd.240@* (glob) + User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:04:00 +0000 From: quux To: foo @@ -1810,8 +1810,8 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH] test X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab - Message-Id: <8580ff50825a50c8f716.315532860@.* - User-Agent: Mercurial-patchbomb/.* + Message-Id: <8580ff50825a50c8f716.315532860@* (glob) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:00 +0000 From: quux To: bar@xn--nicode-2ya.com @@ -1857,8 +1857,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 8] test - Message-Id: <patchbomb.315532860@.* - User-Agent: Mercurial-patchbomb/.* + Message-Id: <patchbomb.315532860@* (glob) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:00 +0000 From: test To: foo @@ -1870,10 +1870,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 1 of 8] c X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f - Message-Id: <ff2c9fa2018b15fa74b3.315532861@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <ff2c9fa2018b15fa74b3.315532861@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:01 +0000 From: test To: foo @@ -1897,10 +1897,10 @@ Content-Transfer-Encoding: 8bit Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a - Message-Id: <c3c9e37db9f4fe4882cd.315532862@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <c3c9e37db9f4fe4882cd.315532862@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:02 +0000 From: test To: foo @@ -1932,10 +1932,10 @@ Subject: [PATCH 3 of 8] charset=utf-8; content-transfer-encoding: quoted-printable X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 - Message-Id: <c655633f8c87700bb38c.315532863@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <c655633f8c87700bb38c.315532863@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:03 +0000 From: test To: foo @@ -1975,10 +1975,10 @@ Content-Transfer-Encoding: 8bit Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835 - Message-Id: <22d0f96be12f5945fd67.315532864@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <22d0f96be12f5945fd67.315532864@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:04 +0000 From: test To: foo @@ -2002,10 +2002,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903 - Message-Id: <dd9c2b4b8a8a0934d552.315532865@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <dd9c2b4b8a8a0934d552.315532865@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:05 +0000 From: test To: foo @@ -2030,10 +2030,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7 X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff - Message-Id: <eae5fcf795eee29d0e45.315532866@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <eae5fcf795eee29d0e45.315532866@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:06 +0000 From: test To: foo @@ -2060,10 +2060,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6 - Message-Id: <e317db6a6f288748d1f6.315532867@.* - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <e317db6a6f288748d1f6.315532867@* (glob) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:07 +0000 From: test To: foo @@ -2091,10 +2091,10 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH 8 of 8] d X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268 - Message-Id: <2f9fa9b998c5fe3ac2bd.315532868[^>]*> - In-Reply-To: <patchbomb.315532860@[^>]*> - References: <patchbomb.315532860@[^>]*> - User-Agent: Mercurial-patchbomb/.* + Message-Id: <2f9fa9b998c5fe3ac2bd\.315532868[^>]*> (re) + In-Reply-To: <patchbomb\.315532860@[^>]*> (re) + References: <patchbomb\.315532860@[^>]*> (re) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:08 +0000 From: test To: foo @@ -2129,8 +2129,8 @@ Content-Transfer-Encoding: 7bit Subject: [PATCH] test X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268 - Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@.* - User-Agent: Mercurial-patchbomb/.* + Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@* (glob) + User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:00 +0000 From: test To: foo
--- a/tests/test-paths.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-paths.t Fri Sep 24 19:47:50 2010 -0300 @@ -6,11 +6,11 @@ $ echo '[paths]' >> .hg/hgrc $ echo 'dupe = ../b' >> .hg/hgrc $ hg in dupe - comparing with .*/test-paths.t/b + comparing with */test-paths.t/b (glob) no changes found [1] $ cd .. $ hg -R a in dupe - comparing with .*/test-paths.t/b + comparing with */test-paths.t/b (glob) no changes found [1]
--- a/tests/test-permissions.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-permissions.t Fri Sep 24 19:47:50 2010 -0300 @@ -15,17 +15,17 @@ $ chmod -r .hg/store/data/a.i - $ hg verify || echo %%% verify failed + $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files - abort: Permission denied: .* - %%% verify failed + abort: Permission denied: * (glob) + [255] $ chmod +r .hg/store/data/a.i - $ hg verify || echo %%% verify failed + $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests @@ -35,10 +35,10 @@ $ chmod -w .hg/store/data/a.i $ echo barber > a - $ hg commit -m "2" || echo %%% commit failed + $ hg commit -m "2" trouble committing a! - abort: Permission denied: .* - %%% commit failed + abort: Permission denied: * (glob) + [255] $ chmod -w .
--- a/tests/test-pull.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-pull.t Fri Sep 24 19:47:50 2010 -0300 @@ -18,7 +18,7 @@ $ cat hg.pid >> $DAEMON_PIDS $ cd .. - $ hg clone --pull http://foo:bar@localhost:$HGPORT/ copy | sed -e "s,:$HGPORT/,:\$HGPORT/," + $ hg clone --pull http://foo:bar@localhost:$HGPORT/ copy requesting all changes adding changesets adding manifests @@ -43,15 +43,15 @@ $ hg manifest --debug 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo - $ hg pull | sed -e "s,:$HGPORT/,:\$HGPORT/," - pulling from http://foo:***@localhost:$HGPORT/ + $ hg pull + pulling from http://foo:\*\*\*@localhost:.*/ (re) searching for changes no changes found - $ hg rollback --dry-run --verbose | sed -e "s,:$HGPORT/,:\$HGPORT/," - rolling back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/) + $ hg rollback --dry-run --verbose + rolling back to revision -1 \(undo pull: http://foo:\*\*\*@localhost:.*/\) (re) -Issue 622: +Issue622: hg init && hg pull -u URL doesn't checkout default branch $ cd .. $ hg init empty
--- a/tests/test-push-validation.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-push-validation.t Fri Sep 24 19:47:50 2010 -0300 @@ -40,7 +40,7 @@ Expected to fail: $ hg push - pushing to .* + pushing to * (glob) searching for changes adding changesets adding manifests
--- a/tests/test-push-warn.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-push-warn.t Fri Sep 24 19:47:50 2010 -0300 @@ -92,50 +92,47 @@ $ hg ci -m c-d - $ hg push ../c; echo $? + $ hg push ../c pushing to ../c searching for changes abort: push creates new remote heads on branch 'default'! (did you forget to merge? use push -f to force) - 255 + [255] - $ hg push -r 2 ../c; echo $? + $ hg push -r 2 ../c pushing to ../c searching for changes no changes found - 0 - $ hg push -r 3 ../c; echo $? + $ hg push -r 3 ../c pushing to ../c searching for changes abort: push creates new remote heads on branch 'default'! (did you forget to merge? use push -f to force) - 255 + [255] - $ hg push -r 3 -r 4 ../c; echo $? + $ hg push -r 3 -r 4 ../c pushing to ../c searching for changes abort: push creates new remote heads on branch 'default'! (did you forget to merge? use push -f to force) - 255 + [255] - $ hg push -f -r 3 -r 4 ../c; echo $? + $ hg push -f -r 3 -r 4 ../c pushing to ../c searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 1 files (+2 heads) - 0 - $ hg push -r 5 ../c; echo $? + $ hg push -r 5 ../c pushing to ../c searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (-1 heads) - 0 $ hg in ../c comparing with ../c @@ -144,31 +141,31 @@ [1] -Issue 450: +Issue450: push -r warns about remote head creation even if no heads +will be created $ hg init ../e - $ hg push -r 0 ../e ; echo $? + $ hg push -r 0 ../e pushing to ../e searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 0 - $ hg push -r 1 ../e ; echo $? + $ hg push -r 1 ../e pushing to ../e searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 0 $ cd .. -Issue 736: +Issue736: named branches are not considered for detection of +unmerged heads in "hg push" $ hg init f $ cd f @@ -199,19 +196,19 @@ $ hg -q branch c $ hg -q ci -m 5 - $ hg push ../f; echo $? + $ hg push ../f pushing to ../f searching for changes abort: push creates new remote branches: c! (use 'hg push --new-branch' to create new remote branches) - 255 + [255] - $ hg push -r 4 -r 5 ../f; echo $? + $ hg push -r 4 -r 5 ../f pushing to ../f searching for changes abort: push creates new remote branches: c! (use 'hg push --new-branch' to create new remote branches) - 255 + [255] Multiple new branches: @@ -220,19 +217,19 @@ $ echo 6 > foo $ hg -q ci -m 6 - $ hg push ../f; echo $? + $ hg push ../f pushing to ../f searching for changes abort: push creates new remote branches: c, d! (use 'hg push --new-branch' to create new remote branches) - 255 + [255] - $ hg push -r 4 -r 6 ../f; echo $? + $ hg push -r 4 -r 6 ../f pushing to ../f searching for changes abort: push creates new remote branches: c, d! (use 'hg push --new-branch' to create new remote branches) - 255 + [255] $ cd ../g @@ -243,12 +240,12 @@ $ echo 7 > foo $ hg -q ci -m 7 - $ hg push -r 4 -r 7 ../f; echo $? + $ hg push -r 4 -r 7 ../f pushing to ../f searching for changes abort: push creates new remote heads on branch 'a'! (did you forget to merge? use push -f to force) - 255 + [255] Push replacement head on existing branches: @@ -256,14 +253,13 @@ $ echo 8 > foo $ hg -q ci -m 8 - $ hg push -r 7 -r 8 ../f; echo $? + $ hg push -r 7 -r 8 ../f pushing to ../f searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 1 files - 0 Merge of branch a to other branch b followed by unrelated push @@ -276,23 +272,21 @@ $ echo 10 > foo $ hg -q ci -m 10 - $ hg push -r 9 ../f; echo $? + $ hg push -r 9 ../f pushing to ../f searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (-1 heads) - 0 - $ hg push -r 10 ../f; echo $? + $ hg push -r 10 ../f pushing to ../f searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 0 Cheating the counting algorithm: @@ -304,14 +298,13 @@ $ echo 12 > foo $ hg -q ci -m 12 - $ hg push -r 11 -r 12 ../f; echo $? + $ hg push -r 11 -r 12 ../f pushing to ../f searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 1 files - 0 Failed push of new named branch: @@ -324,24 +317,23 @@ $ hg -q branch e $ hg -q ci -m 13d - $ hg push -r 12 -r 13 ../f; echo $? + $ hg push -r 12 -r 13 ../f pushing to ../f searching for changes abort: push creates new remote branches: e! (use 'hg push --new-branch' to create new remote branches) - 255 + [255] Using --new-branch to push new named branch: - $ hg push --new-branch -r 12 -r 13 ../f; echo $? + $ hg push --new-branch -r 12 -r 13 ../f pushing to ../f searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 0 Checking prepush logic does not allow silently pushing
--- a/tests/test-relink.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-relink.t Fri Sep 24 19:47:50 2010 -0300 @@ -60,7 +60,7 @@ relink $ hg relink --debug | fix_path - relinking .*/.hg/store + relinking */.hg/store (glob) tip has 2 files, estimated total number of files: 3 collecting: 00changelog.i 1/3 files (33.33%) collecting: 00manifest.i 2/3 files (66.67%)
--- a/tests/test-remove.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-remove.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,6 +1,6 @@ $ remove() { > hg rm $@ - > echo "exit code: $?" + > echo "exit code: $?" # no-check-code > hg st > # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5 > find . -name .hg -prune -o -type f -print | sort
--- a/tests/test-rename-after-merge.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-rename-after-merge.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,5 +1,5 @@ -Test issue 746: renaming files brought by the second parent of a merge -was broken. +Issue746: renaming files brought by the second parent of a merge was +broken. Create source repository: @@ -59,8 +59,8 @@ $ cd .. -Test issue 1476: renaming a first parent file into another first -parent file while none of them belong to the second parent was broken +Issue 1476: renaming a first parent file into another first parent +file while none of them belong to the second parent was broken $ hg init repo1476 $ cd repo1476
--- a/tests/test-rename.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-rename.t Fri Sep 24 19:47:50 2010 -0300 @@ -263,8 +263,8 @@ R d1/ba R d1/d11/a1 $ diff -u d1/b d2/b - --- d1/b .* - \+\+\+ d2/b .* + --- d1/b * (glob) + +++ d2/b * (glob) @@ -1 +1 @@ -d1/b +d2/b
--- a/tests/test-revert.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-revert.t Fri Sep 24 19:47:50 2010 -0300 @@ -168,7 +168,7 @@ $ cd .. -issue 241 +Issue241: update and revert produces inconsistent repositories $ hg init a $ cd a @@ -194,7 +194,7 @@ reverting a -issue332 +Issue332: confusing message when reverting directory $ hg ci -A -m b adding b/b
--- a/tests/test-revlog-group-emptyiter.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-revlog-group-emptyiter.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,4 +1,4 @@ -issue 1678 +Issue1678: IndexError when pushing setting up base repo $ hg init a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-run-tests.t Fri Sep 24 19:47:50 2010 -0300 @@ -0,0 +1,37 @@ +Simple commands: + + $ echo foo + foo + $ printf 'bar\nbaz\n' | cat + bar + baz + +Multi-line command: + + $ foo() { + > echo bar + > } + $ foo + bar + +Regular expressions: + + $ echo foobarbaz + foobar.* (re) + $ echo barbazquux + .*quux.* (re) + +Globs: + + $ printf '* \\foobarbaz {10}\n' + \* \\fo?bar* {10} (glob) + +Literal match ending in " (re)": + + $ echo 'foo (re)' + foo (re) + +Exit code: + + $ false + [1]
--- a/tests/test-simple-update.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-simple-update.t Fri Sep 24 19:47:50 2010 -0300 @@ -1,5 +1,3 @@ - $ set -e - $ mkdir test $ cd test $ echo foo>foo
--- a/tests/test-status-color.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-status-color.t Fri Sep 24 19:47:50 2010 -0300 @@ -214,11 +214,10 @@ $ assert() { > hg status --color=always $1 > ../a > hg status --color=always $2 > ../b - > out=`diff ../a ../b` - > if [ $? -ne 0 ]; then + > if diff ../a ../b > /dev/null; then + > out=0 + > else > out=1 - > else - > out=0 > fi > if [ $3 -eq 0 ]; then > df="same"
--- a/tests/test-status.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-status.t Fri Sep 24 19:47:50 2010 -0300 @@ -196,13 +196,12 @@ If result is not as expected, raise error $ assert() { - > hg status $1 > ../a - > hg status $2 > ../b - > out=`diff ../a ../b` - > if [ $? -ne 0 ]; then + > hg status $1 > ../a + > hg status $2 > ../b + > if diff ../a ../b > /dev/null; then + > out=0 + > else > out=1 - > else - > out=0 > fi > if [ $3 -eq 0 ]; then > df="same"
--- a/tests/test-subrepo-deep-nested-change.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo-deep-nested-change.t Fri Sep 24 19:47:50 2010 -0300 @@ -27,7 +27,7 @@ $ echo "sub1 = ../sub1" > main/.hgsub $ hg clone sub1 main/sub1 updating to branch default - pulling subrepo sub2 from .*/sub2 + pulling subrepo sub2 from */sub2 (glob) requesting all changes adding changesets adding manifests @@ -55,13 +55,13 @@ $ hg clone main cloned updating to branch default - pulling subrepo sub1 from .*/sub1 + pulling subrepo sub1 from */sub1 (glob) requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 3 changes to 3 files - pulling subrepo sub1/sub2 from .*/sub2 + pulling subrepo sub1/sub2 from */sub2 (glob) requesting all changes adding changesets adding manifests
--- a/tests/test-subrepo-paths.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo-paths.t Fri Sep 24 19:47:50 2010 -0300 @@ -28,5 +28,5 @@ > .* = \1 > EOF $ hg debugsub - abort: bad subrepository pattern in .*/test-subrepo-paths.t/outer/.hg/hgrc:2: invalid group reference + abort: bad subrepository pattern in */test-subrepo-paths.t/outer/.hg/hgrc:2: invalid group reference (glob) [255]
--- a/tests/test-subrepo-recursion.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo-recursion.t Fri Sep 24 19:47:50 2010 -0300 @@ -230,18 +230,18 @@ Test archiving to a directory tree: $ hg archive --subrepos ../archive - $ find ../archive + $ find ../archive | sort ../archive + ../archive/.hg_archival.txt + ../archive/.hgsub + ../archive/.hgsubstate ../archive/foo + ../archive/foo/.hgsub + ../archive/foo/.hgsubstate ../archive/foo/bar ../archive/foo/bar/z.txt - ../archive/foo/.hgsubstate - ../archive/foo/.hgsub ../archive/foo/y.txt ../archive/x.txt - ../archive/.hgsubstate - ../archive/.hgsub - ../archive/.hg_archival.txt Test archiving to zip file (unzip output is unstable): @@ -252,13 +252,13 @@ $ cd .. $ hg clone repo repo2 updating to branch default - pulling subrepo foo from .*/test-subrepo-recursion.t/repo/foo + pulling subrepo foo from */test-subrepo-recursion.t/repo/foo (glob) requesting all changes adding changesets adding manifests adding file changes added 4 changesets with 7 changes to 3 files - pulling subrepo foo/bar from .*/test-subrepo-recursion.t/repo/foo/bar + pulling subrepo foo/bar from */test-subrepo-recursion.t/repo/foo/bar (glob) requesting all changes adding changesets adding manifests @@ -267,15 +267,16 @@ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd repo2 $ hg outgoing -S - comparing with .*/test-subrepo-recursion.t/repo + comparing with */test-subrepo-recursion.t/repo (glob) searching for changes no changes found - comparing with .*/test-subrepo-recursion.t/repo/foo + comparing with */test-subrepo-recursion.t/repo/foo (glob) + searching for changes + no changes found + comparing with */test-subrepo-recursion.t/repo/foo/bar (glob) searching for changes no changes found [1] - $ echo $? - 0 Make nested change: @@ -292,7 +293,7 @@ $ hg commit -m 3-4-2 committing subrepository foo $ hg outgoing -S - comparing with .*/test-subrepo-recursion.t/repo + comparing with */test-subrepo-recursion.t/repo (glob) searching for changes changeset: 3:2655b8ecc4ee tag: tip @@ -300,7 +301,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 3-4-2 - comparing with .*/test-subrepo-recursion.t/repo/foo + comparing with */test-subrepo-recursion.t/repo/foo (glob) searching for changes changeset: 4:e96193d6cb36 tag: tip @@ -308,6 +309,9 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 3-4-2 + comparing with */test-subrepo-recursion.t/repo/foo/bar (glob) + searching for changes + no changes found Switch to original repo and setup default path: @@ -318,7 +322,7 @@ Test incoming: $ hg incoming -S - comparing with .*/test-subrepo-recursion.t/repo2 + comparing with */test-subrepo-recursion.t/repo2 (glob) searching for changes changeset: 3:2655b8ecc4ee tag: tip @@ -326,7 +330,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 3-4-2 - comparing with .*/test-subrepo-recursion.t/repo2/foo + comparing with */test-subrepo-recursion.t/repo2/foo (glob) searching for changes changeset: 4:e96193d6cb36 tag: tip @@ -334,6 +338,10 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 3-4-2 + comparing with */test-subrepo-recursion.t/repo2/foo/bar (glob) + searching for changes + no changes found + $ hg incoming -S --bundle incoming.hg abort: cannot combine --bundle and --subrepos [255]
--- a/tests/test-subrepo-relative-path.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo-relative-path.t Fri Sep 24 19:47:50 2010 -0300 @@ -44,7 +44,7 @@ adding file changes added 1 changesets with 3 changes to 3 files updating to branch default - pulling subrepo sub from http://localhost:[0-9]+/sub + pulling subrepo sub from http://localhost:[0-9]+/sub (re) requesting all changes adding changesets adding manifests
--- a/tests/test-subrepo-svn.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo-svn.t Fri Sep 24 19:47:50 2010 -0300 @@ -5,18 +5,12 @@ > tr '\\' / > } - $ escapedwd=`pwd | fix_path` - SVN wants all paths to start with a slash. Unfortunately, Windows ones don't. Handle that. - $ expr "$escapedwd" : "\/" > /dev/null - $ if [ $? -ne 0 ]; then - > escapedwd="/$escapedwd" - > fi + $ escapedwd=`pwd | fix_path` + $ expr "$escapedwd" : / > /dev/null || escapedwd="/$escapedwd" $ escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"` - $ filterpath="s|$escapedwd|/root|" - $ filteroutofdate='s/ in transaction.*/ is out of date/;s/Out of date: /File /' create subversion repo @@ -77,29 +71,28 @@ debugsub - $ hg debugsub | sed "$filterpath" + $ hg debugsub path s - source file:///root/svn-repo/src + source file:///*/svn-repo/src (glob) revision 2 change file in svn and hg, commit $ echo a >> a $ echo alpha >> s/alpha - $ hg commit -m 'Message!' \ - > | sed 's:Sending.*s/alpha:Sending s/alpha:g' + $ hg commit -m 'Message!' committing subrepository s - Sending s/alpha + Sending*s/alpha (glob) Transmitting file data . Committed revision 3. - Fetching external item into '.*/s/externals' + Fetching external item into '*/s/externals' (glob) External at revision 1. At revision 3. - $ hg debugsub | sed "$filterpath" + $ hg debugsub path s - source file:///root/svn-repo/src + source file:///*/svn-repo/src (glob) revision 3 $ echo a > s/a @@ -131,20 +124,22 @@ this commit from hg will fail $ echo zzz >> s/alpha - $ hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate" + $ hg ci -m 'amend alpha from hg' committing subrepository s abort: svn: Commit failed (details follow): - svn: File '/src/alpha' is out of date + svn: (Out of date)?.*/src/alpha.*(is out of date)? (re) + [255] $ svn revert -q s/alpha this commit fails because of meta changes $ svn propset svn:mime-type 'text/html' s/alpha property 'svn:mime-type' set on 's/alpha' - $ hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate" + $ hg ci -m 'amend alpha from hg' committing subrepository s abort: svn: Commit failed (details follow): - svn: File '/src/alpha' is out of date + svn: (Out of date)?.*/src/alpha.*(is out of date)? (re) + [255] $ svn revert -q s/alpha this commit fails because of externals changes @@ -195,9 +190,9 @@ debugsub in clone - $ hg debugsub | sed "$filterpath" + $ hg debugsub path s - source file:///root/svn-repo/src + source file:///*/svn-repo/src (glob) revision 3 verify subrepo is contained within the repo directory
--- a/tests/test-subrepo.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-subrepo.t Fri Sep 24 19:47:50 2010 -0300 @@ -17,7 +17,7 @@ $ hg init s $ echo a > s/a -issue2232 - committing a subrepo without .hgsub +Issue2232: committing a subrepo without .hgsub $ hg ci -mbad s abort: can't commit subrepos without .hgsub @@ -34,7 +34,7 @@ $ hg ci -m1 committing subrepository s -issue 2022 - update -C +Issue2022: update -C $ echo b > s/a $ hg sum @@ -236,19 +236,19 @@ $ cd .. $ hg clone t tc updating to branch default - pulling subrepo s from .*/sub/t/s + pulling subrepo s from */sub/t/s (glob) requesting all changes adding changesets adding manifests adding file changes added 4 changesets with 5 changes to 3 files - pulling subrepo s/ss from .*/sub/t/s/ss + pulling subrepo s/ss from */sub/t/s/ss (glob) requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files - pulling subrepo t from .*/sub/t/t + pulling subrepo t from */sub/t/t (glob) requesting all changes adding changesets adding manifests @@ -270,14 +270,14 @@ $ hg ci -m11 committing subrepository t $ hg push - pushing .*sub/t - pushing .*sub/t/s/ss + pushing *sub/t (glob) + pushing *sub/t/s/ss (glob) searching for changes no changes found - pushing .*sub/t/s + pushing *sub/t/s (glob) searching for changes no changes found - pushing .*sub/t/t + pushing *sub/t/t (glob) searching for changes adding changesets adding manifests @@ -295,27 +295,27 @@ $ hg ci -m12 committing subrepository s $ hg push - pushing .*sub/t - pushing .*sub/t/s/ss + pushing *sub/t (glob) + pushing *sub/t/s/ss (glob) searching for changes no changes found - pushing .*sub/t/s + pushing *sub/t/s (glob) searching for changes abort: push creates new remote heads on branch 'default'! (did you forget to merge? use push -f to force) [255] $ hg push -f - pushing .*sub/t - pushing .*sub/t/s/ss + pushing *sub/t (glob) + pushing *sub/t/s/ss (glob) searching for changes no changes found - pushing .*sub/t/s + pushing *sub/t/s (glob) searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - pushing .*sub/t/t + pushing *sub/t/t (glob) searching for changes no changes found searching for changes @@ -337,7 +337,7 @@ $ cd ../tc $ hg pull - pulling .*sub/t + pulling *sub/t (glob) searching for changes adding changesets adding manifests @@ -348,7 +348,7 @@ should pull t $ hg up - pulling subrepo t from .*/sub/t/t + pulling subrepo t from */sub/t/t (glob) searching for changes adding changesets adding manifests @@ -365,7 +365,8 @@ abort: missing ] in subrepo source [255] -issue 1986 +Issue1986: merge aborts when trying to merge a subrepo that +shouldn't need merging # subrepo layout # @@ -541,12 +542,12 @@ $ cat mercurial2/main/nested_absolute/.hg/hgrc \ > mercurial2/main/nested_relative/.hg/hgrc [paths] - default = .*/test-subrepo.t/sub/mercurial/nested_absolute + default = */test-subrepo.t/sub/mercurial/nested_absolute (glob) [paths] - default = .*/test-subrepo.t/sub/mercurial/nested_relative + default = */test-subrepo.t/sub/mercurial/nested_relative (glob) $ rm -rf mercurial mercurial2 -issue 1977 +Issue1977: multirepo push should fail if subrepo push fails $ hg init repo $ hg init repo/s @@ -559,7 +560,7 @@ committing subrepository s $ hg clone repo repo2 updating to branch default - pulling subrepo s from .*/sub/repo/s + pulling subrepo s from */sub/repo/s (glob) requesting all changes adding changesets adding manifests
--- a/tests/test-symlinks.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-symlinks.t Fri Sep 24 19:47:50 2010 -0300 @@ -240,7 +240,7 @@ dangling2 -> void -issue995 +Issue995: hg copy -A incorrectly handles symbolic links $ hg up -C 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-tag.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-tag.t Fri Sep 24 19:47:50 2010 -0300 @@ -32,30 +32,30 @@ $ echo foo >> .hgtags - $ hg tag "bleah2" || echo "failed" + $ hg tag "bleah2" abort: working copy of .hgtags is changed (please commit .hgtags manually) - failed + [255] $ hg revert .hgtags - $ hg tag -r 0 x y z y y z || echo "failed" + $ hg tag -r 0 x y z y y z abort: tag names must be unique - failed - $ hg tag tap nada dot tip null . || echo "failed" + [255] + $ hg tag tap nada dot tip null . abort: the name 'tip' is reserved - failed - $ hg tag "bleah" || echo "failed" + [255] + $ hg tag "bleah" abort: tag 'bleah' already exists (use -f to force) - failed - $ hg tag "blecch" "bleah" || echo "failed" + [255] + $ hg tag "blecch" "bleah" abort: tag 'bleah' already exists (use -f to force) - failed + [255] - $ hg tag --remove "blecch" || echo "failed" + $ hg tag --remove "blecch" abort: tag 'blecch' does not exist - failed - $ hg tag --remove "bleah" "blecch" "blough" || echo "failed" + [255] + $ hg tag --remove "bleah" "blecch" "blough" abort: tag 'blecch' does not exist - failed + [255] $ hg tag -r 0 "bleah0" $ hg tag -l -r 1 "bleah1" @@ -148,7 +148,8 @@ $ cd test -issue 601 +Issue601: hg tag doesn't do the right thing if .hgtags or localtags +doesn't end with EOL $ python << EOF > f = file('.hg/localtags'); last = f.readlines()[-1][:-1]; f.close()
--- a/tests/test-tags.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-tags.t Fri Sep 24 19:47:50 2010 -0300 @@ -123,7 +123,7 @@ $ echo "spam" >> .hgtags $ echo >> .hgtags $ echo "foo bar" >> .hgtags - $ echo "$T invalid" | sed "s/..../a5a5/" >> .hg/localtags + $ echo "a5a5 invalid" >> .hg/localtags $ echo "committing .hgtags:" committing .hgtags: $ cat .hgtags @@ -299,7 +299,7 @@ Strip 1: expose an old head: $ hg --config extensions.mq= strip 5 - saved backup bundle to .* + saved backup bundle to * (glob) $ hg tags # partly stale cache tip 5:735c3ca72986 bar 1:78391a272241 @@ -310,7 +310,7 @@ Strip 2: destroy whole branch, no old head exposed $ hg --config extensions.mq= strip 4 - saved backup bundle to .* + saved backup bundle to * (glob) $ hg tags # partly stale tip 4:735c3ca72986 bar 0:bbd179dfa0a7
--- a/tests/test-transplant.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-transplant.t Fri Sep 24 19:47:50 2010 -0300 @@ -236,8 +236,7 @@ foo $ cd .. -Test transplant --merge (issue 1111) -test transplant merge +Issue1111: Test transplant --merge $ hg init t1111 $ cd t1111 @@ -285,16 +284,16 @@ > EOF $ chmod +x test-filter $ hg transplant -s ../t -b tip -a --filter ./test-filter - filtering .* + filtering * (glob) applying 17ab29e464c6 17ab29e464c6 transplanted to e9ffc54ea104 - filtering .* + filtering * (glob) applying 37a1297eb21b 37a1297eb21b transplanted to 348b36d0b6a5 - filtering .* + filtering * (glob) applying 722f4667af76 722f4667af76 transplanted to 0aa6979afb95 - filtering .* + filtering * (glob) applying a53251cdf717 a53251cdf717 transplanted to 14f8512272b5 $ hg log --template '{rev} {parents} {desc}\n' @@ -316,7 +315,7 @@ adding test-filter created new head $ hg transplant 1 --filter ./test-filter - filtering .* + filtering * (glob) applying 348b36d0b6a5 file b1 already exists 1 out of 1 hunks FAILED -- saving rejects to file b1.rej
--- a/tests/test-up-local-change.t Fri Sep 24 02:17:54 2010 +0200 +++ b/tests/test-up-local-change.t Fri Sep 24 19:47:50 2010 -0300 @@ -84,9 +84,9 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 1 - $ hg --debug merge || echo failed + $ hg --debug merge abort: there is nothing to merge - use "hg update" instead - failed + [255] $ hg parents changeset: 0:c19d34741b0a user: test @@ -166,12 +166,12 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 2 - $ hg --debug up || echo failed + $ hg --debug up abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes) - failed - $ hg --debug merge || echo failed + [255] + $ hg --debug merge abort: outstanding uncommitted changes (use 'hg status' to list changes) - failed + [255] $ hg --debug merge -f searching for copies back to rev 1 resolving manifests