Commit Graph

79 Commits

Author SHA1 Message Date
Mateusz Kwapich
70f48203f7 nointerrupt: introduce extension
Summary:
This extensions prevents mercurial from being ctrl-c'ed by warning the
user on the first SIGINT. The subsequent interrupts are handled normally.

Test Plan:
see tests

(the tests are lacking the scenario of double ctrl-c - any suggestions on how
to do it in nice way inside the test framework welcome)

Reviewers: #sourcecontrol, durham, wez, quark, akushner, rmcelroy

Subscribers: lcharignon, quark, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D2936488
2016-06-23 11:30:36 -07:00
Jun Wu
f29efc11b8 setup: build patchpython extension
Summary: We need to add `patchpython` to `setup.py` so it can get built.

Test Plan: `make local`

Reviewers: #sourcecontrol, ttung

Subscribers: mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3456715
2016-06-20 14:06:37 +01:00
Tony Tung
3cb14683b0 [fastmanifest] enforce strict prototypes
Summary: Newer versions of gcc (5.x) turn on `-Wstrict-prototype` by default.  Turn this on in our setup.py file for older compilers, and fix the errors that crop up from this.

Test Plan: make local

Reviewers: tnardone, wez, lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3414620

Signature: t1:3414620:1465514102:d91026062582e2a3ab3fc773bbf17686fa38609f
2016-06-09 22:45:05 -07:00
Durham Goode
60873bc788 setup: add missing comma
The missing comma after 'sampling' caused it to get concatenated with 'show',
meaning neither of them were included in the rpms.
2016-06-09 16:34:04 -07:00
Durham Goode
07665da4da statprof: add an extension for customizing our invocation of statprof
Summary:
This overrides the normal Mercurial statprof logic to allow us to pass custom
configuration to our customized version of statprof. In particular, it allows us
to choose between the thread and the signal profile methods, and between the
hotpath and json output formats.

Test Plan: hg.real log -r tip --config extensions.statprofext=../fb-hgext/statprofext.py --profile --config statprof.format='json' --config profiling.output=woooo.log

Reviewers: #mercurial, ttung, lcharignon

Reviewed By: lcharignon

Subscribers: lcharignon, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3408386

Signature: t1:3408386:1465485488:400da1f8e1787674c9ea3888166767a485f2fbdf
2016-06-09 11:36:07 -07:00
Laurent Charignon
80fba54556 sampling: add extension to setup
Summary: I forgot to add it to setup.py previously

Test Plan: How to test that? Is running the build enough?

Reviewers: ttung, durham

Subscribers: mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3399075
2016-06-08 14:28:00 -07:00
Tony Tung
8b218c9e72 [fastmanifest] split fastmanifest.py into separate files
Summary: This combines D3351047, D3351086, and D3351137 into one diff.  This allows mercurial to better remember where things came from since these are all hg cp commands followed by some edits.  However, they were separated into multiple diffs for ease of reviews.

Test Plan: run unit tests

Reviewers: lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3354405

Signature: t1:3354405:1464291057:da140a02b9c87186b1dd9f03f8236d5996319fff
2016-05-26 12:34:38 -07:00
Tony Tung
e62d8fd12b [fastmanifes] rename fastmanifest_wrapper as cfastmanifest
Summary: Depends on D3351021

Test Plan: run unit tests.

Reviewers: lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3351039

Signature: t1:3351039:1464284522:d63f5011c6ca1981408519f5f7378e9a33aaecfe
2016-05-26 11:34:56 -07:00
Tony Tung
fc8c0d61a1 [fastmanifest] rename fastmanifest c library directory to cfastmanifest
Summary: This allows us to use fastmanifest as a directory to drop in the python module.

Test Plan: compiles, passes existing tests.

Reviewers: lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3351021

Signature: t1:3351021:1464284417:6cbcde514ab1fd7b5caa6c83cb5577f3502dbc58
2016-05-26 11:33:07 -07:00
Mateusz Kwapich
906c5f451f sqldirstate: add to setup.py
Test Plan: setup.py build seems to pass the sqldirstate part (it fails on fastmanifest later)

Reviewers: #mercurial, ttung, quark

Reviewed By: quark

Subscribers: mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3278545

Signature: t1:3278545:1462883589:8ecae95031439db30ed87d937c230916195ff9dc
2016-05-10 18:29:53 -07:00
Tony Tung
4b89660673 [fastmanifest] python integration for loading and saving manifests
Summary: Update the ifastmanifest_{load,save} methods and their callers to reflect the API provided by fastmanifest

