sapling/contrib
Jun Wu 99c3ae0727 phabricator: add a small language to query Differential Revisions
Previously, `phabread` can only be used to read a single patch, or a single
stack of patches. In the future, we want to have more complex queries like
filtering with status (open, accepted, closed, etc), or maybe more complex
like filtering by reviewers etc. The command line flag approach won't scale
with that.

Besides, we might want to have other commands to update Differential
Revision status in batch, like accepting a stack using a single command.

Therefore, this patch adds a small language. It has basic set operations:
`&`, `+`, `-` and an ancestor operator to support `--stack`.

Test Plan:
Try querying this Phabricator instance:

  hg phabread 1+2 # 1, 2
  hg phabread D2+D1 # 2, 1
  hg phabread ':118-115+:2-1' # 114, 116, 117, 118, 2
  hg phabread '((:118-(D115+117)))&:117' # 114, 116
  hg phabread ':2&:117' --debug # differential.query is called only once

Make sure the output is expected and prefetch works.

Differential Revision: https://phab.mercurial-scm.org/D125
2017-07-17 23:19:11 -07:00
..
benchmarks perf: add historical support of ui.load() 2016-12-15 12:17:08 +01:00
chg chg: define _GNU_SOURCE to allow CentOS 5 compilation 2017-08-07 13:40:36 +02:00
debian merge with stable 2017-06-03 16:33:28 -04:00
docker centos5: use vault urls 2017-08-07 13:38:25 +02:00
hgsh backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
macosx osx: update bugzilla link in readme 2016-08-04 19:53:46 +08:00
plan9 urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
python-zstandard zstd: vendor python-zstandard 0.8.1 2017-04-08 14:33:20 -07:00
vagrant vagrant: update to official Debian 8.1 base box 2015-09-02 11:52:24 -05:00
vim spelling: fixes of non-dictionary words 2016-10-17 23:16:55 +02:00
win32 config: update the Windows example config file 2017-02-28 20:23:10 +01:00
wix wix: update list of necessary pyd files 2017-07-21 11:26:51 -05:00
all-revsets.txt spelling: fixes of non-dictionary words 2016-10-17 23:16:55 +02:00
asv.conf.json perf: add asv benchmarks 2016-09-29 10:16:34 +02:00
base-revsets.txt contrib: introduce an all-revsets.txt file 2015-06-16 22:15:30 -07:00
bash_completion bashcompletion: allow skipping completion for 'hg status' 2016-09-26 10:47:37 +02:00
bdiff-torture.py mpatch: proxy through mdiff module 2017-04-26 22:05:59 +09:00
build-linux-wheels.sh contrib: make build-linux-wheels.sh executable 2017-07-19 13:45:06 -04:00
builddeb builddeb: add distroseries to tagged versions 2016-05-06 14:09:11 -07:00
buildrpm buildrpm: do not break in presence of custom user configs 2017-08-04 08:15:10 +02:00
casesmash.py casesmash: use absolute_import 2016-03-06 02:25:50 +05:30
check-code.py check-code: prohibit if False antipattern 2017-07-07 15:11:11 -04:00
check-commit contrib: fix check-commit to not reject commits from hg sign and hg tag 2017-01-18 23:34:35 -05:00
check-config.py check-config: mention the file and line of the error 2017-07-18 06:27:36 -07:00
check-py3-compat.py check: check modules in hgdemandimport 2017-05-21 13:44:26 -07:00
debugcmdserver.py debugcmdserver: use absolute_import and print_function 2016-03-06 03:06:09 +05:30
debugshell.py manifest: remove last uses of repo.manifest 2016-11-10 02:13:19 -08:00
dirstatenonnormalcheck.py devel: use the 'config' argument for the dirstate normalisation develwarn 2016-05-08 10:43:41 +02:00
dockerdeb dockerdeb: pass the rest of the args to the builder script 2016-04-23 12:47:57 -07:00
dockerlib.sh docker: pass proxy arguments to docker process 2017-07-27 13:44:15 +02:00
dockerrpm docker: pass proxy arguments to docker process 2017-07-27 13:44:15 +02:00
dumprevlog py3: make contrib/dumprevlog use print_function 2016-05-13 02:16:32 +05:30
editmerge editmerge: dequote other use of $ED 2015-10-19 21:36:12 -07:00
editmergeps.bat contrib: run editmergeps.ps1 from the same location as editmergeps.bat 2017-05-30 05:56:48 -07:00
editmergeps.ps1 contrib: remove unnecessary debug output from editmergeps.ps1 2017-05-30 06:22:14 -07:00
fixpax.py fixpax: use absolute_import and print_function 2016-03-06 03:10:17 +05:30
genosxversion.py osx: new script for generating OS X package versions 2017-07-24 20:38:09 -04:00
hg-ssh dispatch: protect against malicious 'hg serve --stdio' invocations (sec) 2017-04-12 11:23:55 -07:00
hg-test-mode.el hg-test-mode: make exit code highlight work again 2014-08-12 12:53:23 -05:00
hgclient.py test-commandserver: handle cStringIO.StringIO/io.StringIO divergence 2016-04-06 20:34:34 +00:00
hgk hgk: display committer name when set by hg-git 2015-04-03 22:44:25 +02:00
hgperf mercurial: switch to util.timer for all interval timings 2017-02-15 13:17:39 -08:00
hgweb.fcgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
hgweb.wsgi urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
import-checker.py import-checker: add hgdemandimport to local modules 2017-05-31 20:07:08 -07:00
linux-wheel-centos5-blacklist packaging: add make target for linux wheels 2017-04-25 16:50:01 +02:00
logo-droplets.svg logo: clean up source file with scour 2010-04-05 14:33:41 -05:00
Makefile.python contrib: disable SSLv3_method() to build old Python with recent libssl 2015-11-07 16:31:04 +09:00
memory.py atexit: switch to home-grown implementation 2017-04-11 14:54:12 -07:00
mercurial.el en-us: penalize 2012-08-17 13:58:19 -07:00
mercurial.spec rpms: add chg 2017-07-27 16:09:26 +02:00
mq.el Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
packagelib.sh packagelib: use LANGUAGE=C for "hg version" 2017-06-12 03:23:58 +09:00
perf.py perf: ensure HGRCPATH is exported on Windows 2017-06-16 20:49:32 -04:00
phabricator.py phabricator: add a small language to query Differential Revisions 2017-07-17 23:19:11 -07:00
pylintrc codingstyle: remove trailing spaces in various text files 2013-04-17 03:40:18 +02:00
python3-ratchet.py contrib: add a ratchet for tests in Python 3 2017-06-15 11:00:29 -04:00
python3-whitelist contrib: remove one test from the python 3 whitelist 2017-07-24 15:37:57 -04:00
python-hook-examples.py contrib: python-hook-examples use absolute_import 2016-03-16 04:13:28 +05:30
revsetbenchmarks.py py3: make contrib/revsetbenchmarks.py not import symbols from stdlib modules 2016-05-14 14:23:04 +09:00
showstack.py showstack: use absolute_import 2016-03-13 01:59:18 +05:30
simplemerge fancyopts: switch from fancyopts.getopt.* to getopt.* 2016-12-06 06:27:58 +05:30
synthrepo.py extensions: change magic "shipped with hg" string 2016-08-23 11:26:08 -04:00
tcsh_completion contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
tcsh_completion_build.sh contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
undumprevlog vfs: use 'vfs' module directly in 'contrib/undumprevlog' 2017-03-02 13:32:49 +01:00
xml.rnc Added RelaxNG schema for hg log XML output format 2009-12-30 02:44:37 +01:00
zsh_completion zsh_completion: add '--partial' flag to completions for 'import' (issue5618) 2017-07-12 10:11:02 +02:00