[PATCH 4 of 4 V2] obsolete: allow cycles

Sean Farley sean at farley.io
Wed Mar 22 16:18:29 EDT 2017


Jun Wu <quark at fb.com> writes:

> Excerpts from Sean Farley's message of 2017-03-22 11:58:34 -0700:
>> Let's take a step back for a minute. Technical discussions aside (and
>> they are, indeed, very technical), is this a feature that we should be
>> concentrating on *right now*?
>
> Yes. Right now. For example, At Facebook we use "inhibit" to implement
> "umamend" and has tons of code to support all kinds of corner cases. And it
> still is not prefect.

Heh, yes, that made me chuckle. I understand that *you* need this.

> This tens of lines will allow us to get rid of those hacky code (and
> "inhibit" all together).
>
>> I worry that evolve is already too complicated and we haven't done the
>> first tasks of bringing bits of it into core. I've overheard from some
>> Bitbucket co-workers (that prefer to not chime in)[1] that it's getting
>> a bit out of hand with everyone implementing every single niche feature
>> they want and no one seems to be around to herd these cats.
>
> The fact that the evolve version of "unamend" or "unstrip (touch)" changing
> commit hashes is "complicated" to explian to end-users. So although
> the code is slightly more complicated, the end-user experience is much
> better. I think it's worthy.
>
> Besides, if you take "inhibit" into consideration,

But that's the thing. I'm not taking "inhibit" into consideration
because inhibit isn't a common workflow. It's completely a facebook
thing.

> this approach not only
> simplifies things *greatly*, it also handles the case much cleanly and with
> much more confidence. If we count the removal lines in inhibit and all kinds
> of code supporting it, I'm sure there will be much more deleted lines than
> added. That is a decent clean-up. How could you define it as
> "over-engineering" ?

I think that's a discussion for another time.

> If you had good points indicating that "inhibit" is a reasonable permanent
> solution and provides a good user experience, then I'd be happy to drop the
> series. If you do so, be prepared with questions about all kinds of corner
> cases.
>
> By the way, I'm not sure if you have noticed that "inhibit" was recently
> moved to a directory called "hack/" in mutable-history.

Yes, things in evolve are still baking. I don't see the need to rush obs
cycles into core based on that, though.


More information about the Mercurial-devel mailing list