Test Plan: instrumented hybridmanifest::_manifest to call save and it seemed to produce a file.

Reviewers: lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters, #mercurial

Differential Revision: https://phabricator.intern.facebook.com/D3262279

Signature: t1:3262279:1462536409:b4c794967b0781ccdd4ec8787a3a85e907f5618d
2016-05-09 11:35:53 -07:00
Tony Tung
31ccb0f6a4 [fastmanifest] add tree_diff.c and tree_iterator.c to the build
Test Plan: make local

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3226569

Signature: t1:3226569:1461768167:c5f6ba1b699a4b685dbc57c89f1dc40088ab3d2a
2016-04-27 11:44:49 -07:00
Wez Furlong
12a08e0a47 add arcconfig accessors
Summary:
This is here to support other arcanist/phabrication integration
modules.

Note: this adds a new package.  I'm not sure what the packaging ramifications
are exactly, but surely there are some as other extensions start to depend on
this.

Test Plan:
integration test is provided:

```
$ ../../hg-crew/tests/run-tests.py -j8
....................................................
# Ran 52 tests, 0 skipped, 0 warned, 0 failed.
```

Reviewers: #sourcecontrol, ttung

Subscribers: mjpieters

Differential Revision: https://phabricator.fb.com/D3215615
2016-04-27 09:27:56 -07:00
Tony Tung
0f280b6633 [fastmanifest] enable -Wall and -Werror and clean up new errors
Summary: Most of it is pretty straightforward.  We simply didn't have the right types when we integrated the code.  There's also a few spots where python uses signed values for string lengths.  I casted them to unsigned once I verified that the values are not negative.

Test Plan: compiles cleanly.

Reviewers: #sourcecontrol, lcharignon, wez

Reviewed By: wez

Subscribers: wez, lcharignon, mitrandir, mjpieters

Differential Revision: https://phabricator.fb.com/D3210136

Signature: t1:3210136:1461707413:9fcdd4b744cd24968c5476f20f0b8dd7cbc74adb
2016-04-26 15:45:45 -07:00
Tony Tung
28e952c957 [fastmanifest] remove tree_convert_rt.c from build
Summary: We don't actually need the round-trip conversion tool included in the build.

Test Plan: python setup.py build

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.fb.com/D3194060

Signature: t1:3194060:1461230493:df13d543be765ba907048836da2ebb4a0ea25259
2016-04-21 08:12:05 -07:00
Tony Tung
1b1ca009aa [fastmanifest] compile with c99
Summary: Living dangerously with a C standard from only 17 years ago!!

Test Plan: make local

Reviewers: #sourcecontrol, akushner

Reviewed By: akushner

Subscribers: akushner, mitrandir, mjpieters

Differential Revision: https://phabricator.fb.com/D3198536

Tasks: 10906159

Signature: t1:3198536:1461103465:3415d87269f703c5cbab51ab3e54f05de6f5b963
2016-04-19 15:05:29 -07:00
Jun Wu
a6e1589c4f errorredirect: wrap handlecommandexception instead of sys.exit
Summary:
Since `handlecommandexception` is in core, wrap it to suppress original
crash text, instead of doing an ugly `sys.exit()`. It's much simpler and
cleaner than before. It also fixes an issue with current chg since chgserver
will print an traceback when it encounters SystemExit.

Although `logtoprocess` are doing very similar things with `errorredirect`,
it currently cannot replace `errorredirect` because we need synchronized
behavior to return the user to their shell prompt correctly. If we can get
the synchronized behavior and a way to disable builtin warning (may be tricky)
in `logtoprocess` upstream, the `errorredirect` extension could be just a thin
wrapper around `logtoprocess` using `setconfig`.

Besides, we no longer need `suppresscommandfailure` since the feature will
be either in `errorredirect` or `logtoprocess`.

Test Plan:
Run `hg crash` with `errorredirect.script` set to confirm it is compatible
with the old behavior.

Also run unittest `test-errorredirect.t`

Reviewers: #sourcecontrol, ttung, mjpieters

Reviewed By: mjpieters

Subscribers: rmcelroy, durham, lcharignon, mjpieters

Differential Revision: https://phabricator.fb.com/D3191840

