Mercurial > hg
changeset 35013:36507048da0f
merge with stable
author | Augie Fackler <augie@google.com> |
---|---|
date | Fri, 10 Nov 2017 17:12:04 -0500 |
parents | d80380ba8e7d (diff) 99ab7bc944d2 (current diff) |
children | be6aa0cff8ea |
files | |
diffstat | 47 files changed, 516 insertions(+), 311 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/amend.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/amend.py Fri Nov 10 17:12:04 2017 -0500 @@ -17,6 +17,7 @@ cmdutil, commands, error, + pycompat, registrar, ) @@ -46,10 +47,11 @@ See :hg:`help commit` for more details. """ + opts = pycompat.byteskwargs(opts) if len(opts['note']) > 255: raise error.Abort(_("cannot store a note of more than 255 bytes")) with repo.wlock(), repo.lock(): if not opts.get('logfile'): opts['message'] = opts.get('message') or repo['.'].description() opts['amend'] = True - return commands._docommit(ui, repo, *pats, **opts) + return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))
--- a/hgext/automv.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/automv.py Fri Nov 10 17:12:04 2017 -0500 @@ -32,6 +32,7 @@ copies, error, extensions, + pycompat, registrar, scmutil, similar @@ -53,6 +54,7 @@ def mvcheck(orig, ui, repo, *pats, **opts): """Hook to check for moves at commit time""" + opts = pycompat.byteskwargs(opts) renames = None disabled = opts.pop('no_automv', False) if not disabled: @@ -68,7 +70,7 @@ with repo.wlock(): if renames is not None: scmutil._markchanges(repo, (), (), renames) - return orig(ui, repo, *pats, **opts) + return orig(ui, repo, *pats, **pycompat.strkwargs(opts)) def _interestingfiles(repo, matcher): """Find what files were added or removed in this commit.
--- a/hgext/blackbox.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/blackbox.py Fri Nov 10 17:12:04 2017 -0500 @@ -226,7 +226,7 @@ if not repo.vfs.exists('blackbox.log'): return - limit = opts.get('limit') + limit = opts.get(r'limit') fp = repo.vfs('blackbox.log', 'r') lines = fp.read().split('\n')
--- a/hgext/children.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/children.py Fri Nov 10 17:12:04 2017 -0500 @@ -19,6 +19,7 @@ from mercurial.i18n import _ from mercurial import ( cmdutil, + pycompat, registrar, ) @@ -55,6 +56,7 @@ See :hg:`help log` and :hg:`help revsets.children`. """ + opts = pycompat.byteskwargs(opts) rev = opts.get('rev') if file_: fctx = repo.filectx(file_, changeid=rev)
--- a/hgext/churn.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/churn.py Fri Nov 10 17:12:04 2017 -0500 @@ -19,6 +19,7 @@ cmdutil, encoding, patch, + pycompat, registrar, scmutil, util, @@ -45,6 +46,7 @@ def countrate(ui, repo, amap, *pats, **opts): """Calculate stats""" + opts = pycompat.byteskwargs(opts) if opts.get('dateformat'): def getkey(ctx): t, tz = ctx.date() @@ -154,7 +156,7 @@ return s + " " * (l - encoding.colwidth(s)) amap = {} - aliases = opts.get('aliases') + aliases = opts.get(r'aliases') if not aliases and os.path.exists(repo.wjoin('.hgchurn')): aliases = repo.wjoin('.hgchurn') if aliases: @@ -172,7 +174,7 @@ if not rate: return - if opts.get('sort'): + if opts.get(r'sort'): rate.sort() else: rate.sort(key=lambda x: (-sum(x[1]), x)) @@ -185,7 +187,7 @@ ui.debug("assuming %i character terminal\n" % ttywidth) width = ttywidth - maxname - 2 - 2 - 2 - if opts.get('diffstat'): + if opts.get(r'diffstat'): width -= 15 def format(name, diffstat): added, removed = diffstat
--- a/hgext/commitextras.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/commitextras.py Fri Nov 10 17:12:04 2017 -0500 @@ -46,7 +46,7 @@ origcommit = repo.commit try: def _wrappedcommit(*innerpats, **inneropts): - extras = opts.get('extra') + extras = opts.get(r'extra') if extras: for raw in extras: if '=' not in raw: @@ -65,7 +65,7 @@ msg = _("key '%s' is used internally, can't be set " "manually") raise error.Abort(msg % k) - inneropts['extra'][k] = v + inneropts[r'extra'][k] = v return origcommit(*innerpats, **inneropts) # This __dict__ logic is needed because the normal
--- a/hgext/extdiff.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/extdiff.py Fri Nov 10 17:12:04 2017 -0500 @@ -338,6 +338,7 @@ that revision is compared to the working directory, and, when no revisions are specified, the working directory files are compared to its parent.''' + opts = pycompat.byteskwargs(opts) program = opts.get('program') option = opts.get('option') if not program: @@ -369,6 +370,7 @@ self._cmdline = cmdline def __call__(self, ui, repo, *pats, **opts): + opts = pycompat.byteskwargs(opts) options = ' '.join(map(util.shellquote, opts['option'])) if options: options = ' ' + options
--- a/hgext/fetch.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/fetch.py Fri Nov 10 17:12:04 2017 -0500 @@ -19,6 +19,7 @@ exchange, hg, lock, + pycompat, registrar, util, ) @@ -60,6 +61,7 @@ Returns 0 on success. ''' + opts = pycompat.byteskwargs(opts) date = opts.get('date') if date: opts['date'] = util.parsedate(date)
--- a/hgext/gpg.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/gpg.py Fri Nov 10 17:12:04 2017 -0500 @@ -106,7 +106,7 @@ def newgpg(ui, **opts): """create a new gpg instance""" gpgpath = ui.config("gpg", "cmd") - gpgkey = opts.get('key') + gpgkey = opts.get(r'key') if not gpgkey: gpgkey = ui.config("gpg", "key") return gpg(gpgpath, gpgkey) @@ -253,6 +253,7 @@ def _dosign(ui, repo, *revs, **opts): mygpg = newgpg(ui, **opts) + opts = pycompat.byteskwargs(opts) sigver = "0" sigmessage = "" @@ -312,7 +313,8 @@ % hgnode.short(n) for n in nodes]) try: - editor = cmdutil.getcommiteditor(editform='gpg.sign', **opts) + editor = cmdutil.getcommiteditor(editform='gpg.sign', + **pycompat.strkwargs(opts)) repo.commit(message, opts['user'], opts['date'], match=msigs, editor=editor) except ValueError as inst:
--- a/hgext/graphlog.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/graphlog.py Fri Nov 10 17:12:04 2017 -0500 @@ -66,5 +66,5 @@ This is an alias to :hg:`log -G`. """ - opts['graph'] = True + opts[r'graph'] = True return commands.log(ui, repo, *pats, **opts)
--- a/hgext/hgk.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/hgk.py Fri Nov 10 17:12:04 2017 -0500 @@ -48,6 +48,7 @@ commands, obsolete, patch, + pycompat, registrar, scmutil, util, @@ -79,6 +80,7 @@ inferrepo=True) def difftree(ui, repo, node1=None, node2=None, *files, **opts): """diff trees from two commits""" + def __difftree(repo, node1, node2, files=None): assert node2 is not None if files is None: @@ -102,7 +104,7 @@ ## while True: - if opts['stdin']: + if opts[r'stdin']: try: line = util.bytesinput(ui.fin, ui.fout).split(' ') node1 = line[0] @@ -118,8 +120,8 @@ else: node2 = node1 node1 = repo.changelog.parents(node1)[0] - if opts['patch']: - if opts['pretty']: + if opts[r'patch']: + if opts[r'pretty']: catcommit(ui, repo, node2, "") m = scmutil.match(repo[node1], files) diffopts = patch.difffeatureopts(ui) @@ -130,7 +132,7 @@ ui.write(chunk) else: __difftree(repo, node1, node2, files=files) - if not opts['stdin']: + if not opts[r'stdin']: break def catcommit(ui, repo, n, prefix, ctx=None): @@ -183,7 +185,7 @@ # strings # prefix = "" - if opts['stdin']: + if opts[r'stdin']: try: (type, r) = util.bytesinput(ui.fin, ui.fout).split(' ') prefix = " " @@ -201,7 +203,7 @@ return 1 n = repo.lookup(r) catcommit(ui, repo, n, prefix) - if opts['stdin']: + if opts[r'stdin']: try: (type, r) = util.bytesinput(ui.fin, ui.fout).split(' ') except EOFError: @@ -340,7 +342,7 @@ else: full = None copy = [x for x in revs] - revtree(ui, copy, repo, full, opts['max_count'], opts['parents']) + revtree(ui, copy, repo, full, opts[r'max_count'], opts[r'parents']) @command('view', [('l', 'limit', '', @@ -348,6 +350,7 @@ _('[-l LIMIT] [REVRANGE]')) def view(ui, repo, *etc, **opts): "start interactive history viewer" + opts = pycompat.byteskwargs(opts) os.chdir(repo.root) optstr = ' '.join(['--%s %s' % (k, v) for k, v in opts.iteritems() if v]) if repo.filtername is None:
--- a/hgext/histedit.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/histedit.py Fri Nov 10 17:12:04 2017 -0500 @@ -203,6 +203,7 @@ mergeutil, node, obsolete, + pycompat, registrar, repair, scmutil, @@ -541,9 +542,9 @@ def commitfunc(**kwargs): overrides = {('phases', 'new-commit'): phasemin} with repo.ui.configoverride(overrides, 'histedit'): - extra = kwargs.get('extra', {}).copy() + extra = kwargs.get(r'extra', {}).copy() extra['histedit_source'] = src.hex() - kwargs['extra'] = extra + kwargs[r'extra'] = extra return repo.commit(**kwargs) return commitfunc @@ -1093,6 +1094,7 @@ _('histedit requires exactly one ancestor revision')) def _histedit(ui, repo, state, *freeargs, **opts): + opts = pycompat.byteskwargs(opts) goal = _getgoal(opts) revs = opts.get('rev', []) rules = opts.get('commands', '')
--- a/hgext/journal.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/journal.py Fri Nov 10 17:12:04 2017 -0500 @@ -30,6 +30,7 @@ localrepo, lock, node, + pycompat, registrar, util, ) @@ -133,7 +134,7 @@ Note that by default entries go from most recent to oldest. """ - order = kwargs.pop('order', max) + order = kwargs.pop(r'order', max) iterables = [iter(it) for it in iterables] # this tracks still active iterables; iterables are deleted as they are # exhausted, which is why this is a dictionary and why each entry also @@ -458,6 +459,7 @@ `hg journal -T json` can be used to produce machine readable output. """ + opts = pycompat.byteskwargs(opts) name = '.' if opts.get('all'): if args:
--- a/hgext/keyword.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/keyword.py Fri Nov 10 17:12:04 2017 -0500 @@ -104,6 +104,7 @@ match, patch, pathutil, + pycompat, registrar, scmutil, templatefilters, @@ -380,6 +381,7 @@ '''Bails out if [keyword] configuration is not active. Returns status of working directory.''' if kwt: + opts = pycompat.byteskwargs(opts) return repo.status(match=scmutil.match(wctx, pats, opts), clean=True, unknown=opts.get('unknown') or opts.get('all')) if ui.configitems('keyword'): @@ -436,16 +438,16 @@ ui.setconfig('keywordset', 'svn', svn, 'keyword') uikwmaps = ui.configitems('keywordmaps') - if args or opts.get('rcfile'): + if args or opts.get(r'rcfile'): ui.status(_('\n\tconfiguration using custom keyword template maps\n')) if uikwmaps: ui.status(_('\textending current template maps\n')) - if opts.get('default') or not uikwmaps: + if opts.get(r'default') or not uikwmaps: if svn: ui.status(_('\toverriding default svn keywordset\n')) else: ui.status(_('\toverriding default cvs keywordset\n')) - if opts.get('rcfile'): + if opts.get(r'rcfile'): ui.readconfig(opts.get('rcfile')) if args: # simulate hgrc parsing @@ -453,7 +455,7 @@ repo.vfs.write('hgrc', rcmaps) ui.readconfig(repo.vfs.join('hgrc')) kwmaps = dict(ui.configitems('keywordmaps')) - elif opts.get('default'): + elif opts.get(r'default'): if svn: ui.status(_('\n\tconfiguration using default svn keywordset\n')) else: @@ -543,6 +545,7 @@ else: cwd = '' files = [] + opts = pycompat.byteskwargs(opts) if not opts.get('unknown') or opts.get('all'): files = sorted(status.modified + status.added + status.clean) kwfiles = kwt.iskwfile(files, wctx)
--- a/hgext/rebase.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/rebase.py Fri Nov 10 17:12:04 2017 -0500 @@ -43,6 +43,7 @@ obsutil, patch, phases, + pycompat, registrar, repair, revset, @@ -53,7 +54,6 @@ ) release = lock.release -templateopts = cmdutil.templateopts # The following constants are used throughout the rebase module. The ordering of # their values must be maintained. @@ -594,7 +594,7 @@ ('t', 'tool', '', _('specify merge tool')), ('c', 'continue', False, _('continue an interrupted rebase')), ('a', 'abort', False, _('abort an interrupted rebase'))] + - templateopts, + cmdutil.formatteropts, _('[-s REV | -b REV] [-d REV] [OPTION]')) def rebase(ui, repo, **opts): """move changeset (and descendants) to a different branch @@ -699,6 +699,7 @@ unresolved conflicts. """ + opts = pycompat.byteskwargs(opts) rbsrt = rebaseruntime(repo, ui, opts) with repo.wlock(), repo.lock(): @@ -1553,15 +1554,15 @@ def pullrebase(orig, ui, repo, *args, **opts): 'Call rebase after pull if the latter has been invoked with --rebase' ret = None - if opts.get('rebase'): + if opts.get(r'rebase'): if ui.configbool('commands', 'rebase.requiredest'): msg = _('rebase destination required by configuration') hint = _('use hg pull followed by hg rebase -d DEST') raise error.Abort(msg, hint=hint) with repo.wlock(), repo.lock(): - if opts.get('update'): - del opts['update'] + if opts.get(r'update'): + del opts[r'update'] ui.debug('--update and --rebase are not compatible, ignoring ' 'the update flag\n') @@ -1582,15 +1583,15 @@ if revspostpull > revsprepull: # --rev option from pull conflict with rebase own --rev # dropping it - if 'rev' in opts: - del opts['rev'] + if r'rev' in opts: + del opts[r'rev'] # positional argument from pull conflicts with rebase's own # --source. - if 'source' in opts: - del opts['source'] + if r'source' in opts: + del opts[r'source'] # revsprepull is the len of the repo, not revnum of tip. destspace = list(repo.changelog.revs(start=revsprepull)) - opts['_destspace'] = destspace + opts[r'_destspace'] = destspace try: rebase(ui, repo, **opts) except error.NoMergeDestAbort: @@ -1604,7 +1605,7 @@ # with warning and trumpets commands.update(ui, repo) else: - if opts.get('tool'): + if opts.get(r'tool'): raise error.Abort(_('--tool can only be used with --rebase')) ret = orig(ui, repo, *args, **opts)
--- a/hgext/releasenotes.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/releasenotes.py Fri Nov 10 17:12:04 2017 -0500 @@ -25,6 +25,7 @@ error, minirst, node, + pycompat, registrar, scmutil, util, @@ -570,6 +571,8 @@ admonitions along with their title. This also includes the custom admonitions (if any). """ + + opts = pycompat.byteskwargs(opts) sections = releasenotessections(ui, repo) listflag = opts.get('list')
--- a/hgext/shelve.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/shelve.py Fri Nov 10 17:12:04 2017 -0500 @@ -43,6 +43,7 @@ node as nodemod, patch, phases, + pycompat, registrar, repair, scmutil, @@ -380,7 +381,7 @@ editor_ = False if editor: editor_ = cmdutil.getcommiteditor(editform='shelve.shelve', - **opts) + **pycompat.strkwargs(opts)) with repo.ui.configoverride(overrides): return repo.commit(message, shelveuser, opts.get('date'), match, editor=editor_, extra=extra) @@ -389,6 +390,7 @@ repo.mq.checkapplied = saved def interactivecommitfunc(ui, repo, *pats, **opts): + opts = pycompat.byteskwargs(opts) match = scmutil.match(repo['.'], pats, {}) message = opts['message'] return commitfunc(ui, repo, message, match, opts) @@ -465,7 +467,7 @@ else: node = cmdutil.dorecord(ui, repo, commitfunc, None, False, cmdutil.recordfilter, *pats, - **opts) + **pycompat.strkwargs(opts)) if not node: _nothingtoshelvemessaging(ui, repo, pats, opts) return 1 @@ -852,6 +854,7 @@ return _dounshelve(ui, repo, *shelved, **opts) def _dounshelve(ui, repo, *shelved, **opts): + opts = pycompat.byteskwargs(opts) abortf = opts.get('abort') continuef = opts.get('continue') if not abortf and not continuef: @@ -1010,6 +1013,7 @@ To delete specific shelved changes, use ``--delete``. To delete all shelved changes, use ``--cleanup``. ''' + opts = pycompat.byteskwargs(opts) allowables = [ ('addremove', {'create'}), # 'create' is pseudo action ('unknown', {'create'}),
--- a/hgext/uncommit.py Fri Nov 03 09:27:36 2017 -0700 +++ b/hgext/uncommit.py Fri Nov 10 17:12:04 2017 -0500 @@ -29,6 +29,7 @@ error, node, obsolete, + pycompat, registrar, scmutil, ) @@ -152,6 +153,7 @@ deleted in the changeset will be left unchanged, and so will remain modified in the working directory. """ + opts = pycompat.byteskwargs(opts) with repo.wlock(), repo.lock(): wctx = repo[None]
--- a/mercurial/bundlerepo.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/bundlerepo.py Fri Nov 10 17:12:04 2017 -0500 @@ -352,6 +352,15 @@ self.filestart = self.bundle.tell() return m + def _consumemanifest(self): + """Consumes the manifest portion of the bundle, setting filestart so the + file portion can be read.""" + self.bundle.seek(self.manstart) + self.bundle.manifestheader() + for delta in self.bundle.deltaiter(): + pass + self.filestart = self.bundle.tell() + @localrepo.unfilteredpropertycache def manstart(self): self.changelog @@ -360,6 +369,14 @@ @localrepo.unfilteredpropertycache def filestart(self): self.manifestlog + + # If filestart was not set by self.manifestlog, that means the + # manifestlog implementation did not consume the manifests from the + # changegroup (ex: it might be consuming trees from a separate bundle2 + # part instead). So we need to manually consume it. + if 'filestart' not in self.__dict__: + self._consumemanifest() + return self.filestart def url(self):
--- a/mercurial/changegroup.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/changegroup.py Fri Nov 10 17:12:04 2017 -0500 @@ -692,7 +692,7 @@ # Callback for the manifest, used to collect linkrevs for filelog # revisions. # Returns the linkrev node (collected in lookupcl). - def makelookupmflinknode(dir): + def makelookupmflinknode(dir, nodes): if fastpathlinkrev: assert not dir return mfs.__getitem__ @@ -713,7 +713,7 @@ the client before you can trust the list of files and treemanifests to send. """ - clnode = tmfnodes[dir][x] + clnode = nodes[x] mdata = mfl.get(dir, x).readfast(shallow=True) for p, n, fl in mdata.iterentries(): if fl == 't': # subdirectory manifest @@ -733,15 +733,13 @@ size = 0 while tmfnodes: - dir = min(tmfnodes) - nodes = tmfnodes[dir] + dir, nodes = tmfnodes.popitem() prunednodes = self.prune(dirlog(dir), nodes, commonrevs) if not dir or prunednodes: for x in self._packmanifests(dir, prunednodes, - makelookupmflinknode(dir)): + makelookupmflinknode(dir, nodes)): size += len(x) yield x - del tmfnodes[dir] self._verbosenote(_('%8.i (manifests)\n') % size) yield self._manifestsdone()
--- a/mercurial/cmdutil.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/cmdutil.py Fri Nov 10 17:12:04 2017 -0500 @@ -3029,6 +3029,11 @@ if fntemplate: filename = makefilename(repo, fntemplate, ctx.node(), pathname=os.path.join(prefix, path)) + # attempt to create the directory if it does not already exist + try: + os.makedirs(os.path.dirname(filename)) + except OSError: + pass with formatter.maybereopen(basefm, filename, opts) as fm: data = ctx[path].data() if opts.get('decode'): @@ -3789,9 +3794,8 @@ operation = 'discard' reversehunks = True if node != parent: - operation = 'revert' - reversehunks = repo.ui.configbool('experimental', - 'revertalternateinteractivemode') + operation = 'apply' + reversehunks = False if reversehunks: diff = patch.diff(repo, ctx.node(), None, m, opts=diffopts) else:
--- a/mercurial/commands.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/commands.py Fri Nov 10 17:12:04 2017 -0500 @@ -4517,8 +4517,7 @@ ('d', 'date', '', _('tipmost revision matching date'), _('DATE')), ('r', 'rev', '', _('revert to the specified revision'), _('REV')), ('C', 'no-backup', None, _('do not save backup copies of files')), - ('i', 'interactive', None, - _('interactively select the changes (EXPERIMENTAL)')), + ('i', 'interactive', None, _('interactively select the changes')), ] + walkopts + dryrunopts, _('[OPTION]... [-r REV] [NAME]...')) def revert(ui, repo, *pats, **opts):
--- a/mercurial/configitems.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/configitems.py Fri Nov 10 17:12:04 2017 -0500 @@ -376,7 +376,7 @@ default=None, ) coreconfigitem('experimental', 'evolution.effect-flags', - default=False, + default=True, alias=[('experimental', 'effect-flags')] ) coreconfigitem('experimental', 'evolution.exchange', @@ -439,9 +439,6 @@ coreconfigitem('experimental', 'rebase.multidest', default=False, ) -coreconfigitem('experimental', 'revertalternateinteractivemode', - default=True, -) coreconfigitem('experimental', 'revlogv2', default=None, )
--- a/mercurial/debugcommands.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/debugcommands.py Fri Nov 10 17:12:04 2017 -0500 @@ -360,6 +360,24 @@ return _debugbundle2(ui, gen, all=all, **opts) _debugchangegroup(ui, gen, all=all, **opts) +@command('debugcapabilities', + [], _('PATH'), + norepo=True) +def debugcapabilities(ui, path, **opts): + """lists the capabilities of a remote peer""" + peer = hg.peer(ui, opts, path) + caps = peer.capabilities() + ui.write(('Main capabilities:\n')) + for c in sorted(caps): + ui.write((' %s\n') % c) + b2caps = bundle2.bundle2caps(peer) + if b2caps: + ui.write(('Bundle2 capabilities:\n')) + for key, values in sorted(b2caps.iteritems()): + ui.write((' %s\n') % key) + for v in values: + ui.write((' %s\n') % v) + @command('debugcheckstate', [], '') def debugcheckstate(ui, repo): """validate the correctness of the current dirstate"""
--- a/mercurial/obsutil.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/obsutil.py Fri Nov 10 17:12:04 2017 -0500 @@ -751,8 +751,9 @@ return values -def successorsetverb(successorset): - """ Return the verb summarizing the successorset +def obsfateverb(successorset, markers): + """ Return the verb summarizing the successorset and potentially using + information from the markers """ if not successorset: verb = 'pruned' @@ -795,7 +796,7 @@ line = [] # Verb - line.append(successorsetverb(successors)) + line.append(obsfateverb(successors, markers)) # Operations operations = markersoperations(markers)
--- a/mercurial/patch.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/patch.py Fri Nov 10 17:12:04 2017 -0500 @@ -203,7 +203,7 @@ # attempt to detect the start of a patch # (this heuristic is borrowed from quilt) - diffre = re.compile(br'^(?:Index:[ \t]|diff[ \t]|RCS file: |' + diffre = re.compile(br'^(?:Index:[ \t]|diff[ \t]-|RCS file: |' br'retrieving revision [0-9]+(\.[0-9]+)*$|' br'---[ \t].*?^\+\+\+[ \t]|' br'\*\*\*[ \t].*?^---[ \t])', @@ -997,16 +997,26 @@ def getmessages(): return { 'multiple': { + 'apply': _("apply change %d/%d to '%s'?"), 'discard': _("discard change %d/%d to '%s'?"), 'record': _("record change %d/%d to '%s'?"), - 'revert': _("revert change %d/%d to '%s'?"), }, 'single': { + 'apply': _("apply this change to '%s'?"), 'discard': _("discard this change to '%s'?"), 'record': _("record this change to '%s'?"), - 'revert': _("revert this change to '%s'?"), }, 'help': { + 'apply': _('[Ynesfdaq?]' + '$$ &Yes, apply this change' + '$$ &No, skip this change' + '$$ &Edit this change manually' + '$$ &Skip remaining changes to this file' + '$$ Apply remaining changes to this &file' + '$$ &Done, skip remaining changes and files' + '$$ Apply &all changes to all remaining files' + '$$ &Quit, applying no changes' + '$$ &? (display help)'), 'discard': _('[Ynesfdaq?]' '$$ &Yes, discard this change' '$$ &No, skip this change' @@ -1027,16 +1037,6 @@ '$$ Record &all changes to all remaining files' '$$ &Quit, recording no changes' '$$ &? (display help)'), - 'revert': _('[Ynesfdaq?]' - '$$ &Yes, revert this change' - '$$ &No, skip this change' - '$$ &Edit this change manually' - '$$ &Skip remaining changes to this file' - '$$ Revert remaining changes to this &file' - '$$ &Done, skip remaining changes and files' - '$$ Revert &all changes to all remaining files' - '$$ &Quit, reverting no changes' - '$$ &? (display help)') } }
--- a/mercurial/templatekw.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/templatekw.py Fri Nov 10 17:12:04 2017 -0500 @@ -816,7 +816,7 @@ @templatekeyword('phaseidx') def showphaseidx(repo, ctx, templ, **args): - """Integer. The changeset phase index.""" + """Integer. The changeset phase index. (ADVANCED)""" return ctx.phase() @templatekeyword('rev') @@ -860,12 +860,6 @@ """List of strings. Any tags associated with the changeset.""" return shownames('tags', **args) -def loadkeyword(ui, extname, registrarobj): - """Load template keyword from specified registrarobj - """ - for name, func in registrarobj._table.iteritems(): - keywords[name] = func - @templatekeyword('termwidth') def showtermwidth(repo, ctx, templ, **args): """Integer. The width of the current terminal.""" @@ -891,5 +885,24 @@ return showlist('instability', args['ctx'].instabilities(), args, plural='instabilities') +@templatekeyword('verbosity') +def showverbosity(ui, **args): + """String. The current output verbosity in 'debug', 'quiet', 'verbose', + or ''.""" + # see cmdutil.changeset_templater for priority of these flags + if ui.debugflag: + return 'debug' + elif ui.quiet: + return 'quiet' + elif ui.verbose: + return 'verbose' + return '' + +def loadkeyword(ui, extname, registrarobj): + """Load template keyword from specified registrarobj + """ + for name, func in registrarobj._table.iteritems(): + keywords[name] = func + # tell hggettext to extract docstrings from these functions: i18nfunctions = keywords.values()
--- a/mercurial/templater.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/templater.py Fri Nov 10 17:12:04 2017 -0500 @@ -1005,17 +1005,18 @@ "obsmakers") raise error.ParseError(msg) -@templatefunc('obsfateverb(successors)') +@templatefunc('obsfateverb(successors, markers)') def obsfateverb(context, mapping, args): """Compute obsfate related information based on successors (EXPERIMENTAL)""" - if len(args) != 1: + if len(args) != 2: # i18n: "obsfateverb" is a keyword - raise error.ParseError(_("obsfateverb expects one arguments")) + raise error.ParseError(_("obsfateverb expects two arguments")) successors = evalfuncarg(context, mapping, args[0]) + markers = evalfuncarg(context, mapping, args[1]) try: - return obsutil.successorsetverb(successors) + return obsutil.obsfateverb(successors, markers) except TypeError: # i18n: "obsfateverb" is a keyword errmsg = _("obsfateverb first argument should be countable")
--- a/mercurial/ui.py Fri Nov 03 09:27:36 2017 -0700 +++ b/mercurial/ui.py Fri Nov 10 17:12:04 2017 -0500 @@ -695,6 +695,9 @@ >>> u.setconfig(s, b'list1', b'this,is "a small" ,test') >>> u.configlist(s, b'list1') ['this', 'is', 'a small', 'test'] + >>> u.setconfig(s, b'list2', b'this, is "a small" , test ') + >>> u.configlist(s, b'list2') + ['this', 'is', 'a small', 'test'] """ # default is not always a list v = self.configwith(config.parselist, section, name, default,
--- a/tests/run-tests.py Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/run-tests.py Fri Nov 10 17:12:04 2017 -0500 @@ -2353,6 +2353,12 @@ self._testdir = osenvironb[b'TESTDIR'] = getattr( os, 'getcwdb', os.getcwd)() + # assume all tests in same folder for now + if testdescs: + pathname = os.path.dirname(testdescs[0]['path']) + if pathname and not osenvironb[b'TESTDIR'].endswith(b'/'): + osenvironb[b'TESTDIR'] += b'/' + osenvironb[b'TESTDIR'] += pathname if self.options.outputdir: self._outputdir = canonpath(_bytespath(self.options.outputdir)) else: @@ -2504,6 +2510,16 @@ else: args = os.listdir(b'.') + expanded_args = [] + for arg in args: + if os.path.isdir(arg): + if not arg.endswith(b'/'): + arg += b'/' + expanded_args.extend([arg + a for a in os.listdir(arg)]) + else: + expanded_args.append(arg) + args = expanded_args + tests = [] for t in args: if not (os.path.basename(t).startswith(b'test-')
--- a/tests/test-amend.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-amend.t Fri Nov 10 17:12:04 2017 -0500 @@ -203,8 +203,8 @@ [255] $ hg amend --note "adding bar" $ hg debugobsolete -r . - 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'note': 'adding bar', 'operation': 'amend', 'user': 'test'} + 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'adding bar', 'operation': 'amend', 'user': 'test'} #endif Cannot amend public changeset
--- a/tests/test-cat.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-cat.t Fri Nov 10 17:12:04 2017 -0500 @@ -119,3 +119,13 @@ $ PATTERN='t4' hg log -r '.' -T "{envvars % '{key} -> {value}\n'}" \ > --config "experimental.exportableenviron=PATTERN" PATTERN -> t4 + +Test behavior of output when directory structure does not already exist + + $ mkdir foo + $ echo a > foo/a + $ hg add foo/a + $ hg commit -qm "add foo/a" + $ hg cat --output "output/%p" foo/a + $ cat output/foo/a + a
--- a/tests/test-command-template.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-command-template.t Fri Nov 10 17:12:04 2017 -0500 @@ -2876,6 +2876,17 @@ @@ -0,0 +1,1 @@ +second +ui verbosity: + + $ hg log -l1 -T '{verbosity}\n' + + $ hg log -l1 -T '{verbosity}\n' --debug + debug + $ hg log -l1 -T '{verbosity}\n' --quiet + quiet + $ hg log -l1 -T '{verbosity}\n' --verbose + verbose + $ cd ..
--- a/tests/test-completion.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-completion.t Fri Nov 10 17:12:04 2017 -0500 @@ -72,6 +72,7 @@ debugapplystreamclonebundle debugbuilddag debugbundle + debugcapabilities debugcheckstate debugcolor debugcommands @@ -249,6 +250,7 @@ debugapplystreamclonebundle: debugbuilddag: mergeable-file, overwritten-file, new-file debugbundle: all, part-type, spec + debugcapabilities: debugcheckstate: debugcolor: style debugcommands:
--- a/tests/test-debugcommands.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-debugcommands.t Fri Nov 10 17:12:04 2017 -0500 @@ -156,3 +156,37 @@ from h hidden in g at: debugstacktrace.py:6 in f debugstacktrace.py:9 in g + +Test debugcapabilities command: + + $ hg debugcapabilities ./debugrevlog/ + Main capabilities: + branchmap + bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Aphases%3Dheads%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps + getbundle + known + lookup + pushkey + unbundle + Bundle2 capabilities: + HG20 + changegroup + 01 + 02 + digests + md5 + sha1 + sha512 + error + abort + unsupportedcontent + pushraced + pushkey + hgtagsfnodes + listkeys + phases + heads + pushkey + remote-changegroup + http + https
--- a/tests/test-drawdag.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-drawdag.t Fri Nov 10 17:12:04 2017 -0500 @@ -227,11 +227,11 @@ o A 426bada5c67598ca65036d57d9e4b64b0c1ce7a0 $ hg debugobsolete - 112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'split', 'user': 'test'} - 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'} - 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'} + 112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'split', 'user': 'test'} + 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'} + be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'} + 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} + 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} Change file contents via comments
--- a/tests/test-help.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-help.t Fri Nov 10 17:12:04 2017 -0500 @@ -895,6 +895,8 @@ builds a repo with a given DAG from scratch in the current empty repo debugbundle lists the contents of a bundle + debugcapabilities + lists the capabilities of a remote peer debugcheckstate validate the correctness of the current dirstate debugcolor show available color, effects or style
--- a/tests/test-histedit-obsolete.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-histedit-obsolete.t Fri Nov 10 17:12:04 2017 -0500 @@ -51,9 +51,9 @@ o 0:cb9a9f314b8b a $ hg debugobsolete - e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} + e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'} + 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'} With some node gone missing during the edit. @@ -80,13 +80,13 @@ o 0:cb9a9f314b8b a $ hg debugobsolete - e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} + e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'} + 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'} + 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'} + 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '5', 'operation': 'histedit', 'user': 'test'} $ cd .. Base setup for the rest of the testing @@ -170,13 +170,13 @@ o 0:cb9a9f314b8b a $ hg debugobsolete - d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} - b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'} + d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'} + 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'} + 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'histedit', 'user': 'test'} + e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'histedit', 'user': 'test'} + 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'} + 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'} + b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'} Ensure hidden revision does not prevent histedit @@ -575,4 +575,4 @@ o 0:cb9a9f314b8b (public) a $ hg debugobsolete --rev . - ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob) + ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'}
--- a/tests/test-import.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-import.t Fri Nov 10 17:12:04 2017 -0500 @@ -1346,6 +1346,93 @@ $ cd .. +commit message that looks like a diff header (issue1879) + + $ hg init headerlikemsg + $ cd headerlikemsg + $ touch empty + $ echo nonempty >> nonempty + $ hg ci -qAl - <<EOF + > blah blah + > diff blah + > blah blah + > EOF + $ hg --config diff.git=1 log -pv + changeset: 0:c6ef204ef767 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: empty nonempty + description: + blah blah + diff blah + blah blah + + + diff --git a/empty b/empty + new file mode 100644 + diff --git a/nonempty b/nonempty + new file mode 100644 + --- /dev/null + +++ b/nonempty + @@ -0,0 +1,1 @@ + +nonempty + + + (without --git, empty file is lost, but commit message should be preserved) + + $ hg init plain + $ hg export 0 | hg -R plain import - + applying patch from stdin + $ hg --config diff.git=1 -R plain log -pv + changeset: 0:60a2d231e71f + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: nonempty + description: + blah blah + diff blah + blah blah + + + diff --git a/nonempty b/nonempty + new file mode 100644 + --- /dev/null + +++ b/nonempty + @@ -0,0 +1,1 @@ + +nonempty + + + (with --git, patch contents should be fully preserved) + + $ hg init git + $ hg --config diff.git=1 export 0 | hg -R git import - + applying patch from stdin + $ hg --config diff.git=1 -R git log -pv + changeset: 0:c6ef204ef767 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: empty nonempty + description: + blah blah + diff blah + blah blah + + + diff --git a/empty b/empty + new file mode 100644 + diff --git a/nonempty b/nonempty + new file mode 100644 + --- /dev/null + +++ b/nonempty + @@ -0,0 +1,1 @@ + +nonempty + + + $ cd .. + no segfault while importing a unified diff which start line is zero but chunk size is non-zero
--- a/tests/test-obsmarker-template.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-obsmarker-template.t Fri Nov 10 17:12:04 2017 -0500 @@ -13,7 +13,7 @@ > evolution=true > [templates] > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}" - > obsfateverb = "{obsfateverb(successors)}" + > obsfateverb = "{obsfateverb(successors, markers)}" > obsfateoperations = "{if(obsfateoperations(markers), " using {join(obsfateoperations(markers), ", ")}")}" > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}" > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}" @@ -248,9 +248,9 @@ @ d004c8f274b9 | | x a468dc9b3633 - |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}] + |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}] | x 471f378eab4c - |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}] + |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}] o ea207398892e @@ -975,11 +975,11 @@ o 019fadeab383 | | x 65b757b745b9 - |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}] + |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}] | @ fdf9bde5129a |/ | x 471f378eab4c - |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"]}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"]}] + |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"]}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"]}] o ea207398892e @@ -1287,7 +1287,7 @@ | x b7ea6d14e664 | | Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}] | | x 0dec01379d3b - | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}] + | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}] | x 471f378eab4c |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}] o ea207398892e @@ -1450,8 +1450,8 @@ $ hg debugobsolete - 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} Check templates --------------- @@ -2045,7 +2045,7 @@ | o ba2ed02b0c9a | | | x 4a004186e638 - |/ Obsfate: [{"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["b18bc8331526a22cbb1801022bd1555bf291c48b"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b18bc8331526a22cbb1801022bd1555bf291c48b"]}, {"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["0b997eb7ceeee06200a02f8aab185979092d514e"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["0b997eb7ceeee06200a02f8aab185979092d514e"]}] + |/ Obsfate: [{"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["b18bc8331526a22cbb1801022bd1555bf291c48b"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b18bc8331526a22cbb1801022bd1555bf291c48b"]}, {"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["0b997eb7ceeee06200a02f8aab185979092d514e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["0b997eb7ceeee06200a02f8aab185979092d514e"]}] o dd800401bd8c | | x 9bd10a0775e4
--- a/tests/test-obsolete-distributed.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-obsolete-distributed.t Fri Nov 10 17:12:04 2017 -0500 @@ -302,9 +302,9 @@ o 0:e82fb8d02bbf ROOT $ hg debugobsolete - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} $ cd .. Celeste pulls from Bob and rewrites them again @@ -349,12 +349,12 @@ o 0:e82fb8d02bbf ROOT $ hg debugobsolete - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} - 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'} - 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} + 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'} + 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} Celeste now pushes to the server @@ -391,12 +391,12 @@ new changesets 9866d64649a5:77ae25d99ff0 (run 'hg heads' to see heads) $ hg debugobsolete - 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'} - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} + 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} Then, she pulls from Bob, pulling predecessors of the changeset she has already pulled. The changesets are not obsoleted in the Bob repo yet. Their @@ -418,12 +418,12 @@ @ 0:e82fb8d02bbf ROOT $ hg debugobsolete - 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'} - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} + 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} Same tests, but change coming from a bundle (testing with a bundle is interesting because absolutely no discovery or @@ -439,12 +439,12 @@ @ 0:e82fb8d02bbf ROOT $ hg debugobsolete - 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'} - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} + 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} $ hg -R ../repo-Bob bundle ../step-1.hg searching for changes 2 changesets found @@ -477,11 +477,11 @@ @ 0:e82fb8d02bbf ROOT $ hg debugobsolete - 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'} - 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'} - d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'} - ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'} + 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'} + 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'} + d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'} + ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'} $ cd ..
--- a/tests/test-obsolete-divergent.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-obsolete-divergent.t Fri Nov 10 17:12:04 2017 -0500 @@ -680,6 +680,6 @@ o 0:426bada5c675 A $ hg debugobsolete - a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'test', 'user': 'test'} - ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'test', 'user': 'test'} + a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'test', 'user': 'test'} + ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'test', 'user': 'test'}
--- a/tests/test-obsolete.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-obsolete.t Fri Nov 10 17:12:04 2017 -0500 @@ -1333,7 +1333,7 @@ $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg (glob) $ hg debugobsolete - e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} $ hg log -G @ 2:b0551702f918 (draft) [tip ] 2 | @@ -1360,7 +1360,7 @@ searching for changes no changes found $ hg debugobsolete - e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} $ hg log -G @ 2:b0551702f918 (draft) [tip ] 2 | @@ -1394,8 +1394,8 @@ e016b03fd86fcccc54817d120b90b751aaf367d6 b0551702f918510f01ae838ab03a463054c67b46 obsmarkers -- {} - version: 1 (86 bytes) - e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + version: 1 (92 bytes) + e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} phase-heads -- {} b0551702f918510f01ae838ab03a463054c67b46 draft @@ -1408,7 +1408,7 @@ new changesets e016b03fd86f:b0551702f918 (run 'hg update' to get a working copy) $ hg debugobsolete | sort - e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} $ hg log -G o 2:b0551702f918 (draft) [tip ] 2 | @@ -1444,15 +1444,15 @@ adding d $ hg ci --amend -m dd --config experimental.evolution.track-operation=1 $ hg debugobsolete --index --rev "3+7" - 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation': 'amend', 'user': 'test'} (re) + 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} $ hg debugobsolete --index --rev "3+7" -Tjson [ { "date": [0.0, 0], "flag": 0, "index": 1, - "metadata": {"operation": "amend", "user": "test"}, + "metadata": {"ef1": "1", "operation": "amend", "user": "test"}, "prednode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1", "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"] }, @@ -1460,7 +1460,7 @@ "date": [0.0, 0], "flag": 0, "index": 3, - "metadata": {"operation": "amend", "user": "test"}, + "metadata": {"ef1": "1", "operation": "amend", "user": "test"}, "prednode": "4715cf767440ed891755448016c2b8cf70760c30", "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"] } @@ -1468,15 +1468,15 @@ Test the --delete option of debugobsolete command $ hg debugobsolete --index - 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} $ hg debugobsolete --delete 1 --delete 3 deleted 2 obsolescence markers $ hg debugobsolete - cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} - 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} + 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} Test adding changeset after obsmarkers affecting it (eg: during pull, or unbundle)
--- a/tests/test-rebase-obsolete.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-rebase-obsolete.t Fri Nov 10 17:12:04 2017 -0500 @@ -103,9 +103,9 @@ o 0:cd010b8cd998 A $ hg debugobsolete - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} $ cd .. @@ -173,9 +173,9 @@ o 0:cd010b8cd998 A $ hg debugobsolete - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} More complex case where part of the rebase set were already rebased @@ -183,10 +183,10 @@ $ hg rebase --rev 'desc(D)' --dest 'desc(H)' rebasing 9:08483444fef9 "D" $ hg debugobsolete - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} + 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} $ hg log -G @ 11:4596109a6a43 D | @@ -211,12 +211,12 @@ note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip) rebasing 10:5ae4c968c6ac "C" $ hg debugobsolete - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} + 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} $ hg log --rev 'contentdivergent()' $ hg log -G o 13:98f6af4ee953 C @@ -352,9 +352,9 @@ $ hg id --debug -r tip 4dc2197e807bae9817f09905b50ab288be2dbbcf tip $ hg debugobsolete - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'} $ cd .. @@ -414,9 +414,9 @@ o 0:cd010b8cd998 A $ hg debugobsolete - 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} - 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} + 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} Test that rewriting leaving instability behind is allowed --------------------------------------------------------------------- @@ -1234,7 +1234,7 @@ $ hg bookmarks mybook 3:be1832deae9a $ hg debugobsolete --rev tip - 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'} + 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} Obsoleted working parent and bookmark could be moved if an ancestor of working parent gets moved:
--- a/tests/test-revert-interactive.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-revert-interactive.t Fri Nov 10 17:12:04 2017 -0500 @@ -60,56 +60,56 @@ 2 hunks, 2 lines changed examine changes to 'f'? [Ynesfdaq?] y - @@ -1,5 +1,6 @@ - +a + @@ -1,6 +1,5 @@ + -a 1 2 3 4 5 - revert change 1/6 to 'f'? [Ynesfdaq?] y + apply change 1/6 to 'f'? [Ynesfdaq?] y - @@ -1,5 +2,6 @@ + @@ -2,6 +1,5 @@ 1 2 3 4 5 - +b - revert change 2/6 to 'f'? [Ynesfdaq?] y + -b + apply change 2/6 to 'f'? [Ynesfdaq?] y diff --git a/folder1/g b/folder1/g 2 hunks, 2 lines changed examine changes to 'folder1/g'? [Ynesfdaq?] y - @@ -1,5 +1,6 @@ - +c + @@ -1,6 +1,5 @@ + -c 1 2 3 4 5 - revert change 3/6 to 'folder1/g'? [Ynesfdaq?] ? + apply change 3/6 to 'folder1/g'? [Ynesfdaq?] ? - y - yes, revert this change + y - yes, apply this change n - no, skip this change e - edit this change manually s - skip remaining changes to this file - f - revert remaining changes to this file + f - apply remaining changes to this file d - done, skip remaining changes and files - a - revert all changes to all remaining files - q - quit, reverting no changes + a - apply all changes to all remaining files + q - quit, applying no changes ? - ? (display help) - revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y + apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y - @@ -1,5 +2,6 @@ + @@ -2,6 +1,5 @@ 1 2 3 4 5 - +d - revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n + -d + apply change 4/6 to 'folder1/g'? [Ynesfdaq?] n diff --git a/folder2/h b/folder2/h 2 hunks, 2 lines changed @@ -157,12 +157,12 @@ 1 hunks, 1 lines changed examine changes to 'folder1/g'? [Ynesfdaq?] y - @@ -3,3 +3,4 @@ + @@ -3,4 +3,3 @@ 3 4 5 - +d - revert this change to 'folder1/g'? [Ynesfdaq?] n + -d + apply this change to 'folder1/g'? [Ynesfdaq?] n $ ls folder1/ g @@ -173,12 +173,12 @@ 1 hunks, 1 lines changed examine changes to 'folder1/g'? [Ynesfdaq?] y - @@ -3,3 +3,4 @@ + @@ -3,4 +3,3 @@ 3 4 5 - +d - revert this change to 'folder1/g'? [Ynesfdaq?] y + -d + apply this change to 'folder1/g'? [Ynesfdaq?] y $ ls folder1/ g @@ -206,45 +206,45 @@ 2 hunks, 2 lines changed examine changes to 'f'? [Ynesfdaq?] y - @@ -1,5 +1,6 @@ - +a + @@ -1,6 +1,5 @@ + -a 1 2 3 4 5 - revert change 1/6 to 'f'? [Ynesfdaq?] y + apply change 1/6 to 'f'? [Ynesfdaq?] y - @@ -1,5 +2,6 @@ + @@ -2,6 +1,5 @@ 1 2 3 4 5 - +b - revert change 2/6 to 'f'? [Ynesfdaq?] y + -b + apply change 2/6 to 'f'? [Ynesfdaq?] y diff --git a/folder1/g b/folder1/g 2 hunks, 2 lines changed examine changes to 'folder1/g'? [Ynesfdaq?] y - @@ -1,5 +1,6 @@ - +c + @@ -1,6 +1,5 @@ + -c 1 2 3 4 5 - revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y + apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y - @@ -1,5 +2,6 @@ + @@ -2,6 +1,5 @@ 1 2 3 4 5 - +d - revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n + -d + apply change 4/6 to 'folder1/g'? [Ynesfdaq?] n diff --git a/folder2/h b/folder2/h 2 hunks, 2 lines changed @@ -368,77 +368,6 @@ $ cat k 42 -Check the experimental config to invert the selection: - $ cat <<EOF >> $HGRCPATH - > [experimental] - > revertalternateinteractivemode=False - > EOF - - - $ hg up -C . - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ printf 'firstline\nc\n1\n2\n3\n 3\n5\nd\nlastline\n' > folder1/g - $ hg diff --nodates - diff -r a3d963a027aa folder1/g - --- a/folder1/g - +++ b/folder1/g - @@ -1,7 +1,9 @@ - +firstline - c - 1 - 2 - 3 - -4 - + 3 - 5 - d - +lastline - $ hg revert -i <<EOF - > y - > y - > y - > n - > EOF - reverting folder1/g (glob) - diff --git a/folder1/g b/folder1/g - 3 hunks, 3 lines changed - examine changes to 'folder1/g'? [Ynesfdaq?] y - - @@ -1,4 +1,5 @@ - +firstline - c - 1 - 2 - 3 - discard change 1/3 to 'folder1/g'? [Ynesfdaq?] y - - @@ -1,7 +2,7 @@ - c - 1 - 2 - 3 - -4 - + 3 - 5 - d - discard change 2/3 to 'folder1/g'? [Ynesfdaq?] y - - @@ -6,2 +7,3 @@ - 5 - d - +lastline - discard change 3/3 to 'folder1/g'? [Ynesfdaq?] n - - $ hg diff --nodates - diff -r a3d963a027aa folder1/g - --- a/folder1/g - +++ b/folder1/g - @@ -5,3 +5,4 @@ - 4 - 5 - d - +lastline - $ hg update -C . 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg purge @@ -463,11 +392,6 @@ When a line without EOL is selected during "revert -i" (issue5651) - $ cat <<EOF >> $HGRCPATH - > [experimental] - > %unset revertalternateinteractivemode - > EOF - $ hg init $TESTTMP/revert-i-eol $ cd $TESTTMP/revert-i-eol $ echo 0 > a @@ -487,11 +411,11 @@ 1 hunks, 1 lines changed examine changes to 'a'? [Ynesfdaq?] y - @@ -1,1 +1,2 @@ + @@ -1,2 +1,1 @@ 0 - +1 + -1 \ No newline at end of file - revert this change to 'a'? [Ynesfdaq?] y + apply this change to 'a'? [Ynesfdaq?] y $ cat a 0
--- a/tests/test-run-tests.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-run-tests.t Fri Nov 10 17:12:04 2017 -0500 @@ -1261,6 +1261,40 @@ . # Ran 1 tests, 0 skipped, 0 failed. +support for automatically discovering test if arg is a folder + $ mkdir tmp && cd tmp + + $ cat > test-uno.t << EOF + > $ echo line + > line + > EOF + + $ cp test-uno.t test-dos.t + $ cd .. + $ cp -R tmp tmpp + $ cp tmp/test-uno.t test-solo.t + + $ $PYTHON $TESTDIR/run-tests.py tmp/ test-solo.t tmpp + ..... + # Ran 5 tests, 0 skipped, 0 failed. + $ rm -rf tmp tmpp + +support for running run-tests.py from another directory + $ mkdir tmp && cd tmp + $ cat > useful-file.sh << EOF + > important command + > EOF + + $ cat > test-folder.t << EOF + > $ cat \$TESTDIR/useful-file.sh + > important command + > EOF + + $ cd .. + $ $PYTHON $TESTDIR/run-tests.py tmp/test-folder.t + . + # Ran 1 tests, 0 skipped, 0 failed. + support for bisecting failed tests automatically $ hg init bisect $ cd bisect
--- a/tests/test-strip.t Fri Nov 03 09:27:36 2017 -0700 +++ b/tests/test-strip.t Fri Nov 10 17:12:04 2017 -0500 @@ -1307,13 +1307,13 @@ o 0:426bada5c675 A b-B b-C b-I $ hg debugobsolete - 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} - 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'} + 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'} + 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'} + f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'} + 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'} + 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'} + 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'} + 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'} $ cd .. Test that obsmarkers are restored even when not using generaldelta @@ -1328,11 +1328,11 @@ $ hg ci -Aqm a $ hg ci --amend -m a2 $ hg debugobsolete - cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} $ hg strip . 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob) $ hg unbundle -q .hg/strip-backup/* $ hg debugobsolete - cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'} + cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} $ cd ..