Sep 23 2021
Sep 22 2021
Sep 16 2021
Sep 14 2021
Sep 5 2021
Sep 4 2021
Sep 3 2021
Jul 26 2021
I caught one cosmetic issue in D21711, but this works properly for me locally now. Thanks!
Jul 21 2021
(After picking up D21697, the approach works properly in my environment where I originally ran into this, but there are a couple of rebase calls still present in ArcanistMercurialLandEngine that don't use the new API yet.)
Jul 20 2021
Jul 19 2021
I'm also surprised that rebase extension isn't enabled by default. I guess I have been turning it on in my default setup.
I like that idea. I'll take a look.
...perhaps we should consider a way to do this automatically or at least less-manually.
Mar 17 2021
Jun 11 2020
Jun 10 2020
The current ls-remote script as written does not actually work; I think it only returns branches in the remote that:
The actual extension is a 100-line Python script...
The real Pandora's box this opens...
The real Pandora's box this opens is that now that arc is exposed to whatever issues arise with the raw Python/Mercurial API, there's a much weaker argument against not writing more extensions.
I put the extension in phabricator/ earlier by accident, but that was just me goofing my local paths. The extension is purely client side: hg can do ls-remote just fine (it's just "do hg pull, but stop half way through"), there's just no UI command for it.
Would the use of an extension make additional setup necessary for observed repositories vs. hosted repositories, or are observed repositories out of scope for these set of changes?
Jun 9 2020
I am considering reviving the command server since I don't remember it having any critical failures, but offhand:
I'm going to try writing a Mercurial extension instead.
I believe this is roughly the form we end up with, which is completely ridiculous and extremely difficult to test or have any confidence in:
As a tool developer, this kind of thing is infuriating:
This is also made more complicated because Mercurial branches and bookmarks are all in a single shared namespace to some degree. I'm not sure what happens if you try to fetch a bookmark that conflicts with a local branch name (presumably: it renames it as "divergent"?) or try to fetch a branch which conflicts with a local bookmark name (presumably: fails in a way that's hard to detect?).
When the user specifies arc land --onto marker, I'd like to identify whether marker is a bookmark or branch.
Jun 5 2020
Just extracting a few blocks of old code for reference:
I may actually make the minimum version whichever version has this fix:
Today, arc land in Mercurial does not support the "merge" land strategy.
I am dropping support for versions of Mercurial older than 2.1.1 (released in May, 2012). This is the first version that: (a) has phases and (b) does not exit 1 when hg pull succeeds but fetches no changes.
After changes connected to T13546, the git workflow now looks like this:
Jun 4 2020
Feb 18 2019
I'd propose for simplicity that the focus switch from largefiles to lfs support for Mercurial repositories. lfs has been added to Phabricator for Git already T7789 and it seems that there'd be less work involved to piggyback on that.
Oct 25 2018
May 16 2018
Mercurial 4.6 has added hg help internals.bundle2 which will render a book to your console with details about the format/protocol. I did a high-speed skim and then tried out hg help internals.changegroup on a whim which produced an even longer book about the stream protocol (SSH only maybe?).
Apr 11 2018
Actually turns out that the work around isn't reliable - I still get that error occasionally (I'm using SSH)