sapling/eden/scm/edenscm/mercurial
Meyer Jacobs fb44958218 scmstore: improve debugscmstore command to support fetching arbitrary files / trees
Summary:
Extend debugscmstore command to fetch arbitrary files / trees by key.

Replace debugpyscmstore with a python fallback for debugscmstore (allowing you to test with the store as it is constructed for Python, with legacy fallback).

Refactor some functionality so it is shared between the rust and python versions of debugscmstore.

Currently the output is pretty ugly. It uses the `{:#?}` format for everything. In the next change, I propose modifying the `Debug` implementation for `minibytes::Bytes` to use ascii-escaped bytestrings rather than the default slice formatter to make things much nicer.

This new `debugscmstore` functionality should be useful in integration tests for testing scmstore under different repo configurations, and for test harnesses and performance testing (fetch a specific set of things easily, simulate delays in the key stream by delaying the input pipe, etc).

Reviewed By: andll

Differential Revision: D27351321

fbshipit-source-id: 8650480e3f5b045b279472643570309c48d7fe6b
2021-04-13 22:13:03 -07:00
..
cext dont define MIN if it is allready defined 2021-03-18 04:09:20 -07:00
cffi suppress errors in eden - batch 1 2020-07-20 13:29:51 -07:00
commands scmstore: improve debugscmstore command to support fetching arbitrary files / trees 2021-04-13 22:13:03 -07:00
help Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
hgweb smartset: make repo required for baseset 2020-12-14 13:12:42 -08:00
httpclient apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
pure apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
templates template: remove obsfate, instabilities, succsandmarkers 2020-07-02 13:22:28 -07:00
thirdparty remediation of S205607 2020-07-17 17:16:13 -07:00
utils remediation of S205607 2020-07-17 17:16:13 -07:00
__init__.py Update pyre version for eden 2020-04-23 12:09:39 -07:00
ancestor.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
archival.py delete the custom GzipFileWithTime class 2020-03-17 11:07:49 -07:00
autopull.py remotebookmarks: check the remote when checking essential selective pull remote bookmarks 2021-03-04 15:23:16 -08:00
bdiff.c use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
bdiff.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
bitmanipulation.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
blackbox.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
blobstore.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
bookmarks.py bookmarks: clean up visibleheads if remotenames are removed 2021-03-10 11:55:53 -08:00
branchmap.py repoview: further remove repoview references 2020-07-06 14:04:27 -07:00
bundle2.py error: generalize NetworkError to all network read errors 2021-03-08 08:06:00 -08:00
bundlerepo.py pycompat: replace isinstance(i, int) with pycompat.isint(i) 2021-03-30 10:43:04 -07:00
byterange.py fix_map 2020-01-28 18:24:56 -08:00
changegroup.py error: generalize NetworkError to all network read errors 2021-03-08 08:06:00 -08:00
changelog2.py changelog: add filternodes API 2021-04-13 17:12:47 -07:00
changelog.py pydag: add an API to test if the dag has lazy vertexes 2021-04-13 16:40:07 -07:00
chgserver.py ui: disable Rust progress when starting external pager 2021-03-18 13:00:24 -07:00
clone.py revlogindex: be Ctrl+C/SIGKILL safe 2020-08-06 12:31:57 -07:00
cmdutil.py clidispatch: add --insecure global flag 2021-03-31 12:53:46 -07:00
color.py color: add combined effects in fallback chains 2021-02-23 04:47:01 -08:00
commandserver.py commandserver: clear progress explicitly before os._exit 2021-04-13 12:35:13 -07:00
compat.h Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
config.py format: apply latest Black formatting 2020-05-07 09:07:49 -07:00
configitems.py discovery: remove unused discovery logic 2021-04-12 17:11:37 -07:00
connectionpool.py connection pool: log remote path 2020-03-11 02:18:06 -07:00
context.py matcher: add option to allow generating nevermatching when there is no patterns 2021-04-06 14:58:12 -07:00
copies.py rollout: use doublewrite changelog backend for hg-dev 2020-10-20 15:53:57 -07:00
crecord.py crecord: make it more readable on Windows terminal and light colors 2020-11-05 13:44:41 -08:00
dagop.py smartset: drop repo from iterctx 2020-12-14 13:12:42 -08:00
dagparser.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
dagutil.py repoview: further remove repoview references 2020-07-06 14:04:27 -07:00
debugcommands.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
destutil.py destutil: exclude null in histedit rev selection 2021-03-12 17:14:17 -08:00
detectissues.py debugging: Implement "debugdetectissues" command for detecting signs of repository issues 2020-05-19 18:11:29 -07:00
dirstate.py fsmonitor: add threshold of nonnormal files to update 2021-01-12 16:26:48 -08:00
dirstateguard.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
discovery.py discovery: remove unused discovery logic 2021-04-12 17:11:37 -07:00
dispatch.py py3: fix tests on Windows 2021-03-29 12:56:48 -07:00
drawdag.py repoview: further remove repoview references 2020-07-06 14:04:27 -07:00
dummycert.pem Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
eden_dirstate_fs.py unicode: skip binary filenames coming from Eden 2020-03-17 09:14:35 -07:00
eden_dirstate_map.py suppress errors in eden - batch 1 2020-07-20 13:29:51 -07:00
eden_dirstate.py repoview: further remove repoview references 2020-07-06 14:04:27 -07:00
eden_update.py py3: fix checkout with conflicts in eden 2020-07-06 14:07:59 -07:00
edenfs.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
EdenThriftClient.py thrift: remove getManifestEntry 2021-03-19 09:25:05 -07:00
encoding.py suppress errors in fbcode/eden - batch 1 2021-03-04 11:03:06 -08:00
error.py error: make BadResponseError also RepoError 2021-03-10 16:01:52 -08:00
exchange.py discovery: remove unused discovery logic 2021-04-12 17:11:37 -07:00
extensions.py extensions: fix double loading extensions 2021-03-31 21:32:37 -07:00
fancyopts.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
filelog.py revlog: add some type annotations 2020-02-03 07:35:32 -08:00
filemerge.py editmerge editor selection consistency 2021-03-17 10:48:36 -07:00
fileset.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
filesystem.py filesystem: reuse wctx/pctx during status tight loops 2021-01-28 16:55:48 -08:00
formatter.py py3: fix test-command-template-t.py 2020-06-24 01:43:35 -07:00
fscap.py fscap: EdenFS on macOS may be case insensitive 2021-02-10 15:03:41 -08:00
graphmod.py smartset: drop repo from iterctx 2020-12-14 13:12:42 -08:00
hbisect.py bisect: make it python3 compatible 2020-04-08 19:08:51 -07:00
help.py help: hide private functions 2021-03-22 20:48:58 -07:00
helptext.py discovery: remove unused discovery logic 2021-04-12 17:11:37 -07:00
hg.py configs: add --configfile's to new .hg/hgrc during clone 2021-03-18 10:23:07 -07:00
hintutil.py shelve: remove buck warning from shelve and unshelve 2021-03-16 20:33:19 -07:00
hook.py tracing: replace blackbox.logblocked with tracing events 2020-05-12 10:48:43 -07:00
httpconnection.py use integers in comparison for readauthforuri 2020-12-07 05:49:09 -08:00
httppeer.py Update pyre version for eden 2020-04-23 12:09:39 -07:00
i18n.py suppress errors in eden - batch 1 2020-09-28 16:03:43 -07:00
identity.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
json.py suppress errors in eden - batch 1 2020-05-21 19:32:35 -07:00
keepalive.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
localrepo.py localrepo: persist IdMap fetched from remote 2021-04-13 17:12:47 -07:00
lock.py do not print warning about repo locking if the wait below the default threshold 2021-02-08 03:16:55 -08:00
lsprof.py suppress errors in eden - batch 1 2020-05-21 19:32:35 -07:00
lsprofcalltree.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
mail.py check-code: convert to Python 3 2020-05-07 09:07:50 -07:00
manifest.py repoview: further remove repoview references 2020-07-06 14:04:27 -07:00
match.py matcher: add option to allow generating nevermatching when there is no patterns 2021-04-06 14:58:12 -07:00
mdiff.py suppress errors in eden - batch 1 2020-05-21 19:32:35 -07:00
merge.py checkout: check unknown files during native checkout 2021-04-13 11:47:54 -07:00
mergeutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
metrics.py metrics: use the hgmetrics bindings for incrementing counters 2020-09-09 17:35:48 -07:00
minirst.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
mononokepeer.py mononokepeer: update handling of pipe read errors 2021-04-12 11:07:55 -07:00
mpatch.c use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mpatch.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mutation.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
namespaces.py remove accessed bookmarks feature 2021-02-18 04:02:06 -08:00
node.py node: use binascii.Error in Python3 2020-04-08 23:46:09 -07:00
obsolete.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
obsutil.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
parser.py parser: add a function to walk through a tree 2020-10-20 16:45:43 -07:00
patch.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
pathutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
peer.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
perftrace.py tracing: add more trace values 2020-04-22 15:35:17 -07:00
phases.py smartset: make repo required for baseset 2020-12-14 13:12:42 -08:00
posix.py py3: fix hg status with unicode characters in OSX 2021-02-26 16:31:45 -08:00
profiling.py profiling: do not profile debugshell command 2020-08-27 18:14:29 -07:00
progress.py do not show Rust progress in curses interface 2021-03-23 10:52:56 -07:00
pushkey.py py3: fix pushkey encoding by removing local encoding 2020-01-31 13:12:13 -08:00
pvec.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
pycompat.py pycompat: replace isinstance(i, int) with pycompat.isint(i) 2021-03-30 10:43:04 -07:00
rcutil.py py3: fix test-hint.py 2020-04-08 22:00:35 -07:00
registrar.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
repair.py ui: move push/pull messages to stderr 2020-12-16 20:12:04 -08:00
replay.py mononoke: send bonsai to hg mapping while running hg sync 2021-03-29 12:39:19 -07:00
repository.py remotefilelog: move stream_out wireprotocol to core 2020-05-12 10:23:21 -07:00
revlog.py changelog: add filternodes API 2021-04-13 17:12:47 -07:00
revset.py revset: do not autopull x or y for revset limit(a, x, y) 2021-04-13 14:34:41 -07:00
revsetlang.py context: add a way to disable revnum resolution 2021-03-29 22:18:42 -07:00
rewriteutil.py smartset: make repo required for baseset 2020-12-14 13:12:42 -08:00
scmposix.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
scmutil.py matcher: add option to allow generating nevermatching when there is no patterns 2021-04-06 14:58:12 -07:00
scmwindows.py typing: enable pyre 2019-12-04 10:55:00 -08:00
server.py util: use Rust pyprocess to implement spawndetached 2020-08-31 17:34:48 -07:00
setdiscovery.py setdiscovery: use filternodes for faster "hasnode" tests 2021-04-13 17:12:47 -07:00
similar.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
simplemerge.py mergetools: add new conflict marker format with diffs in 2021-03-10 17:29:18 -08:00
smallcommitmetadata.py debug: Add commit metadata storage and templating for marking stable commits 2020-06-10 19:29:39 -07:00
smartset.py smartset: use nameset instead of idset for spans 2021-04-13 16:56:17 -07:00
sparse.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
sshpeer.py introduce ability to talk to mononoke directly 2020-11-18 07:34:38 -08:00
sshserver.py py3: fix test-bundle2-exchange.t 2020-04-13 15:28:25 -07:00
sslutil.py speed test on mononoke 2021-01-25 02:29:19 -08:00
statprof.py codemod: signal.signal -> util.signal 2020-09-18 13:28:34 -07:00
stdiopeer.py introduce ability to talk to mononoke directly 2020-11-18 07:34:38 -08:00
store.py changelog2: track "tip" explicitly 2020-10-20 15:24:28 -07:00
streamclone.py streamclone: send files that might be un-inlined soon first 2020-11-14 08:02:21 -08:00
streams.py streams: do not buffer 10k commits if it takes long 2021-03-25 12:42:14 -07:00
templatefilters.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
templatekw.py template: add rev f64 compatibility 2020-11-19 12:15:36 -08:00
templatenew.py scmutil: remove meaningfulparents 2020-09-05 15:06:44 -07:00
templater.py tests: fix compatibility with ignorerevnum 2021-03-30 10:43:04 -07:00
transaction.py transaction: record transaction name to metalog 2021-01-29 12:36:08 -08:00
treedirstate.py i18n: use _x to signal untranslated strings 2020-05-07 09:07:49 -07:00
treestate.py repo: unconditionally migrate to specified visibility and dirstate format 2020-10-20 16:36:50 -07:00
txnutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
types.py py3: add stub for localrepository 2020-02-03 17:07:36 -08:00
ui.py py3: fix tests on Windows 2021-03-29 12:56:48 -07:00
uiconfig.py dynamicconfig: move validation into pure Rust 2021-03-11 10:13:36 -08:00
url.py py3: fix test-command-template-t.py 2020-06-24 01:43:35 -07:00
urllibcompat.py apply pyfmt with usort to opted-in sources 2020-11-10 21:25:54 -08:00
util.py util: do not redirect stdout 2021-04-13 13:43:39 -07:00
verify.py changelog: initial support for segmented changelog 2020-08-04 09:59:11 -07:00
vfs.py lock: detect deadlock in a same process 2020-10-19 17:07:30 -07:00
visibility.py visibility: extract pure deserialization to a function 2021-03-10 16:49:59 -08:00
win32.py Daily arc lint --take BLACK 2021-02-26 03:57:20 -08:00
windows.py py3: fix tests on Windows 2021-03-29 12:56:48 -07:00
winutil.py py3: move checkwinfilename() to a separate file and add type hints 2020-01-31 20:18:21 -08:00
wireproto.py wireproto: fix incorrect name in timefunction 2020-12-14 07:57:46 -08:00
worker.py worker: remove the forkers 2020-06-23 18:47:44 -07:00