Commit Graph

52 Commits

Author SHA1 Message Date
Durham Goode
e5a235b61a pushrebase: improve error message for file conflicts
Summary:
The previous implementation relied on the python serialization of lists. This
resulted in some truncation due to line length in some infrastructure.

This patch makes it prettier.

Test Plan: Tests

Reviewers: #sourcecontrol, mitrandir

Reviewed By: mitrandir

Subscribers: mitrandir

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

Signature: t1:2594066:1446079418:cd27cea1f44a9d432984b8dc37b547450ff076ab
2015-10-28 18:19:20 -07:00
Durham Goode
a49358f7cc pushrebase: improve messages when pushing
Summary:
Previously the output just said "searching for changes" then "updating
bookmark", which was kind of terse. It also showed the "adding XX changesets"
output without any context, which is kind of scary to see "adding 100
changesets" when I'm only pushing one commit.

Now we mention how many commits we're pushing, what the hash range is, and how
many commits are being downloaded.

Test Plan: Ran ze tests

Reviewers: #sourcecontrol, mitrandir

Reviewed By: mitrandir

Subscribers: mitrandir

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

Signature: t1:2594007:1446081446:99b77f4982acafc1f1940ba07b094a27dd05e354
2015-10-28 18:19:18 -07:00
Durham Goode
af5ae71468 pushrebase: add config for blocking non-pushrebase pushes
Summary:
This adds an option for blocking non-pushrebase pushes. This is important
because it allows us to force every push through the pushrebase logic and
therefore allows us to put all the hooks in the prepushrebase hook (so people
can't avoid those hooks).

This is important for performance, since running the hooks in prepushrebase
allows us to run them while outside the lock.

Test Plan: Added a test

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy

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

Signature: t1:2593512:1446076882:9f5ee5d8bccd884f34c8284fbacb7d6f8e96f62f
2015-10-28 18:19:15 -07:00
Durham Goode
d15ddf0bfa pushrebase: make push -f go through pushrebase
Summary:
Since pushrebase allows running hooks outside of the lock, we want to force all
pushes to go through pushrebase. Step #1 of that is making push --force go
through the pushrebase flow.

The initial version is pretty naive. A future version might avoid the whole
graft process for performance sake.

Test Plan:
Added a test that creates a new bookmark. I also tested the same test
doing a force push.

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy

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

Signature: t1:2588894:1446076583:12b58048742b112a5d7cab839204c6219414f9ee
2015-10-28 18:19:12 -07:00
Durham Goode
0a0b341080 pushrebase: add option for rewriting dates
Summary:
It's a nice property to have commits have increasing timestamps. Since we're
already rewriting commits during pushrebase, we can rewrite the timestamp to the
push time.

Test Plan: Added a test

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2554422
2015-10-17 18:59:46 -07:00
Durham Goode
49e649fba6 pushrebase: add pre-lock hook
Summary:
This adds a hook before we take the lock that allows us to run some expensive
hooks without blocking the entire repo. This is useful for hooks that check the
contents of the bundle for certain info (like conflict markers), that won't be
affected by rebases.

Test Plan:
Added a test. Verified it passed when hg had lazy locks enabled for
unbundle, and failed with mercurial did not have lazy locks for unbundle.

Reviewers: pyd, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2511561
2015-10-05 18:56:46 -07:00
Durham Goode
1bd2986d26 pushrebase: fix order manipulation
Summary:
The way pushrebase was changing the extension load order doesn't work if another
extension replaced the extension._order list. This patch fixes it.

Test Plan: Ran the tests

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2493153
2015-09-29 21:32:02 -07:00
Ryan McElroy
5be993a5b8 pushrebase: fix up bad pushkey change
Summary:
Also added an additional test to show a case that fails now (and should fail),
but would have succeeded with the previous code.

Test Plan: Additional unit test

Reviewers: #sourcecontrol, durham

Reviewed By: durham

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

Signature: t1:2502396:1443809922:18ec6697b7c135c37c10f7bdd9544901c4a54c99
2015-10-02 00:46:37 -07:00
Ryan McElroy
ccb4595e9e pushrebase: redo check for bookmark moving forward
Summary:
The old check moved the bookmark old node after the prepushkey hooks
had ran, bypassing the non-ff prevention logic. This moves the old node rewrite
to before the prepushkey hook and also checks that old node is moved in a
ff-only way.

Test Plan: updated unit test

Reviewers: #sourcecontrol, mitrandir

Reviewed By: mitrandir

Subscribers: durham

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

Signature: t1:2499633:1443733890:4c84150bd0f21adb97feb23e54727bb4e8be38cf
2015-10-01 11:57:06 -07:00
Ryan McElroy
ba64067032 pushrebase: redo check heads elision to be on the client side
Summary:
By removing the part on the pushrebase client instead of ignoring it on the
pushrebase server, the server can still run this check for non-pushrebase
pushes so it will be safer against divergent heads.

Test Plan: Updated unit tests

Reviewers: #sourcecontrol, pyd, durham

Reviewed By: pyd, durham

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

Signature: t1:2499115:1443736440:001ceb79a4692abbd4c6b208124f6576f10f680c
2015-10-01 11:15:37 -07:00
Ryan McElroy
170afe7179 pushrebase: do not fail when old bookmark location does not match
Summary:
In pushrebase, we expect bookmarks to be moving after discovery but
before we grab the lock. With this patch, we rewrite the incoming bookmark
changes so that they do not fail if the bookmark moves after discovery.

Test Plan:
Wrote a new test to cover this behavior and verified that the test failed before
this change but works afterwards.

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham

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

Signature: t1:2488675:1443503039:660f88da9727a74f7c9a21f0767efb5d7379d16d
2015-09-28 18:42:18 -07:00
Ryan McElroy
28e4ce1306 pushrebase: turn off check:heads bundlepart during push
Summary:
This check was causing pushes to fail when heads change during a push, but that
is expected in pushrebase pushes.

Test Plan: ran existing tests

Reviewers: ericsumner, #sourcecontrol, durham

Reviewed By: #sourcecontrol, durham

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

Signature: t1:2482254:1443468591:23dc9ad24e1c7d3b3ec04be678d346dfed6d98a7
2015-09-27 15:45:31 -07:00
Durham Goode
fd4e029920 pushrebase: preload manifests before the lock is taken
Summary:
This adds a hint to the bundle2 stream that indicates which manifests should be
read before starting the unbundle. This allows us to spend all the parse time
outside of the lock, thus increasing our commit throughput.

Test Plan:
Manually added it to a server and verified the total lock held time
went down. Also ran the tests.

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy

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

Signature: t1:2485920:1443483219:8626105814b511a34a410265310986f936d7c450
2015-09-28 11:31:24 -07:00
Durham Goode
6859d09094 pushrebase: copy manifest cache to bundlerepo
Summary:
As part of increasing our commit throughput, we want to allow precaching the
manifests before the lock is taken. This requires that we are able to use those
cache results from inside the bundle repo. So let's copy the cache data
structures into the bundle repo manifest cache.

Test Plan:
Ran it on a mercurial server along with some timers and verified we
got more cache hits.

Reviewers: pyd, #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

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

Signature: t1:2485911:1443482960:c585f72383c72cd815448814a54d701fca71b1b7
2015-09-28 11:30:31 -07:00
Eric Sumner
ae66dcdfae Make pushrebase set HG_NODE when it makes a commit
Test Plan: ran tests

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2471540
2015-09-23 10:25:24 -07:00
Durham Goode
a7692bbfc6 pushrebase: disable check_heads check
Summary:
exchange.check_heads is used to verify that the server's heads haven't changed
between when the client does discovery and when it obtains the lock. With
pushrebase we want to allow concurrent pushes, so this is a scenario we want to
support.

So let's disable that check.

Test Plan: Ran the tests and verify that the wrapfunction call was hit.

Reviewers: ericsumner, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2419949
2015-09-07 18:26:53 -07:00
Durham Goode
07da1f3e15 pushrebase: fix rebasing merge commits
Summary:
It turns out commit.files() does not return all the affected files during a
merge commit. It only returns files which differ from both p1 and p2, so in a
merge commit where we accept the changes from p2, the changes were lost during
the rebase.

This fixes it by performing a manifest diff if we're grafting a merge commit.

Test Plan:
Updated the tests to check the file contents (this test would fail
before)

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2331586
2015-08-10 22:15:03 -07:00
Durham Goode
48f7f4f934 pushrebase: don't do rebase if -f is specified
Summary:
pushrebase doesn't support pushing non-fastward heads when remotenames is on
(since --to implies both remotenames and do a rebase). Long term we want --new
and --replace to indicate bookmark movements, but for now we can use the
existing -f to imply that we don't want a rebase to happen.

Test Plan: Added a test

Reviewers: #sourcecontrol, lcharignon

Reviewed By: #sourcecontrol, lcharignon

Subscribers: lcharignon

Differential Revision: https://phabricator.fb.com/D2307585
2015-08-03 15:33:00 -07:00
Gregory Szorc
5c852f4e44 pushrebase: add testedwith for 3.4
It is a best practice for Mercurial extensions to contain a "testedwith"
attribute to define which Mercurial versions they are compatible with.
The tests pass with Mercurial 3.4.1 (but not 3.3.3 - there are
references to missing symbols), so mark 3.4 as the only compatible
version.
2015-06-12 16:36:51 -07:00
Laurent Charignon
7e55f2106e pushrebase: remove tail check
Summary:
The tail check was flagging by mistake scenarios where the push was
possible. This patch adds one of these scenario.

Test Plan: Add new test and all former tests are passing

Reviewers: ericsumner, durham

Differential Revision: https://phabricator.fb.com/D2292866
2015-07-29 13:32:51 -07:00
Laurent Charignon
4a7d8e9f70 pushrebase: fix fastfoward case
Summary:
Before this patch, pushrebase was not supporting some cases of fast
forward push. This patch fixes the issue.

Test Plan:
Added a new test. Check that the test failed before and is fixed
with the code change.

Reviewers: durham

Differential Revision: https://phabricator.fb.com/D2279800
2015-07-24 15:23:16 -07:00
Laurent Charignon
d2bc198c5e pushrebase: record copies, exec and link properly
Summary:
Before this patch we were not recording all the information for file
copy, executable bit and link. This patch fixes the issue.

Test Plan: Add a new test with a copy

Reviewers: durham

Differential Revision: https://phabricator.fb.com/D2277575
2015-07-24 09:38:01 -07:00
Laurent Charignon
8f43bce88c pushrebase: fix bug for changesets that remove file
Summary:
I saw this error when using pushrebase with fbsource on a commit
that deleted a file. We were trying to access it even if it was not in the
manifest.

Test Plan:
Modified the test
Before the code fix the new test fails with:
    remote: abort: b@46a2df24e272: not found in manifest!

Reviewers: durham, ericsumner, pyd

Differential Revision: https://phabricator.fb.com/D2274792
2015-07-23 14:11:58 -07:00
Durham Goode
fec612dcb4 pushrebase: support creating new bookmarks
Summary:
Previously pushrebase could not create new bookmarks, because the rebase target
did not exist. This fixes that.

Also fixes some output text to match the core Mercurial behavior, so tools can
rely on the text in certain cases.

Test Plan: Added a test

Reviewers: lcharignon, pyd, rmcelroy, ericsumner

Reviewed By: ericsumner

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

Signature: t1:2240418:1436895571:2f56298969e09490f6f5e6a44857eedc2bfcace4
2015-07-13 22:01:02 -07:00
Durham Goode
2d195fccb5 pushvars: fix integration with remotenames
Summary:
Remotenames wraps the push command and sometimes doesn't call the original
implementation.  Since pushvars relies on being called as part of push, we need
to make sure pushvars wraps push after remotenames.

It turns out pushrebase's solution to this was broken as well, so fix it up too.

Test Plan:
Pushed to fbjava_test with and without the change. Verified I could
circumvent the reviewers hook only after the change.

Reviewers: akushner, rmcelroy, pyd

Differential Revision: https://phabricator.fb.com/D2220774
2015-07-06 17:01:25 -07:00
Durham Goode
66ee36a750 pushrebase: integrate with remotenames
Summary:
This makes the pushrebase extension work with the remotenames extension. It does
a few things:

1) rename --onto to be --to for consistency
2) configures remotenames to allow non-fastforward pushes
3) changes the push wrapper to happen after remotenames is loaded

Test Plan: Added a test

Reviewers: pyd, rmcelroy, lcharignon, ericsumner

Reviewed By: ericsumner

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

Signature: t1:2200222:1435695629:a92d8b20d158aa40bad1f3963af0348b6680d52d
2015-06-26 11:05:46 -07:00
Durham Goode
be9b0f0deb pushrebase: add support for rebasing merge commits
Summary:
This adds the ability to rebase changegroups that contain merge commits. It
works by identifying the maximum bundle root that is an ancestor of the desired
`onto` and rebases only things that are on top of that root.

Test Plan: Added a test

Reviewers: lcharignon, pyd, ericsumner

Reviewed By: ericsumner

Subscribers: rmcelroy

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

Signature: t1:2194350:1435695516:3a1f62bda7de0da9536a538da0bbb6deceb192f6
2015-06-25 18:49:48 -07:00
Durham Goode
3f90727e16 pushrebase: fix pushrebase to match upstream
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
2015-04-17 13:49:35 -07:00
Siddharth Agarwal
9a3748f730 [pushrebase] fix for Mercurial 3.4
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
2015-04-03 11:38:55 -07:00
Eric Sumner
4092b99234 pushrebase: cleanup phase handling
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
2015-01-05 15:50:59 -08:00
Eric Sumner
f5303c01ab pushrebase: push phase boundary on publishing servers
Test Plan: ##run-tests.py##

