On Tue, Sep 19, 2017 at 10:21 AM, Eric Rescorla <e...@rtfm.com> wrote:
> > On Tue, Sep 19, 2017 at 9:20 AM, Andrew McCreight <amccrei...@mozilla.com> > wrote: > >> On Tue, Sep 19, 2017 at 8:49 AM, Eric Rescorla <e...@rtfm.com> wrote: >> >> > Generally no, but this is an unfortunate consequence of Mozilla's >> decision >> > a while ago to pick a VCS which has not turned out to be the dominant >> > choice (not placing blame here, but I think it's clear that's how it's >> > turned out). The result is that a lot of people want to use git and that >> > means git needs to have a first class experience. >> > >> >> I've been using git for years now to develop Firefox, and I feel like it >> is >> a first class experience. There's a one time cost to setting up cinnabar, >> but after that, everything just works, including |mach try| and |mach >> mozreview|. It is still probably less setup than Mercurial users have to >> go >> through to install enough extensions to make hg usable. ;) Sure, there's a >> bit of "wacky custom machinery", but developers using hg also have to deal >> with some of that, so that's more of a Firefox developer problem than a >> git >> Firefox developer problem. >> > > Maybe you have different workflows than I do. > > Specifically, I want to be able to do all of: > > 1. Push to try > 2. Land CLs directly > 3. Push to review (I mostly use phabricator so, that works fine) > 4. Push branches to Github > > It's the combination of 1/2 and 4 that works badly because hg/cinnabar and > github are > basically just separate histories, at least with nss-dev but IIRC with > gecko-dev. > Bobby and I chatted offline and it seems that if you use mozilla/gecko rather than mozilla/gecko-dev that this works properly. If so, then it seems like having well-supported github-based cinnabar clones of all our repos would go a long way towards addressing my issues. -Ekr > > I've also had cinnabar fail badly at various times, and then it's been > pretty unclear what > the service level guarantees for that were. > > -Ekr > > >> >> Andrew >> >> >> >> > -Ekr >> > >> > >> > > Originals to end. >> > > >> > > >> > > On Mon, Sep 18, 2017 at 5:16 AM, Eric Rescorla <e...@rtfm.com> wrote: >> > > >> > >> On Mon, Sep 18, 2017 at 2:56 AM, James Graham < >> ja...@hoppipolla.co.uk> >> > >> wrote: >> > >> >> > >> > On 18/09/17 04:05, Eric Rescorla wrote: >> > >> > >> > >> > But that's just a general observation; if you look at this specific >> > >> case, >> > >> >>> it might not be much effort to support native git for >> richer/future >> > >> try >> > >> >>> pushing. But that's very different from requiring all the tools >> to >> > >> >>> support >> > >> >>> native git on an equal basis. And it seems reasonable to evaluate >> > the >> > >> >>> utility of this specific support via a poll, even one known to be >> > >> biased. >> > >> >>> >> > >> >>> >> > >> >> I don't think that's true, for the reasons I indicated above. >> Rather, >> > >> >> there's a policy decision about whether we are going to have Git >> as a >> > >> >> first-class thing or whether we are going to continue force >> everyone >> > >> who >> > >> >> uses Git to fight with inadequate workflows. We know there are >> plenty >> > >> of >> > >> >> people who use Git. >> > >> >> >> > >> > >> > >> > I don't entirely understand what concrete thing is being proposed >> > here. >> > >> As >> > >> > far as I can tell the git-hg parameter space contains the following >> > >> points: >> > >> > >> > >> > 1. Use hg on the server and require all end users to use it >> > >> > 2. Use git on the server and require all end users to use it >> > >> > 3. Use hg on the server side and use client-side tooling to allow >> git >> > >> > users to interact with the repository >> > >> > 4. Use git on the server side and use client-side tooling to >> allow hg >> > >> > users to interact with the repository >> > >> > 5. Provide some server side magic to present both git and hg to >> > clients >> > >> > (with git, hg, or something else, as the on-disk format) >> > >> > >> > >> > These all seem to have issues relative to the goal of "vanilla git >> > with >> > >> no >> > >> > custom code": >> > >> > >> > >> > 1. Doesn't allow git to be used at all. >> > >> > 2. Requires a multi-year transition away from hg. Probably not >> > popular >> > >> > with hg fans. >> > >> > 3. The status quo. Requires using a library for converting >> between hg >> > >> and >> > >> > git (i.e. cinnabar) or some mozilla-specific custom scripts (the >> old >> > >> > moz-git-tools) >> > >> > 4. Like 3. but with an additional multi-year transition and >> different >> > >> > custom tooling. >> > >> > 5. Allows vanilla git and hg on the client side, but requires >> > something >> > >> > complex, custom, and scary on the server side to allow pushing to >> > either >> > >> > repo. Could be possible if we eliminate ~all manual pushes (i.e. >> > >> everything >> > >> > goes via autoland), but cinnabar or similar is still there in the >> > >> > background. >> > >> > >> > >> >> > >> This is what I meant. And having something complex and scary on the >> > server >> > >> side is (at least to me) obviously better than having something >> complex >> > >> and >> > >> scary (and did I mention constantly out of date) on the client side, >> > >> because it's all in one place and externally just looks like the >> thing >> > the >> > >> client is expecting. Note that we already have half of this because >> we >> > >> have >> > >> one-way synching to gecko-dev on the server side. Perhaps one could >> also >> > >> rip off some of the servo-gecko synching stuff here, but I don't know >> > much >> > >> about how that's architected. >> > >> >> > >> >> > >> Given none of those options seem to fit, the only other possibility I >> > can >> > >> > think of is to skip the general problem of how to interact with the >> > VCS >> > >> for >> > >> > try specifically by making submitting to try not look like a VCS >> push, >> > >> but >> > >> > like some other way of sending a blob of code to a remote machine >> > (e.g. >> > >> > using some process that generates a patch file). But unless there's >> > some >> > >> > extant way to achieve that it seems like it would be replacing >> > >> > known-working code (cinnabar) with new custom code. >> > >> > >> > >> >> > >> > So my best guess is that you mean that all pushes should go via >> > autoland >> > >> > and we should provide read-only hg/git repositories, and try pushes >> > >> should >> > >> > also go via something other than a vcs push. But I'm probably >> missing >> > >> > something. >> > >> >> > >> >> > >> Well, I do think this is the direction we should be moving towards, >> as >> > it >> > >> seems to have a pile of advantages. Indeed, if we're *already* going >> to >> > be >> > >> forcing people to submit to try via mach rather than via vcs push, >> why >> > >> wouldn't we do that for this piece of it now? >> > >> >> > >> -Ekr >> > >> >> > >> >> > >> > >> > >> > _______________________________________________ >> > >> > dev-platform mailing list >> > >> > dev-platform@lists.mozilla.org >> > >> > https://lists.mozilla.org/listinfo/dev-platform >> > >> > >> > >> _______________________________________________ >> > >> dev-platform mailing list >> > >> dev-platform@lists.mozilla.org >> > >> https://lists.mozilla.org/listinfo/dev-platform >> > >> >> > > >> > > >> > _______________________________________________ >> > dev-platform mailing list >> > dev-platform@lists.mozilla.org >> > https://lists.mozilla.org/listinfo/dev-platform >> > >> _______________________________________________ >> dev-platform mailing list >> dev-platform@lists.mozilla.org >> https://lists.mozilla.org/listinfo/dev-platform >> > > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform