- Cryptographically Random Orbit Sander
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Jul 19 2021
Jul 16 2021
Sounds good. I spent 15 seconds on trying to write hg arc-amend, and this does something and does appear to produce an amended commit that looks ballpark-correct (and can amend non-heads), but emits some warnings and I have no clue if it functions across Mercurial versions:
My only guess is you've delved into the Mercurial source base (I've poked around a little)
I don't think LocalState should z̵̰̲͚͖̊͗́̓̓a̷̛̱̯̠͐̿̅̅͛̓͗ĺ̵̨̻̠͓̼̗̥̥̻̲̳̎͜ͅg̴̛͙͗̀̄̈́̃̂̓̄͝o̶̥̘̻͙̬͇͚̥̪͌̔̃͛̆̀̂̚ͅ your terminal!
This is probably not a great path to walk down, but there are secret flags that disable the "cannot amend changeset with children" check:
Another possible approach might be to copy the amend extension to create hg arc-amend which just lets you amend anything, assuming the "head only" rule is a safety guard rail rather than a fundamental issue with Mercurial (which it seems like it should be).
Ohhhhh, sorry, I didn't connect the dots and understand that you're only sometimes running the amend (since you can't amend for non-heads).
Jul 15 2021
This ("Queued at") looks suspicious:
I'm not catching on to what you're referring to. Are you saying there are other changes which will have already stashed unsaved state away before calling amendCommit()?
After arc diff creates a revision in Phabricator it amends the commit to include a link to the revision in the commit message.
Jul 13 2021
In D21685, I've imposed stricter rules for which state transitions are allowed: for example, you can't issue a "pause" command to a build that is already pausing.
I take it these disparate trees have some limitations? Do they always apply to the working directory or something?
Jul 12 2021
I'm still piecing together Git's handling of branches in my mind as I have used Mercurial for so long.
Would the expectation then be that running arc land again would remove the rebased/squashed commits created by --hold, so the result would be as if they hadn't run --hold previously?
Jul 11 2021
There are a bunch of libraries to help with this that I obviously won't be using because I didn't write them...
If I want to go spelunking later to see about improving/adding this behavior is this the right place to do this or is there another place this TODO should go?
If there was a way to run the rebase --abort and discard the result of that it would probably be best.
I think not all versions of Windows + PHP require adjusting php.ini, but some nontrivial subset do -- enough that arc itself emits some flavor of guidance on this:
This is no longer my fight.
Jul 10 2021
Jul 9 2021
For now, this has been working fine as a simple CLI flow.
When using --template I think I was not properly escaping quotes for how they are eventually invoked when launching the process
Ah, yes; DiffusionBlameQuery has a cache.
is there an easy way to log the command that will run from the CommandFuture?
%C ("raw, unescaped comment")
😎
Jul 8 2021
Ah okay, I'll do some other testing. I was also wondering if there would be cases in Phabricator where something is doing something like if (get_class($a) == 'PhabricatorEnv') {... which if so I'm guessing would cause failures.
"Cascading" is updating all local refs which depend on refs that were selected-and-modified by the land operation. So if you have dependent features in several dependent branches named change1 -> change2 -> change3 locally, and arc land change2, we want to (in the general case) rebase your local change3 onto the landed version of change2 so that it no longer has out-of-date ancestors.
This specific issue is probably the relevant one, the other thing linked from there looks like it's just a --debug problem, which this patch should fix.
Requiring very recent Mercurial may also run into issues described here:
reconcileLocalState() is another possible place to put the post-push update logic -- that runs exactly once, and a little later.
A possible approach would be to try to put the "failure" commands into ArcanistMercurialLocalState. I think that would look like snapshotting every bookmark (not just the active one), and then resetting all bookmarks when restoring state. I'm not really sure if this would be better -- your approach seems fairly reasonable to me, and has the advantage of doing all the bookmark management pretty narrowly in one place, and this should be the only place that this work needs to happen. Offhand, I think I favor the approach you've taken here.
One other case where "Phabricator" appears is in HTTP and Email headers, e.g. X-Phabricator-XYZ. For a separate project wanting to update these I think a slow migration approach is needed, to allow recipients currently expecting the existing fields. I'm guessing there isn't a reasonable change here for the upstream.
Ah, I didn't realize annotate --template arrived so recently. Phacility production has Mercurial 2.8.2 and I can't easily fix that at the moment, so I don't want to bring version bump all the way to 4.6 upstream today. I'm okay with the jump to 2.4 upstream, and also okay with leaving annotate --debug without filtering upstream (since no one has complained in all this time, and not addressing it doesn't make things worse). So I'd propose:
Jul 7 2021
I should probably just set up a blog or something since I don't expect to bring any microcontroller components upstream, but until then:
Jul 6 2021
(DiffusionLowLevelMercurialPathsQuery has an example of using PhutilBinaryAnalyzer to do a Mercurial capability test.)
On navigating the version stuff, I think the pathway would be:
Keep the protocol/domain on one line and the path on another (in this case path is <80 chars)?
Jun 30 2021
Proof-of-concept only for class_alias():
This is a bit out there, but: PHP once had something called classkit and later runkit, which perhaps exists as runkit7 now, that let you dynamically rename classes at runtime. In theory, you could use this as a compatibility layer to support mass renaming of classes: if code asks for PhabricatorXYZ, look for GenericXYZ (or XYZ, or consult a mapping), then make a runtime copy of the class. This narrow capability may be in PHP's core as class_alias(), now.
Create Platform::getProjectRepo() to return "phabricator", or instead detect the repository name.
Jun 28 2021
The results in T13649 -- where none of these results actually print a character that anyone would consider to be a "smart quote" (?) -- aren't exactly inspiring, but I think this is a step forward at least.
Jun 27 2021
I think the global flag is reasonable.
Oops -- I assumed you were already in Blessed Committers. I added you, you should be able to either arc land or "Land Revision" now (if arc diff uploaded to staging properly). See that project description for some details, or yell if you're still having issues.
Oh, just for completeness -- you can trigger the first message by visiting this URI while logged out (e.g., in an incognito window):
Jun 25 2021
- Allow "owners.search" API to read this setting.
Jun 24 2021
I added you to Blessed Committers, so you should be able to land this yourself. See that project description for guidance, or let me know if you run into issues.
(That was really me.)