mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 14:58:03 +03:00
ffc85f7222
Summary: This makes it possible to use zstore instead of 00changelog.d to store commit data. Right now it double writes to zstore and 00changelog.d if turned on. In the future we can switch to only writing to zstore if 00changelog.i alternative is available. Some related configs were added for fallback strategy: revlog or server. The revlog fallback allows us to do fast migration. The server fallback (not implemented in this diff) allows us to stop depending on revlog.d. Reviewed By: DurhamG Differential Revision: D18737260 fbshipit-source-id: 3c9605f0babd8a215ee74bdf1275cc4e9dbd766c
88 lines
1.5 KiB
Python
88 lines
1.5 KiB
Python
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
#
|
|
# This software may be used and distributed according to the terms of the
|
|
# GNU General Public License version 2.
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from testutil.dott import feature, sh, testtmp # noqa: F401
|
|
|
|
|
|
# Test turning zstore-commit-data on and off
|
|
|
|
sh % "setconfig format.use-zstore-commit-data=off"
|
|
|
|
sh % "newrepo"
|
|
sh % "drawdag" << r"""
|
|
B C
|
|
|/
|
|
A
|
|
"""
|
|
|
|
# Migrate up (double-writes to zstore and 00changelog.d).
|
|
|
|
sh % "setconfig format.use-zstore-commit-data=on"
|
|
sh % 'hg log -r "$C" -T "{desc}\\n"' == "C"
|
|
|
|
# Create new commits.
|
|
|
|
sh % "drawdag" << r"""
|
|
F
|
|
/|
|
|
D E
|
|
| |
|
|
desc(C)
|
|
"""
|
|
|
|
# With zstore-commit-data, 00changelog.d is not used for reading commits.
|
|
|
|
sh % "mv .hg/store/00changelog.d .hg/store/00changelog.d.bak"
|
|
sh % 'hg log -GT "{desc}"' == r"""
|
|
o F
|
|
|\
|
|
| o E
|
|
| |
|
|
o | D
|
|
|/
|
|
o C
|
|
|
|
|
| o B
|
|
|/
|
|
o A"""
|
|
|
|
# Migrate down. 00changelog.d becomes required.
|
|
|
|
sh % "setconfig format.use-zstore-commit-data=off"
|
|
sh % 'hg log -GT "{desc}"' == r"""
|
|
abort: *00changelog.d* (glob)
|
|
[255]"""
|
|
|
|
sh % "mv .hg/store/00changelog.d.bak .hg/store/00changelog.d"
|
|
sh % 'hg log -GT "{desc}"' == r"""
|
|
o F
|
|
|\
|
|
| o E
|
|
| |
|
|
o | D
|
|
|/
|
|
o C
|
|
|
|
|
| o B
|
|
|/
|
|
o A"""
|
|
|
|
# Create new commits.
|
|
|
|
sh % "drawdag" << r"""
|
|
H
|
|
|
|
|
G
|
|
|
|
|
desc(B)
|
|
"""
|
|
|
|
# Migrate up (double-writes to zstore and 00changelog.d).
|
|
|
|
sh % "setconfig format.use-zstore-commit-data=on"
|
|
sh % 'hg log -r "$H" -T "{desc}\\n"' == "H"
|