Mercurial > hg
changeset 10437:8a99388f87cc
merge with mpm
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sat, 13 Feb 2010 10:56:43 +0100 |
parents | 6cebf27287de (current diff) 956498af9812 (diff) |
children | e6dc44147234 |
files | |
diffstat | 22 files changed, 958 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext/progress.py Sat Feb 13 10:56:43 2010 +0100 @@ -0,0 +1,182 @@ +# progress.py show progress bars for some actions +# +# Copyright (C) 2010 Augie Fackler <durin42@gmail.com> +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +"""show progress bars for some actions + +This extension uses the progress information commands can log with hg +to draw progres bars that are as informative as possible. Some progress +bars only offer indeterminate information, while others have a definite +end point. + +The following settings are available:: + + [progress] + delay = 3 # number of seconds (float) before showing the progress bar + refresh = 0.1 # time in seconds between refreshes of the progress bar + format = topic bar number # format of the progress bar + width = <none> # if set, the maximum width of the progress information + # (that is, min(width, term width) will be used) + clear-complete = True # clear the progress bar after it's done + +Valid entries for the format field are topic, bar, number, unit, and item. +item defaults to the last 20 characters of the item, but this can be +changed by adding either -<num> which would take the last num characters, +or +<num> for the first num characters. +""" + +import math +import sys +import time + +from mercurial import extensions +from mercurial import util + +def spacejoin(*args): + ret = '' + for s in args: + if s: + if ret: + ret += ' ' + ret += s + return ret + +class progbar(object): + def __init__(self, ui): + self.ui = ui + self.resetstate() + + def resetstate(self): + self.topics = [] + self.printed = False + self.lastprint = time.time() + float(self.ui.config( + 'progress', 'delay', default=3)) + self.indetcount = 0 + self.refresh = float(self.ui.config( + 'progress', 'refresh', default=0.1)) + self.order = self.ui.configlist( + 'progress', 'format', + default=['topic', 'bar', 'number']) + + def show(self, topic, pos, item, unit, total): + termwidth = self.width() + self.printed = True + head = '' + needprogress = False + tail = '' + for indicator in self.order: + add = '' + if indicator == 'topic': + add = topic + elif indicator == 'number': + if total: + add = ('% ' + str(len(str(total))) + + 's/%s') % (pos, total) + else: + add = str(pos) + elif indicator.startswith('item') and item: + slice = 'end' + if '-' in indicator: + wid = int(indicator.split('-')[1]) + elif '+' in indicator: + slice = 'beginning' + wid = int(indicator.split('+')[1]) + else: + wid = 20 + if slice == 'end': + add = item[-wid:] + else: + add = item[:wid] + add += (wid - len(add)) * ' ' + elif indicator == 'bar': + add = '' + needprogress = True + elif indicator == 'unit' and unit: + add = unit + if not needprogress: + head = spacejoin(head, add) + else: + tail = spacejoin(add, tail) + if needprogress: + used = 0 + if head: + used += len(head) + 1 + if tail: + used += len(tail) + 1 + progwidth = termwidth - used - 3 + if total: + amt = pos * progwidth // total + bar = '=' * (amt) + ' ' * (progwidth - amt) + else: + progwidth -= 3 + self.indetcount += 1 + # mod the count by twice the width so we can make the + # cursor bounce between the right and left sides + amt = self.indetcount % (2 * progwidth) + amt -= progwidth + bar = (' ' * int(progwidth - abs(amt)) + '<=>' + + ' ' * int(abs(amt))) + prog = ''.join(('[', bar , ']')) + out = spacejoin(head, prog, tail) + else: + out = spacejoin(head, tail) + sys.stdout.write('\r' + out[:termwidth]) + sys.stdout.flush() + + def clear(self): + sys.stdout.write('\r%s\r' % (' ' * self.width())) + + def width(self): + tw = util.termwidth() + return min(int(self.ui.config('progress', 'width', default=tw)), tw) + + def progress(self, orig, topic, pos, item='', unit='', total=None): + now = time.time() + if pos is None and self.topics[-1] == topic and self.printed: + if self.ui.configbool('progress', 'clear-complete', default=True): + self.clear() + else: + sys.stdout.write('\n') + sys.stdout.flush() + self.resetstate() + elif topic not in self.topics: + self.topics.append(topic) + + if now - self.lastprint > 0.1 and topic == self.topics[-1]: + self.lastprint = now + self.show(topic, pos, item, unit, total) + return orig(topic, pos, item=item, unit=unit, total=total) + + def write(self, orig, *args): + if self.printed: + self.clear() + return orig(*args) + +sharedprog = None + +def uisetup(ui): + if ui.interactive() and not ui.debugflag: + # we instantiate one globally shared progress bar to avoid + # competing progress bars when multiple UI objects get created + global sharedprog + if not sharedprog: + sharedprog = progbar(ui) + extensions.wrapfunction(ui, 'progress', sharedprog.progress) + extensions.wrapfunction(ui, 'write', sharedprog.write) + +def reposetup(ui, repo): + uisetup(repo.ui)
--- a/mercurial/changegroup.py Fri Feb 12 15:17:10 2010 +0100 +++ b/mercurial/changegroup.py Sat Feb 13 10:56:43 2010 +0100 @@ -24,13 +24,15 @@ % (len(d), l - 4)) return d -def chunkiter(source): +def chunkiter(source, progress=None): """iterate through the chunks in source, yielding a sequence of chunks (strings)""" while 1: c = getchunk(source) if not c: break + elif progress is not None: + progress() yield c def chunkheader(length):
--- a/mercurial/localrepo.py Fri Feb 12 15:17:10 2010 +0100 +++ b/mercurial/localrepo.py Sat Feb 13 10:56:43 2010 +0100 @@ -899,8 +899,12 @@ new[f] = self._filecommit(fctx, m1, m2, linkrev, trp, changed) m1.set(f, fctx.flags()) - except (OSError, IOError): - if error: + except OSError, inst: + self.ui.warn(_("trouble committing %s!\n") % f) + raise + except IOError, inst: + errcode = getattr(inst, 'errno', errno.ENOENT) + if error or errcode and errcode != errno.ENOENT: self.ui.warn(_("trouble committing %s!\n") % f) raise else: @@ -1338,6 +1342,7 @@ if r: reqcnt += 1 + self.ui.progress('searching', reqcnt, unit='queries') self.ui.debug("request %d: %s\n" % (reqcnt, " ".join(map(short, r)))) for p in xrange(0, len(r), 10): @@ -1350,6 +1355,7 @@ while search: newsearch = [] reqcnt += 1 + self.ui.progress('searching', reqcnt, unit='queries') for n, l in zip(search, remote.between(search)): l.append(n[1]) p = n[0] @@ -1385,6 +1391,7 @@ self.ui.debug("found new changesets starting at " + " ".join([short(f) for f in fetch]) + "\n") + self.ui.progress('searching', None, unit='queries') self.ui.debug("%d total queries\n" % reqcnt) return base.keys(), list(fetch), heads @@ -1812,8 +1819,13 @@ # Create a changenode group generator that will call our functions # back to lookup the owning changenode and collect information. group = cl.group(msng_cl_lst, identity, collect) + cnt = 0 for chnk in group: yield chnk + self.ui.progress('bundle changes', cnt, unit='chunks') + cnt += 1 + self.ui.progress('bundle changes', None, unit='chunks') + # Figure out which manifest nodes (of the ones we think might be # part of the changegroup) the recipient must know about and @@ -1835,8 +1847,12 @@ # and data collection functions back. group = mnfst.group(msng_mnfst_lst, lookup_manifest_link, filenode_collector(changedfiles)) + cnt = 0 for chnk in group: yield chnk + self.ui.progress('bundle manifests', cnt, unit='chunks') + cnt += 1 + self.ui.progress('bundle manifests', None, unit='chunks') # These are no longer needed, dereference and toss the memory for # them. @@ -1850,6 +1866,7 @@ msng_filenode_set.setdefault(fname, {}) changedfiles[fname] = 1 # Go through all our files in order sorted by name. + cnt = 0 for fname in sorted(changedfiles): filerevlog = self.file(fname) if not len(filerevlog): @@ -1875,12 +1892,16 @@ group = filerevlog.group(msng_filenode_lst, lookup_filenode_link_func(fname)) for chnk in group: + self.ui.progress( + 'bundle files', cnt, item=fname, unit='chunks') + cnt += 1 yield chnk if fname in msng_filenode_set: # Don't need this anymore, toss it to free memory. del msng_filenode_set[fname] # Signal that no more groups are left. yield changegroup.closechunk() + self.ui.progress('bundle files', None, unit='chunks') if msng_cl_lst: self.hook('outgoing', node=hex(msng_cl_lst[0]), source=source) @@ -1927,14 +1948,23 @@ mmfs = {} collect = changegroup.collector(cl, mmfs, changedfiles) + cnt = 0 for chnk in cl.group(nodes, identity, collect): + self.ui.progress('bundle changes', cnt, unit='chunks') + cnt += 1 yield chnk + self.ui.progress('bundle changes', None, unit='chunks') mnfst = self.manifest nodeiter = gennodelst(mnfst) + cnt = 0 for chnk in mnfst.group(nodeiter, lookuprevlink_func(mnfst)): + self.ui.progress('bundle manifests', cnt, unit='chunks') + cnt += 1 yield chnk + self.ui.progress('bundle manifests', None, unit='chunks') + cnt = 0 for fname in sorted(changedfiles): filerevlog = self.file(fname) if not len(filerevlog): @@ -1946,7 +1976,11 @@ yield fname lookup = lookuprevlink_func(filerevlog) for chnk in filerevlog.group(nodeiter, lookup): + self.ui.progress( + 'bundle files', cnt, item=fname, unit='chunks') + cnt += 1 yield chnk + self.ui.progress('bundle files', None, unit='chunks') yield changegroup.closechunk() @@ -1990,20 +2024,32 @@ # pull off the changeset group self.ui.status(_("adding changesets\n")) clstart = len(cl) - chunkiter = changegroup.chunkiter(source) + class prog(object): + step = 'changesets' + count = 1 + ui = self.ui + def __call__(self): + self.ui.progress(self.step, self.count, unit='chunks') + self.count += 1 + pr = prog() + chunkiter = changegroup.chunkiter(source, progress=pr) if cl.addgroup(chunkiter, csmap, trp) is None and not emptyok: raise util.Abort(_("received changelog group is empty")) clend = len(cl) changesets = clend - clstart + self.ui.progress('changesets', None) # pull off the manifest group self.ui.status(_("adding manifests\n")) - chunkiter = changegroup.chunkiter(source) + pr.step = 'manifests' + pr.count = 1 + chunkiter = changegroup.chunkiter(source, progress=pr) # no need to check for empty manifest group here: # if the result of the merge of 1 and 2 is the same in 3 and 4, # no new manifest will be created and the manifest group will # be empty during the pull self.manifest.addgroup(chunkiter, revmap, trp) + self.ui.progress('manifests', None) needfiles = {} if self.ui.configbool('server', 'validate', default=False): @@ -2017,6 +2063,8 @@ # process the files self.ui.status(_("adding file changes\n")) + pr.step = 'files' + pr.count = 1 while 1: f = changegroup.getchunk(source) if not f: @@ -2024,7 +2072,7 @@ self.ui.debug("adding %s revisions\n" % f) fl = self.file(f) o = len(fl) - chunkiter = changegroup.chunkiter(source) + chunkiter = changegroup.chunkiter(source, progress=pr) if fl.addgroup(chunkiter, revmap, trp) is None: raise util.Abort(_("received file revlog group is empty")) revisions += len(fl) - o @@ -2037,6 +2085,7 @@ needs.remove(n) if not needs: del needfiles[f] + self.ui.progress('files', None) for f, needs in needfiles.iteritems(): fl = self.file(f)
--- a/mercurial/merge.py Fri Feb 12 15:17:10 2010 +0100 +++ b/mercurial/merge.py Sat Feb 13 10:56:43 2010 +0100 @@ -255,6 +255,7 @@ substate = wctx.substate # prime # prescan for merges + u = repo.ui for a in action: f, m = a[:2] if m == 'm': # merge @@ -277,8 +278,10 @@ audit_path = util.path_auditor(repo.root) - for a in action: + numupdates = len(action) + for i, a in enumerate(action): f, m = a[:2] + u.progress('update', i + 1, item=f, total=numupdates, unit='files') if f and f[0] == "/": continue if m == "r": # remove @@ -338,6 +341,7 @@ elif m == "e": # exec flags = a[2] util.set_flags(repo.wjoin(f), 'l' in flags, 'x' in flags) + u.progress('update', None, total=numupdates, unit='files') return updated, merged, removed, unresolved
--- a/mercurial/verify.py Fri Feb 12 15:17:10 2010 +0100 +++ b/mercurial/verify.py Sat Feb 13 10:56:43 2010 +0100 @@ -120,7 +120,9 @@ ui.status(_("checking changesets\n")) seen = {} checklog(cl, "changelog", 0) + total = len(repo) for i in repo: + ui.progress('changelog', i, total=total) n = cl.node(i) checkentry(cl, i, n, seen, [i], "changelog") @@ -131,11 +133,14 @@ filelinkrevs.setdefault(f, []).append(i) except Exception, inst: exc(i, _("unpacking changeset %s") % short(n), inst) + ui.progress('changelog', None) ui.status(_("checking manifests\n")) seen = {} checklog(mf, "manifest", 0) + total = len(mf) for i in mf: + ui.progress('manifests', i, total=total) n = mf.node(i) lr = checkentry(mf, i, n, seen, mflinkrevs.get(n, []), "manifest") if n in mflinkrevs: @@ -151,22 +156,31 @@ filenodes.setdefault(f, {}).setdefault(fn, lr) except Exception, inst: exc(lr, _("reading manifest delta %s") % short(n), inst) + ui.progress('manifests', None) ui.status(_("crosschecking files in changesets and manifests\n")) + total = len(mflinkrevs) + len(filelinkrevs) + len(filenodes) + count = 0 if havemf: for c, m in sorted([(c, m) for m in mflinkrevs for c in mflinkrevs[m]]): + count += 1 + ui.progress('crosscheck', count, total=total) err(c, _("changeset refers to unknown manifest %s") % short(m)) mflinkrevs = None # del is bad here due to scope issues for f in sorted(filelinkrevs): + count += 1 + ui.progress('crosscheck', count, total=total) if f not in filenodes: lr = filelinkrevs[f][0] err(lr, _("in changeset but not in manifest"), f) if havecl: for f in sorted(filenodes): + count += 1 + ui.progress('crosscheck', count, total=total) if f not in filelinkrevs: try: fl = repo.file(f) @@ -175,6 +189,8 @@ lr = None err(lr, _("in manifest but not in changeset"), f) + ui.progress('crosscheck', None) + ui.status(_("checking files\n")) storefiles = set() @@ -185,7 +201,9 @@ storefiles.add(f) files = sorted(set(filenodes) | set(filelinkrevs)) - for f in files: + total = len(files) + for i, f in enumerate(files): + ui.progress('files', i, item=f, total=total) try: linkrevs = filelinkrevs[f] except KeyError: @@ -263,6 +281,7 @@ fns = [(lr, n) for n, lr in filenodes[f].iteritems()] for lr, node in sorted(fns): err(lr, _("%s in manifests not found") % short(node), f) + ui.progress('files', None) for f in storefiles: warn(_("warning: orphan revlog '%s'") % f)
--- a/tests/test-acl.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-acl.out Sat Feb 13 10:56:43 2010 +0100 @@ -20,14 +20,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files updating the branch cache rolling back last transaction @@ -49,14 +90,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: changes have source "push" - skipping @@ -82,14 +164,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow not enabled @@ -120,14 +243,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 0 entries for user fred @@ -159,14 +323,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user fred @@ -201,14 +406,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 0 entries for user barney @@ -242,14 +488,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user fred @@ -286,14 +573,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user fred @@ -329,14 +657,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 0 entries for user barney @@ -373,14 +742,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user barney @@ -418,14 +828,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user wilma @@ -467,14 +918,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook error: pretxnchangegroup.acl hook raised an exception: [Errno 2] No such file or directory: '../acl.config' @@ -515,14 +1007,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user betty @@ -570,14 +1103,55 @@ f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 adding changesets +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle changes: 7 chunks +bundle changes: 8 chunks +bundle changes: 9 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle manifests: 7 chunks +bundle manifests: 8 chunks +bundle manifests: 9 chunks +bundle files: foo/Bar/file.txt 0 chunks +bundle files: foo/Bar/file.txt 1 chunks +bundle files: foo/Bar/file.txt 2 chunks +bundle files: foo/Bar/file.txt 3 chunks +bundle files: foo/file.txt 4 chunks +bundle files: foo/file.txt 5 chunks +bundle files: foo/file.txt 6 chunks +bundle files: foo/file.txt 7 chunks +bundle files: quux/file.py 8 chunks +bundle files: quux/file.py 9 chunks +bundle files: quux/file.py 10 chunks +bundle files: quux/file.py 11 chunks +changesets: 1 chunks add changeset ef1ea85a6374 +changesets: 2 chunks add changeset f9cafe1212c8 +changesets: 3 chunks add changeset 911600dab2ae adding manifests +manifests: 1 chunks +manifests: 2 chunks +manifests: 3 chunks adding file changes adding foo/Bar/file.txt revisions +files: 1 chunks adding foo/file.txt revisions +files: 2 chunks adding quux/file.py revisions +files: 3 chunks added 3 changesets with 3 changes to 3 files calling hook pretxnchangegroup.acl: hgext.acl.hook acl: acl.allow enabled, 1 entries for user barney
--- a/tests/test-bundle.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-bundle.out Sat Feb 13 10:56:43 2010 +0100 @@ -341,3 +341,25 @@ list of changesets: d2ae7f538514cd87c17547b0de4cea71fe1af9fb 5ece8e77363e2b5269e27c66828b72da29e4341a +bundle changes: 0 chunks +bundle changes: 1 chunks +bundle changes: 2 chunks +bundle changes: 3 chunks +bundle changes: 4 chunks +bundle changes: 5 chunks +bundle changes: 6 chunks +bundle manifests: 0 chunks +bundle manifests: 1 chunks +bundle manifests: 2 chunks +bundle manifests: 3 chunks +bundle manifests: 4 chunks +bundle manifests: 5 chunks +bundle manifests: 6 chunks +bundle files: b 0 chunks +bundle files: b 1 chunks +bundle files: b 2 chunks +bundle files: b 3 chunks +bundle files: b1 4 chunks +bundle files: b1 5 chunks +bundle files: b1 6 chunks +bundle files: b1 7 chunks
--- a/tests/test-copy-move-merge.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-copy-move-merge.out Sat Feb 13 10:56:43 2010 +0100 @@ -15,10 +15,12 @@ preserving a for resolve of b preserving a for resolve of c removing a +update: a 1/2 files (50.00%) picked tool 'internal:merge' for b (binary False symlink False) merging a and b to b my b@fb3948d97f07+ other b@40da226db0f0 ancestor a@583c7b748052 premerge successful +update: a 2/2 files (100.00%) picked tool 'internal:merge' for c (binary False symlink False) merging a and c to c my c@fb3948d97f07+ other c@40da226db0f0 ancestor a@583c7b748052
--- a/tests/test-double-merge.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-double-merge.out Sat Feb 13 10:56:43 2010 +0100 @@ -17,10 +17,12 @@ foo: remote copied to bar -> m preserving foo for resolve of bar preserving foo for resolve of foo +update: foo 1/2 files (50.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging foo and bar to bar my bar@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da premerge successful +update: foo 2/2 files (100.00%) picked tool 'internal:merge' for foo (binary False symlink False) merging foo my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da
--- a/tests/test-issue522.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-issue522.out Sat Feb 13 10:56:43 2010 +0100 @@ -8,6 +8,7 @@ overwrite None partial False ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee foo: remote is newer -> g +update: foo 1/1 files (100.00%) getting foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit)
--- a/tests/test-issue672.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-issue672.out Sat Feb 13 10:56:43 2010 +0100 @@ -13,7 +13,9 @@ ancestor 81f4b099af3d local c64f439569a9+ remote 2f8037f47a5c 1: other deleted -> r 1a: remote created -> g +update: 1 1/2 files (50.00%) removing 1 +update: 1a 2/2 files (100.00%) getting 1a 1 files updated, 0 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) @@ -31,6 +33,7 @@ ancestor c64f439569a9 local ac7575e3c052+ remote 746e9549ea96 1a: local copied/moved to 1 -> m preserving 1a for resolve of 1a +update: 1a 1/1 files (100.00%) picked tool 'internal:merge' for 1a (binary False symlink False) merging 1a and 1 to 1a my 1a@ac7575e3c052+ other 1@746e9549ea96 ancestor 1@81f4b099af3d @@ -50,6 +53,7 @@ 1: remote moved to 1a -> m preserving 1 for resolve of 1a removing 1 +update: 1 1/1 files (100.00%) picked tool 'internal:merge' for 1a (binary False symlink False) merging 1 and 1a to 1a my 1a@746e9549ea96+ other 1a@ac7575e3c052 ancestor 1@81f4b099af3d
--- a/tests/test-merge-commit.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-merge-commit.out Sat Feb 13 10:56:43 2010 +0100 @@ -28,6 +28,7 @@ ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 7d3b554bfdf1 bar: versions differ -> m preserving bar for resolve of bar +update: bar 1/1 files (100.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging bar my bar@2d2f9a22c82b+ other bar@7d3b554bfdf1 ancestor bar@0a3ab4856510 @@ -78,6 +79,7 @@ ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 96ab80c60897 bar: versions differ -> m preserving bar for resolve of bar +update: bar 1/1 files (100.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging bar my bar@2d2f9a22c82b+ other bar@96ab80c60897 ancestor bar@0a3ab4856510
--- a/tests/test-merge-types.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-merge-types.out Sat Feb 13 10:56:43 2010 +0100 @@ -8,6 +8,7 @@ conflicting flags for a (n)one, e(x)ec or sym(l)ink? n a: update permissions -> e +update: a 1/1 files (100.00%) 0 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) % symlink is local parent, executable is other @@ -20,6 +21,7 @@ conflicting flags for a (n)one, e(x)ec or sym(l)ink? n a: remote is newer -> g +update: a 1/1 files (100.00%) getting a 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit)
--- a/tests/test-merge7.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-merge7.out Sat Feb 13 10:56:43 2010 +0100 @@ -25,6 +25,7 @@ ancestor faaea63e63a9 local 451c744aabcc+ remote a070d41e8360 test.txt: versions differ -> m preserving test.txt for resolve of test.txt +update: test.txt 1/1 files (100.00%) picked tool 'internal:merge' for test.txt (binary False symlink False) merging test.txt my test.txt@451c744aabcc+ other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9
--- a/tests/test-mq-qclone-http Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-mq-qclone-http Sat Feb 13 10:56:43 2010 +0100 @@ -75,3 +75,7 @@ hg --cwd d log --template "{desc}\n" hg --cwd d qpush -a hg --cwd d log --template "{desc}\n" + +echo '% test --mq works and uses correct repository config' +hg --cwd d outgoing --mq +hg --cwd d log --mq --template '{rev} {desc|firstline}\n'
--- a/tests/test-mq-qclone-http.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-mq-qclone-http.out Sat Feb 13 10:56:43 2010 +0100 @@ -78,3 +78,8 @@ now at: b.patch imported patch b.patch a +% test --mq works and uses correct repository config +comparing with http://localhost:20061/a/.hg/patches +searching for changes +no changes found +0 b.patch
--- a/tests/test-rename-dir-merge.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-rename-dir-merge.out Sat Feb 13 10:56:43 2010 +0100 @@ -28,11 +28,17 @@ a/a: other deleted -> r b/a: remote created -> g b/b: remote created -> g +update: a/a 1/6 files (16.67%) removing a/a +update: a/b 2/6 files (33.33%) removing a/b +update: a/c 3/6 files (50.00%) moving a/c to b/c +update: a/d 4/6 files (66.67%) moving a/d to b/d +update: b/a 5/6 files (83.33%) getting b/a +update: b/b 6/6 files (100.00%) getting b/b 4 files updated, 0 files merged, 2 files removed, 0 files unresolved (branch merge, don't forget to commit) @@ -64,6 +70,7 @@ overwrite None partial False ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb None: local renamed directory to b/c -> d +update:None 1/1 files (100.00%) getting a/c to b/c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit)
--- a/tests/test-rename-merge1.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-rename-merge1.out Sat Feb 13 10:56:43 2010 +0100 @@ -21,13 +21,16 @@ b2: remote created -> g preserving a for resolve of b removing a +update: a 1/3 files (33.33%) picked tool 'internal:merge' for b (binary False symlink False) merging a and b to b my b@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c premerge successful +update: a2 2/3 files (66.67%) warning: detected divergent renames of a2 to: c2 b2 +update: b2 3/3 files (100.00%) getting b2 1 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit)
--- a/tests/test-rename-merge2.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-rename-merge2.out Sat Feb 13 10:56:43 2010 +0100 @@ -15,10 +15,12 @@ a: remote copied to b -> m preserving a for resolve of b preserving rev for resolve of rev +update: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging a and b to b my b@e300d1c794ec+ other b@735846fee2d7 ancestor a@924404dff337 premerge successful +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@e300d1c794ec+ other rev@735846fee2d7 ancestor rev@924404dff337 @@ -48,11 +50,14 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) getting a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b my b@ac809aeed39a+ other a@f4db7e329e71 ancestor a@924404dff337 premerge successful +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ac809aeed39a+ other rev@f4db7e329e71 ancestor rev@924404dff337 @@ -82,10 +87,12 @@ preserving a for resolve of b preserving rev for resolve of rev removing a +update: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging a and b to b my b@e300d1c794ec+ other b@e03727d2d66b ancestor a@924404dff337 premerge successful +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@e300d1c794ec+ other rev@e03727d2d66b ancestor rev@924404dff337 @@ -113,10 +120,12 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b my b@ecf3cb2a4219+ other a@f4db7e329e71 ancestor a@924404dff337 premerge successful +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ecf3cb2a4219+ other rev@f4db7e329e71 ancestor rev@924404dff337 @@ -143,7 +152,9 @@ rev: versions differ -> m b: remote created -> g preserving rev for resolve of rev +update: b 1/2 files (50.00%) getting b +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337 @@ -169,6 +180,7 @@ ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336 rev: versions differ -> m preserving rev for resolve of rev +update: rev 1/1 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337 @@ -196,8 +208,11 @@ rev: versions differ -> m b: remote created -> g preserving rev for resolve of rev +update: a 1/3 files (33.33%) removing a +update: b 2/3 files (66.67%) getting b +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337 @@ -222,6 +237,7 @@ ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336 rev: versions differ -> m preserving rev for resolve of rev +update: rev 1/1 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337 @@ -243,9 +259,11 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@ec03c2ca8642+ other b@79cc6877a3b7 ancestor a@924404dff337 +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ec03c2ca8642+ other rev@79cc6877a3b7 ancestor rev@924404dff337 @@ -275,10 +293,13 @@ rev: versions differ -> m c: remote created -> g preserving rev for resolve of rev +update: a 1/3 files (33.33%) warning: detected divergent renames of a to: b c +update: c 2/3 files (66.67%) getting c +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ecf3cb2a4219+ other rev@e6abcc1a30c2 ancestor rev@924404dff337 @@ -301,9 +322,11 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@ac809aeed39a+ other b@af30c7647fc7 ancestor b@000000000000 +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ac809aeed39a+ other rev@af30c7647fc7 ancestor rev@924404dff337 @@ -327,10 +350,13 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) removing a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 @@ -353,10 +379,13 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) getting a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 @@ -380,10 +409,13 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) removing a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 @@ -406,10 +438,13 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) getting a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 @@ -432,9 +467,11 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@0b76e65c8289+ other b@735846fee2d7 ancestor b@000000000000 +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@0b76e65c8289+ other rev@735846fee2d7 ancestor rev@924404dff337 @@ -460,10 +497,13 @@ a: prompt recreating -> g preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) getting a +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@ecf3cb2a4219+ other b@8dbce441892a ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ecf3cb2a4219+ other rev@8dbce441892a ancestor rev@924404dff337 @@ -489,9 +529,12 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: a 1/3 files (33.33%) +update: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) merging b my b@0b76e65c8289+ other b@e03727d2d66b ancestor b@000000000000 +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@0b76e65c8289+ other rev@e03727d2d66b ancestor rev@924404dff337 @@ -520,9 +563,11 @@ preserving a for resolve of b preserving rev for resolve of rev removing a +update: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging a and b to b my b@e300d1c794ec+ other b@79cc6877a3b7 ancestor a@924404dff337 +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@e300d1c794ec+ other rev@79cc6877a3b7 ancestor rev@924404dff337 @@ -550,9 +595,11 @@ rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev +update: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b my b@ec03c2ca8642+ other a@f4db7e329e71 ancestor a@924404dff337 +update: rev 2/2 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ec03c2ca8642+ other rev@f4db7e329e71 ancestor rev@924404dff337 @@ -583,11 +630,14 @@ c: remote created -> g preserving b for resolve of b preserving rev for resolve of rev +update: b 1/3 files (33.33%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b my b@ecf3cb2a4219+ other a@2b958612230f ancestor a@924404dff337 premerge successful +update: c 2/3 files (66.67%) getting c +update: rev 3/3 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev my rev@ecf3cb2a4219+ other rev@2b958612230f ancestor rev@924404dff337
--- a/tests/test-subrepo.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-subrepo.out Sat Feb 13 10:56:43 2010 +0100 @@ -56,6 +56,7 @@ overwrite None partial False ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4 .hgsubstate: versions differ -> m +update: .hgsubstate 1/1 files (100.00%) subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg getting subrepo t @@ -63,6 +64,7 @@ overwrite True partial False ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a t: remote is newer -> g +update: t 1/1 files (100.00%) getting t 0 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) @@ -78,6 +80,7 @@ overwrite None partial False ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf .hgsubstate: versions differ -> m +update: .hgsubstate 1/1 files (100.00%) subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg merging subrepo t @@ -87,6 +90,7 @@ ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198 t: versions differ -> m preserving t for resolve of t +update: t 1/1 files (100.00%) picked tool 'internal:merge' for t (binary False symlink False) merging t my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
--- a/tests/test-up-local-change.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-up-local-change.out Sat Feb 13 10:56:43 2010 +0100 @@ -24,9 +24,11 @@ a: versions differ -> m b: remote created -> g preserving a for resolve of a +update: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b +update: b 2/2 files (100.00%) getting b 1 files updated, 1 files merged, 0 files removed, 0 files unresolved changeset: 1:802f095af299 @@ -41,7 +43,9 @@ a: versions differ -> m b: other deleted -> r preserving a for resolve of a +update: b 1/2 files (50.00%) removing b +update: a 2/2 files (100.00%) picked tool 'true' for a (binary False symlink False) merging a my a@802f095af299+ other a@33aaa84a386b ancestor a@33aaa84a386b @@ -68,9 +72,11 @@ a: versions differ -> m b: remote created -> g preserving a for resolve of a +update: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b +update: b 2/2 files (100.00%) getting b 1 files updated, 1 files merged, 0 files removed, 0 files unresolved changeset: 1:802f095af299 @@ -123,9 +129,11 @@ b: versions differ -> m preserving a for resolve of a preserving b for resolve of b +update: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a my a@802f095af299+ other a@030602aee63d ancestor a@33aaa84a386b +update: b 2/2 files (100.00%) picked tool 'true' for b (binary False symlink False) merging b my b@802f095af299+ other b@030602aee63d ancestor b@000000000000
--- a/tests/test-update-reverse.out Fri Feb 12 15:17:10 2010 +0100 +++ b/tests/test-update-reverse.out Sat Feb 13 10:56:43 2010 +0100 @@ -46,8 +46,11 @@ side2: other deleted -> r side1: other deleted -> r main: remote created -> g +update: side1 1/3 files (33.33%) removing side1 +update: side2 2/3 files (66.67%) removing side2 +update: main 3/3 files (100.00%) getting main 1 files updated, 0 files merged, 2 files removed, 0 files unresolved Should only show a main