Reviewers: pyd, sid0, durham

Reviewed By: durham

Subscribers: akushner, davidsp, mpm, daviser, rmcelroy, calvinb

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

Signature: t1:1749892:1419020663:fe78e5c3aba585e5c9c0b93e21148cdacbe3ba71
2014-12-18 16:22:19 -08:00
Eric Sumner
0f39c60f82 pushrebase: (easy) fix traditional push
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
2014-12-16 14:27:21 -08:00
Eric Sumner
4ba902f661 pushrebase: add node argument to changegroup hook
Summary: This is expected by the remotefilelog hook, and possibly others

Test Plan: ##run-tests.py##

Reviewers: durham, pyd, sid0

Reviewed By: sid0

Subscribers: calvinb, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham

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

Signature: t1:1743261:1418762431:4fbbc1ed800023ddc51dbf53703e58294fbc2a4c
2014-12-16 12:38:48 -08:00
Eric Sumner
773c19ec6b pushrebase: (easy) fix typo
Test Plan: left-blank

Reviewers: durham, pyd, sid0

Reviewed By: sid0

Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham

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

Signature: t1:1743240:1418762156:d08545a3dfd4dff3fa1f5565aa4386ee219883f1
2014-12-16 12:32:24 -08:00
Eric Sumner
a540ffa647 pushrebase: enable pushback always
Test Plan: ##run-tests.py##

