Summary:
Be a better citizen under system python path.
Fix all tests issues and change setup.py to use glob pattern to include
all extensions.
Test Plan:
Run tests and `make local`.
Also build and install the package and run `hg sl` in major repos.
Reviewers: #mercurial, ttung, rmcelroy
Reviewed By: rmcelroy
Subscribers: rmcelroy, durham, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D3534311
Signature: t1:3534311:1468275426:fe122646c8bd6c541e1889e73e9df28f86747ff2
Summary:
reflog is dead, long live journal! journal is at feature parity and reflog can
go. I've marked this as a move to help find what happened in history.
Test Plan:
Run all the tests to see if anything broke:
$HGSRC/tests/run-tests.py -l
Reviewers: #sourcecontrol, ttung
Reviewed By: ttung
Subscribers: mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D3498613
Tasks: 10804988
Signature: t1:3498613:1467232574:75c80b0223c101236b4d4e0f27f46f72797ebe90
Summary:
This is slated to be the upstream version of reflog. It is being hashed out
here to accellerate moving from reflog to journal.
This initial revision only supports bookmarks; later diffs add remote bookmarks
and working copy changes. As such the storage format is built to support those
usecases but the commandline usage is still geared towards only needing to list
bookmarks for now.
We'll replace reflog.py with journal.py altogether, but due to the fine details
of our RPM / chef config duality reflog.py needs to stick around until we
rolled out the RPM everywhere and updated chef to follow.
Test Plan:
Run the included test-journal.t test
$HGSRC/tests/run-tests.py -l test-journal.t
Reviewers: #sourcecontrol, rmcelroy
Reviewed By: rmcelroy
Subscribers: rmcelroy, quark, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D3458077
Tasks: 10804988
Signature: t1:3458077:1467215042:d3fbba283901de6abee5d2b28a43ed9293627795
Summary: I plan to use it to ensure proper loading ordr in case of sqldirstate
Test Plan:
~/clowncopter/tests/run-tests.py -j 30
Reviewers: #mercurial, ttung, durham, rmcelroy
Reviewed By: rmcelroy
Subscribers: mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D3472358
Signature: t1:3472358:1466637677:3b8b5a89ef7dfbcde4a1e7b8ea58348b07a6a969
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Summary: This adds the CPythong interface layer for fastmanifest
Test Plan: Compiles
Reviewers: ttung, durham
Differential Revision: https://phabricator.fb.com/D3157095
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
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
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
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
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
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
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
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
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
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
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
Summary: loading copytrace
Test Plan: i built the rpm locally
Reviewers: #sourcecontrol, rmcelroy
Differential Revision: https://phabricator.fb.com/D2682418
Tasks: 8501037
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
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
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
Summary: Now that we have it, we wants it deployable
Test Plan:
ran setup.py install --prefix=/tmp/babar/
The file was there!
Reviewers: #sourcecontrol
Differential Revision: https://phabricator.fb.com/D1990894
Test Plan:
* New test
* Ran all mercurial tests with this extension enabled. Most tests passed, and the ones that failed were due to additional output thansk to the enabled extension (eg, help screens mentioning the extenstion, and config dumps listing the extension as enabled).
Reviewers: sid0, davidsp, pyd, durham
Reviewed By: durham
Subscribers: ps
Differential Revision: https://phabricator.fb.com/D1691116
Tasks: 5503905
Signature: t1:1691116:1418066154:9d0950b7395038a7fa95b4ec26f9360ea2db9fc6
Summary: add the chistedit extension that adds an interactive ncurses based
interface for histedit. It requires python-curses to be installed and the
Mercurial histedit extension to be enabled.
Test Plan: enabled and used it
Reviewers: durham, sid0, pyd
Differential Revision: https://phabricator.fb.com/D1662465
Summary: add fbhistedit extension to the list of installed extensiosn
Test Plan: run setup, ensure fbhistedit is properly compiled
Reviewers: sid0, daviser, pyd, durham
Reviewed By: durham
Differential Revision: https://phabricator.fb.com/D1627113
Summary:
This makes tweaks to the Mercurial defaults, to improve the user experience:
- hg update without arguments now aborts
- hg log now defaults to -f
- hg rebase without -d now aborts
- hg rebase will fast forward a bookmark if possible
Test Plan: Added a test, ran it.
Reviewers: mpm, sid0, davidsp, dschleimer, akushner
Differential Revision: https://phabricator.fb.com/D1501398
Summary:
Adds an 'hg backups' command that lists the commits in the backup
bundles, newest first. It also allows 'hg backups --recover <commit hash>' which will then
recover the commit from the appropriate backup bundle.
The default output looks like so: https://www.facebook.com/pxlcld/l0gC
Test Plan: Ran it. See the screenshot
Reviewers: mpm, sid0, dschleimer, pyd, davidsp
Differential Revision: https://phabricator.fb.com/D1183032