Mercurial > hg
view tests/fakepatchtime.py @ 40343:a69d5823af6d
tests: add test for widening from an empty clone
Narrow clones that track no paths currently don't even include the
root manifest (which is the only manifest when using flat
manifests). That means that when we widen from such a clone, we need
to make sure that we send the root manifest (and other manifests if
using tree manifests). That currently works because we always resend
all manifest that match the new narrowspec. However, we're about to
stop resending manifests that the client already has and there's a
risk of this breaking then, so let's add a test.
Differential Revision: https://phab.mercurial-scm.org/D5143
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 17 Oct 2018 09:30:07 -0700 |
parents | c6061cadb400 |
children | 2372284d9457 |
line wrap: on
line source
# extension to emulate invoking 'patch.internalpatch()' at the time # specified by '[fakepatchtime] fakenow' from __future__ import absolute_import from mercurial import ( extensions, patch as patchmod, registrar, ) from mercurial.utils import dateutil configtable = {} configitem = registrar.configitem(configtable) configitem(b'fakepatchtime', b'fakenow', default=None, ) def internalpatch(orig, ui, repo, patchobj, strip, prefix=b'', files=None, eolmode=b'strict', similarity=0): if files is None: files = set() r = orig(ui, repo, patchobj, strip, prefix=prefix, files=files, eolmode=eolmode, similarity=similarity) fakenow = ui.config(b'fakepatchtime', b'fakenow') if fakenow: # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy fakenow = dateutil.parsedate(fakenow, [b'%Y%m%d%H%M'])[0] for f in files: repo.wvfs.utime(f, (fakenow, fakenow)) return r def extsetup(ui): extensions.wrapfunction(patchmod, 'internalpatch', internalpatch)