Reviewers: durham, pyd, sid0

Reviewed By: sid0

Subscribers: calvinb, mitrandir, rmcelroy, daviser, mpm, davidsp, sid0, akushner, pyd, durham

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

Signature: t1:1743234:1418762853:e406ef2b4a22601596e0629e4561b2a7ca9a0df3
2014-12-16 11:44:45 -08:00
Eric Sumner
17840a1afd pushrebase: disallow pushing obsolete commits
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
2014-12-15 15:06:57 -08:00
Eric Sumner
3d18258260 pushrebase: extract pushback into its own function
Summary: Also, remove some spurious TODOs

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/D1732036

Signature: t1:1732036:1418250584:6922035a05df012445b0092f8646eb982602f07d
2014-12-10 14:22:34 -08:00
Eric Sumner
c7ba62014c pushrebase: extract obsolete marker generation into a function
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/D1726944

Signature: t1:1726944:1418242222:a91974f41b5883eb659dd69135176adf066b8b47
2014-12-08 17:49:48 -08:00
Eric Sumner
3575568e6e pushrebase: extract revlist creation and validation into its own function
Summary: None of these temporary variables should be needed later

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/D1726850

Signature: t1:1726850:1418242127:64da1168b9f11897f6018082292e7f6285141bfd
2014-12-08 17:30:26 -08:00
Eric Sumner
4bc463862e extract temporary bundle file creation into its own function
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
2014-12-08 17:10:24 -08:00
Eric Sumner
40f3704fa2 pushrebase: extract commit grafting into its own function
Summary: Breaking up the part handler into smaller pieces

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/D1726701

Signature: t1:1726701:1418241313:52edc229bc635d7e703bcc2b5ee5673ece6373fa
2014-12-08 16:54:14 -08:00
Eric Sumner
cc6da40495 pushrebase: improve formatting
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
2014-12-08 16:39:20 -08:00
Eric Sumner
af1b675338 pushrebase: call changegroup/incoming hooks
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
2014-12-08 15:43:58 -08:00
Eric Sumner
e9983fe1d5 pushrebase: fix changegroup handshake
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
2014-12-05 13:10:34 -08:00
Eric Sumner
09fb2c7f88 pushrebase: mark rebase parttype as mandatory
Test Plan: Ran test

Reviewers: pyd, durham

Reviewed By: durham

Subscribers: rmcelroy, daviser, mpm, davidsp, sid0, akushner

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

Signature: t1:1722517:1417815518:afed70bc12dcf2130091e15821d76105e8591a2c
2014-12-05 12:19:12 -08:00
Eric Sumner
f558603bc4 pushrebase: transmit common heads information in separate parttype
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
2014-12-05 11:40:14 -08:00
Eric Sumner
bfd9ea6e54 Remove head/tail safety parameters; commit dummyssh into the test directory
Test Plan: ran test

Reviewers: pyd, durham

Reviewed By: durham

Subscribers: rmcelroy, daviser, mpm, davidsp, sid0, akushner

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

Signature: t1:1722193:1417813982:18951855d64d13d868ca80be92b7a3ecb631337b
2014-12-05 11:02:01 -08:00
Eric Sumner
081e7652ae [pushrebase] Remove debug command
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
2014-11-24 11:40:57 -08:00
Eric Sumner
afe0305ccb [pushrebase] Handle client not accepting obsoletion part
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
2014-11-24 11:18:33 -08:00
Eric Sumner
44c7735be5 [pushrebase] Use existing mechanism to pass info between parts
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
2014-11-21 10:55:46 -08:00