Signature: t1:3191840:1461088280:77febd539c2f38a55778af3977738c045f63a0d8
2016-04-19 10:59:22 -07:00
Tony Tung
49272cddf4 [fastmanifest] integrate the c library with fastmanifest_wrapper
Test Plan: pass @lcharignon's simple manifest test (D2989398) with this

Reviewers: #sourcecontrol, lcharignon

Reviewed By: lcharignon

Subscribers: mitrandir, mjpieters, lcharignon

Differential Revision: https://phabricator.fb.com/D3193368

Tasks: 10589033

Signature: t1:3193368:1461015983:6122bf0565483830cd3bac00f838785f7ac346b7
2016-04-18 15:40:42 -07:00
Martijn Pieters
508b666e12 logtoprocess: remove upstreamed extension
Summary: logtoprocess is now in core mercurial as an experimental extension.

Test Plan: -

Reviewers: #sourcecontrol, ttung

Subscribers: mjpieters

Differential Revision: https://phabricator.fb.com/D3191121

Tasks: 10805001
2016-04-18 16:08:58 +01:00
Martijn Pieters
97461f85be Remove upstreamed automv extension
Summary:
The automv extension is now in mercurial core. Both dev servers and laptops
already use the upstream extension.

Test Plan:
run `hg debugextensions --config "extensions.automv=" --debug | grep automv` to
confirm that the extension is loaded from `hgext`.

Reviewers: #sourcecontrol, ttung, quark

Reviewed By: quark

Subscribers: mjpieters

Differential Revision: https://phabricator.fb.com/D3162775

Signature: t1:3162775:1460388914:20c5afff1dbf191fde476b6f8d2a210e83d33742
2016-04-12 10:11:01 +01:00
Tony Tung
8f13f7b1b9 remove copytrace directory from setup script
Test Plan: run python setup.py build

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham, quark, mitrandir, mjpieters

Differential Revision: https://phabricator.fb.com/D3157434

Signature: t1:3157434:1460144627:6a748aaaaaa5e0e1d521817649acf0a43d3786f9
2016-04-08 13:17:42 -07:00
Laurent Charignon
59bcb8e5c0 fastmanifest: add python to C layer
Summary: This adds the CPythong interface layer for fastmanifest

Test Plan: Compiles

Reviewers: ttung, durham

Differential Revision: https://phabricator.fb.com/D3157095
2016-04-08 11:48:31 -07:00
Laurent Charignon
ae6dfcd369 fastmanifest: add extension
Summary:
This extension will contain the logic for the fastmanifest. For the moment it
contains very simple logic to log manifest access and see if our assumptions are
correct about what manifest are accessed during typical workflow. This will
help build the code to figure out what manifests are worth caching.

Test Plan: add a new test

Reviewers: durham, rmcelroy, ttung

Subscribers: mjpieters

Differential Revision: https://phabricator.fb.com/D3107990

Tasks: 10604335
2016-03-28 18:44:56 -07:00
Martijn Pieters
f0aac1fe38 New extension: Suppress the output generated by a broken commmand.
Summary:
When a command fails, the commandfailure signal is logged. Use the information
provided by this log call to suppress the warning and all traceback
information.

In combination with the logtoprocessui extension, this should replace the less
generic errorredirect extension.

Depends on D3082490

Test Plan: run $HG/tests/runtest.py test-suppresscommandfailure.t

Reviewers: #sourcecontrol, quark, ttung, durham

Reviewed By: durham

Subscribers: mjpieters, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D3084144

Signature: t1:3084144:1458755837:39fea58ed89d03a611bfcfffa88af68a2d55fddc
2016-03-23 14:36:01 -07:00
Martijn Pieters
ba36592fba New extension: handle any ui.log event in an external process.
Summary: This would allow us to trace various events in Mercurial via external commands.

Test Plan: run $HG/tests/runtest.py test-logtoprocess.t

Reviewers: #sourcecontrol, ttung, durham

Reviewed By: durham

Subscribers: quark, mjpieters

Differential Revision: https://phabricator.fb.com/D3082490

Signature: t1:3082490:1458686100:c727b033d97d0b15b294f8b2826cf20614caf269
2016-03-22 17:27:08 -07:00
Matt Anderson
b152e08b24 [diff] support --since-last-arc-diff option
Summary:
This adds `arcdiff.py` to wrap the mercurial diff command.

Once this is landed, the extension will need to be added to `facebook.rc`.

Test Plan: tested locally on www and fb-hgext

Reviewers: rmcelroy, durham, lcharignon

Reviewed By: lcharignon

