Mercurial > hg
annotate tests/fakepatchtime.py @ 44311:2b72c4ff8ed1
nodemap: use an intermediate "docket" file to carry small metadata
This intermediate file will make mmapping, transaction and content validation
easier. (Most of this usefulness will arrive gradually in later changeset). In
particular it will become very useful to append new data are the end of raw file
instead of rewriting on the file on each transaction.
See in code comments for details.
Differential Revision: https://phab.mercurial-scm.org/D7838
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 15 Jan 2020 15:47:50 +0100 |
parents | 2372284d9457 |
children | 89a2afe31e82 |
rev | line source |
---|---|
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
1 # extension to emulate invoking 'patch.internalpatch()' at the time |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
2 # specified by '[fakepatchtime] fakenow' |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
3 |
27284
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
4 from __future__ import absolute_import |
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
5 |
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
6 from mercurial import ( |
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
7 extensions, |
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
8 patch as patchmod, |
34772
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
9 registrar, |
27284
f624b0e69105
tests/fakepatchtime.py: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25756
diff
changeset
|
10 ) |
36607
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36325
diff
changeset
|
11 from mercurial.utils import dateutil |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
12 |
34772
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
13 configtable = {} |
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
14 configitem = registrar.configitem(configtable) |
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
15 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
16 configitem( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
17 b'fakepatchtime', b'fakenow', default=None, |
34772
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
18 ) |
7be2f229285b
configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net>
parents:
27284
diff
changeset
|
19 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
20 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
21 def internalpatch( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
22 orig, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
23 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
24 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
25 patchobj, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
26 strip, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
27 prefix=b'', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
28 files=None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
29 eolmode=b'strict', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
30 similarity=0, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
31 ): |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
32 if files is None: |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
33 files = set() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
34 r = orig( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
35 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
36 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
37 patchobj, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
38 strip, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
39 prefix=prefix, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
40 files=files, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
41 eolmode=eolmode, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
42 similarity=similarity, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
43 ) |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
44 |
36325
9a75619776ca
py3: add b'' prefixes in fakepatchtime.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
34772
diff
changeset
|
45 fakenow = ui.config(b'fakepatchtime', b'fakenow') |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
46 if fakenow: |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
47 # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
48 # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy |
36607
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36325
diff
changeset
|
49 fakenow = dateutil.parsedate(fakenow, [b'%Y%m%d%H%M'])[0] |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
50 for f in files: |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
51 repo.wvfs.utime(f, (fakenow, fakenow)) |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
52 |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
53 return r |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
54 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36607
diff
changeset
|
55 |
25756
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
56 def extsetup(ui): |
a4a41525180c
tests: add extension to emulate invoking internalpatch at the specific time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
57 extensions.wrapfunction(patchmod, 'internalpatch', internalpatch) |