Summary:
Upstream has removed all the b2x flags, so let's do the same to pushrebase. Also
fixes pushrebase's use of manifest._intersectfiles() which has been removed
upstream (in favor of a matcher).
The tests had a bunch of hardcoded hooks which were very messy and became
impossible to maintain when upstream changed what args were passed. Let's just
get rid of all that noise.
Test Plan: Ran the tests
Reviewers: sid0, rmcelroy, lcharignon, ericsumner, pyd
Reviewed By: pyd
Differential Revision: https://phabricator.fb.com/D2003033
Signature: t1:2003033:1429832524:c0de8ebea7e6348ba9b55c109ca71bb3a301b625
Summary: The `intersectfiles` API changed.
Test Plan: ran the tests
Reviewers: ericsumner, #sourcecontrol
Reviewed By: ericsumner, #sourcecontrol
Differential Revision: https://phabricator.fb.com/D1966309
Tasks: 6619970
Signature: t1:1966309:1428086453:415a185b71af4812de2f5b6690a5337a5950aab6
Summary:
It turns out that bundlerepo uses the underlying phase boundaries, so the
added changesets show up with the same phase as their nearest ancestor that's
already in the repository. This behavior is confusing and inconsistent with
what happens when the bundle is actually applied: retracting the draft boundary
over the new commits.
This makes a copy of the phase cache so that changes in the bundlerepo don't
affect the real one and then retracts the draft boundary like would happen
when the bundle is applied normally.
If this general solution looks OK, I'll submit an upstream patch that makes
bundlerepo behave this way always, which will make it match the behavior that
would be seen when using ##hg unbundle##.
Test Plan: ##run-tests.py##
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: calvinb, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham
Differential Revision: https://phabricator.fb.com/D1733166
Signature: t1:1733166:1420502423:f57e2fff8fe47293ecab1ac4f6efdd0507c9c7b5
Summary: Been working with js too long; python vars aren't None by default
Test Plan: ##run-tests.py##, and doing a traditional push w/ the extension enabled
Reviewers: durham, sid0, pyd
Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham
Differential Revision: https://phabricator.fb.com/D1743710
Summary:
@durin42 suggested that the extension might want to prevent processing of
obsolete commits. Given the current state of dealing with conflicting
obsolescence markers, this seems like a good idea.
Test Plan: ##run-tests.py##
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham
Differential Revision: https://phabricator.fb.com/D1740886
Signature: t1:1740886:1418686275:d505ff1de8fbce39eb4fbe3a2e6d368b4b14edb8
Summary:
Transferring the part data into a bundle file on disk for bundlerepo to read
is a self-contained operation
Test Plan: ##run_tests.py##
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham
Differential Revision: https://phabricator.fb.com/D1726767
Signature: t1:1726767:1418241560:8afac123afc847e61e6f46b6216d15b003024504
Summary: Update indentation to be more in-line with how hg does things
Test Plan: ##run-tests.py##
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: akushner, sid0, davidsp, mpm, daviser, rmcelroy, mitrandir, calvinb
Differential Revision: https://phabricator.fb.com/D1726641
Signature: t1:1726641:1418086497:91cde84647f094e077966aea53668fead9c47a7a
Summary:
The rebase extension bypasses the changegroup processing hooks, so they need to
be called explicitly.
Test Plan: Added hooks to the existing test
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner
Differential Revision: https://phabricator.fb.com/D1726408
Signature: t1:1726408:1418241039:4e51a6dcbf3134f12d55c8e902de9ca7086883d1
Summary:
Instead of always sending back a v1 changegroup, do the proper version
negotiation so we use the latest version supported by both client and server
Test Plan: ##run-tests.py##
Reviewers: durham, pyd
Reviewed By: pyd
Subscribers: akushner, sid0, davidsp, mpm, daviser, rmcelroy
Differential Revision: https://phabricator.fb.com/D1722669
Signature: t1:1722669:1417819262:6ab35f612fbb0dc5884caefc12e550d1d3eb0adf
Summary:
This information will be useful to any pushback extension; this is a first step
towards making it a separate extension
Test Plan: ##run-tests.py##
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: akushner, sid0, davidsp, mpm, daviser, rmcelroy
Differential Revision: https://phabricator.fb.com/D1722350
Signature: t1:1722350:1417813202:a021aa449765bf49c0c2e1fe86cb90534c50fdad
Summary:
In practice, this doesn't seem to be necessary -- testing with ##hg push##
appears to be sufficient.
Test Plan: run-tests
Reviewers: pyd, durham, sid0
Reviewed By: sid0
Subscribers: rmcelroy, daviser, mpm, davidsp, sid0, akushner
Differential Revision: https://phabricator.fb.com/D1700839
Signature: t1:1700839:1416859911:321862b34c7067a11475a2e77112e77b20147dc6
Summary:
The function already raises ValueError if it can't generate a suitable part
for the remote; catch it and continue otherwise
Test Plan: Run test
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: akushner, sid0, davidsp, mpm, daviser, rmcelroy
Differential Revision: https://phabricator.fb.com/D1700817
Signature: t1:1700817:1416868855:cad7838c2c9be0d0657adda28d0d1796c119a4ef
Summary: Removes the mechanism I monkey-patched in
Test Plan: Ran test
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: akushner, sid0, davidsp, mpm, daviser, rmcelroy
Differential Revision: https://phabricator.fb.com/D1697566
Signature: t1:1697566:1416603991:38d1cb3756b428e5ffe8b8af2b97ce62afde2a57
Summary: Use the bundle2 reply stream to send changes back to the client
Test Plan: Ran test
Reviewers: pyd, durham
Reviewed By: durham
Subscribers: rmcelroy, daviser, mpm, davidsp, sid0, akushner
Differential Revision: https://phabricator.fb.com/D1689551
Signature: t1:1689551:1416948875:987c7440298aa57d5cf46d420feab151ce9340b1
Summary:
Adds a new bundle2 parttype to accept a linear changegroup and rebase it onto
the designated position on the server.
Future work:
* Issue the new parttype from ##hg push## (under what circumstances?)
* Return new revisions to client in the bundle2 response
* Write automated tests
* Support v2 changegroup packing?
* Test compatibility with the extensions we commonly use
Test Plan:
Diff includes an hg command that issues the new parttype; have used it to test
manually on a repository with 2 files.
Reviewers: akushner, sid0, davidsp, mpm, daviser, rmcelroy, pyd, durham
Reviewed By: durham
Differential Revision: https://phabricator.fb.com/D1670811
Signature: t1:1670811:1416335316:05c5ae8a35ba28cab87c474bab28afe91e8702d2