Subscribers: jpasqualini, pyd, mjpieters, rmcelroy, lcharignon

Differential Revision: https://phabricator.fb.com/D3048888

Tasks: 10380812

Signature: t1:3048888:1458666821:78b5fde9f5523e40ffa6ae95fed1b773091e1be8
2016-03-22 10:45:57 -07:00
Tony Tung
d6443858d8 [manifestdiskcache] include module in release
Summary: Does not actually enable it, but makes it available for inclusion.

Test Plan: none

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.fb.com/D2933112

Tasks: 9946818

Signature: t1:2933112:1455310426:953eebc293985d545ef9ff541231e33d8061a795
2016-02-12 13:39:46 -08:00
Tony Tung
5752463890 [bundle2hooks] fix typo for extutil
Summary: it's extutil not ext2util.  Probably mistyped because of bundle2hooks.

Test Plan: visual

Reviewers: #sourcecontrol, mitrandir

Reviewed By: mitrandir

Subscribers: mitrandir

Differential Revision: https://phabricator.fb.com/D2924507

Signature: t1:2924507:1455147871:5cbc29978ebb7ff0a903f53e2acc91f78735b4d4
2016-02-10 15:46:24 -08:00
Tony Tung
e8afb24cc7 [bundle2hooks] allow hook arguments to be stored on the operation object
Summary:
Some bundle2 handlers (such as pushvars) run prior to the acquisition of the lock.  In order to have those handlers be able to set hook variables, we have to save the hook variables onto the bundle object, rather than the transaction object.

Once the transaction is retrieved, we drain all the hook arguments into the transaction.  Further attempts to call `addhookargs will cause an abort.

An alternative to aborting is to save the transaction, and pass further arguments to the transaction.  I believe this is an inferior choice because it is masking a bug.

Test Plan: run ./verify_reviewedby_info.t in opsfiles with D2880506 patched in.  passed.

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham, mitrandir

Differential Revision: https://phabricator.fb.com/D2898401

Signature: t1:2898401:1454615031:94933cf513eaa06c5b60686ec5d65a563ddc31c4
2016-02-04 15:59:17 -08:00
Mateusz Kwapich
49fd689e08 catnotate: add the extension to setup.py
Summary:
I've written it sometime ago and it's not being shipped yet because I forgot to
add it to setup.py

Test Plan: no plan

Reviewers: #sourcecontrol, durham, ttung, rmcelroy

Reviewed By: rmcelroy

Differential Revision: https://phabricator.fb.com/D2887171

Signature: t1:2887171:1454413837:4a57fc8bccfe840c5540e0db59881af2bea21e45
2016-02-02 15:00:54 -08:00
Jun Wu
c2ee142960 setup: add errorredirect
Summary: We are shipping the config soon. Missed this one.

Test Plan: `setup.py build`

Reviewers: rmcelroy

Reviewed By: rmcelroy

Subscribers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2834261

Tasks: 9259456

Signature: t1:2834261:1452877180:03b833b3fe54c3d461d6253cb709d3d186091fb2
2016-01-15 09:08:03 -08:00
Simon Farnsworth
86662e0f15 Make 'hg show' a native command
Summary:
There are a few ways in which the 'hg show' alias doesn't work for users:

1) if your argument to 'hg show' isn't in exactly the right form, you get confusing messages (e.g. if you run 'hg show --help').

2) It's slow compared to 'git show', and needs speeding up. There's some low-hanging fruit identified by bryano, and having the command as a native command makes it easier to go there.

As a first step towards fixing this, reimplement the existing alias as a Python extension, aiming for minimum behaviour changes. We can inline the implementation of 'hg log' when we need to.

Test Plan:
Run the new automatic test test-show.t:

: /data/users/simonfar/fb-hgext (hg) [nativeshow]
: simonfar@devvm148 tests $ ../../hg/tests/run-tests.py -l test-show.t
.
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.

Note that this means that review needs to cover the automatic test, too, in case I've missed anything important

Reviewers: #sourcecontrol, lcharignon, ttung, rmcelroy

Reviewed By: lcharignon, rmcelroy

Subscribers: rmcelroy, lcharignon, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2820421

Tasks: 9323445, 9599994

Signature: t1:2820421:1452541611:02efa59739f690b30053d93e0d47adf0aef8dbf4
2016-01-12 11:20:28 -08:00
Laurent Charignon
2091cbc6b2 setup: remove writecg2 from list of module
Summary: We removed the module, let's remove it from the setup too

Test Plan: setup builds

Reviewers: #sourcecontrol, ttung

Differential Revision: https://phabricator.fb.com/D2821846
2016-01-11 15:54:37 -08:00
Laurent Charignon
07e75740e1 setup: remove crecord from packages
Summary: I forgot to remove it in my previous commit removing the subrepo

Test Plan:
I ran successfully:

    python setup.py build

Reviewers: #sourcecontrol, ttung, akushner

Reviewed By: akushner

Subscribers: akushner

Differential Revision: https://phabricator.fb.com/D2819305

Signature: t1:2819305:1452487342:f04e7e79e3427e6779aed3332746f256ddcc86e5
2016-01-11 10:46:16 -08:00
Laurent Charignon
8d9856af8e setup: add pullcreatemarkers to the module list
Summary: It was missing, so we couldn't ship it

Test Plan:
I rand

  python setup.py build

It completes successfully and shows the module in the list.

Reviewers: #sourcecontrol, ttung

Differential Revision: https://phabricator.fb.com/D2819070
2016-01-11 10:27:16 -08:00
Cecile Berillon
adc0c3b857 copytrace: adding the module to 'setup.py'
Summary: loading copytrace

Test Plan: i built the rpm locally

Reviewers: #sourcecontrol, rmcelroy

Differential Revision: https://phabricator.fb.com/D2682418

Tasks: 8501037
2015-11-20 15:43:29 -08:00
Rajesh Janakiraman
3cb6727ebe Added phabstatus to query phabricator for a diff status
Test Plan:
  rajeshj@rajeshj-mbp1:fbandroid  (checkup)$ hg log -r 45de9b --template '{phabstatus}'
  Needs Review

Reviewers: durham, rmcelroy

Differential Revision: https://phabricator.fb.com/D2632410
2015-11-09 21:24:13 +00:00
Cecile Berillon
44e7929f81 added automv in setup.py
Summary: added automv in setup.py

Test Plan: N

Reviewers: #sourcecontrol, rmcelroy

Differential Revision: https://phabricator.fb.com/D2610821

Tasks: 8501037
2015-11-03 09:30:18 -08:00
Durham Goode
97e7daee94 Add dirsync to setup.py 2015-11-02 14:58:06 -08:00
James Mills
c6bf360c5c Use setuptools if available.
Summary: Because working in a virtualenv w/ setuptools makes things a little easier :)

Test Plan: workon hg && python setup.py develop

Reviewers: rmcelroy, durham

Reviewed By: durham

Differential Revision: https://phabricator.fb.com/D2570341

Signature: t1:2570341:1445542319:0f30cb4aefb7c59753decda4535ca335a4f423cc
2015-10-22 08:02:30 -07:00
Durham Goode
b94a656fd6 Backed out changeset fdf03d333887 2015-10-16 12:30:57 -07:00
Siddharth Agarwal
e49d9a23dc initial mergedriver implementation 2015-10-15 00:37:45 -07:00
Durham Goode
5f2359cd38 writecg2: remove entry from setup.py 2015-10-13 17:12:40 -07:00
Christian Delahousse
5112a69d61 adding more status to setup.py 2015-10-06 14:04:01 -07:00
Durham Goode
3a1a78caff Add perftweaks to setup.py 2015-09-29 14:22:46 -07:00
Durham Goode
1ce3b1fcaf Add statprof 2015-09-07 13:46:29 -07:00
Pierre-Yves David
397a9f095d b2xcompat: remove the extension
Summary:
This extension was a temporary hack to help people move from the experimental
bundle2 format to the final one. All user have been moved so we can put this
very hacky extension to the sword.

Test Plan: ran setup.py install --prefix /tmp/foobar, b2xcompat was no longer there.

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2298571
2015-07-30 13:10:23 -07:00
Durham Goode
da5dfd45de pushrebase: add to setup.py
This will allow us to put it in an rpm.
2015-07-07 19:10:17 -07:00
Laurent Charignon
7b6673c2b7 inhibit: add extension to warn evolve beta users
Summary: inhibit: add extension to warn evolve beta users

Test Plan:
Checked with and without cutoff date set in hgrc that the message
is displayed when it has to.

Reviewers: durham, pyd

Differential Revision: https://phabricator.fb.com/D2080693

Tasks: 6634899
2015-05-18 11:38:11 -07:00
Aaron Kushner
f9db07b833 Added pushvars to configs 2015-05-19 15:24:37 -07:00