On Fri, Oct 31, 2014 at 02:03:35PM -0400, Ehsan Akhgari wrote:
> On 2014-10-31 12:51 PM, Gregory Szorc wrote:
> >As has been said on this list before, switching canonical to Git just
> >isn't going to happen. Valid reasons have been given before. But here's
> >a new one: we don't need to.
> >
> >I think it's fair to say that the pain point for Firefox Git developers
> >*today* is that they need to run Mercurial locally. That introduces
> >overhead, new commands to learn and run, etc. As you mention, setting up
> >a server to receive Git data/pushes eliminates a lot of problems.
> >
> >I thought about deploying something like Fog Creek's Kiln (software that
> >speaks the wire protocol for both Mercurial and Git and does conversion
> >behind the scenes). However, the more I think about it, the more this
> >idea terrifies me.
> 
> FWIW I think that solution is needlessly complicated.
> 
> > The moment you do that you are catering to the lowest
> >common denominator (or at least it becomes easy to fall into that trap).
> >This likely penalizes Mercurial users because we can't extend Mercurial
> >as much and thus can't capture as many productivity wins.
> 
> I do think that we should continue to cater towards the lowest common
> denominator.  And what I mean by that is to not use hg features which will
> be impossible to support in git and vice versa.  But I'm not sure what
> things you were talking about here specifically.  Having discussions about
> the lowest common denominator in the abstract is hard!

agreed

> >All problems in computer science can be solved by another level of
> >indirection. The problem here is that Git users need to push to the
> >canonical Mercurial repositories (inbound, try, etc). You will be
> >hearing me say this a lot in the months ahead, but "Autoland changes
> >everything."
> 
> I don't understand how.  Doesn't Autoland still require you to push your
> changes somewhere?  If that somewhere is an hg repo we're back to square
> one.
> 
> >With Autoland in place, there is a level of indirection between the user
> >and landing: a landing queue. In my utopian end state for Autoland, no
> >user - whether they use Git or even Mercurial - are pushing directly to
> >the canonical repositories. Only the Autoland agent performs that role.
> 
> FWIW I think that's a bit too eutopian.  I have no hopes of eliminating all
> of the need for pushing stuff manually.  "Land this thing at some point in
> the near future" is a very common use case but it's far from being the only
> one.

 I agree, but I wouldn't be suprised to see a world in which only
 sherriffs need to push directly, or close enough we can maybe not care.

> >Suddenly the publishing workflow becomes unidirectional and this whole
> >syncing problem with Hg<->Git SHA-1 maps becomes abstracted away into
> >the implementation of Autoland. We can stand up Git servers to allow Git
> >native ingestion, without burdening Git users with the knowledge,
> >overhead, or cognitive dissonance of Mercurial.
> 
> Not sure if I follow.  Are you suggesting that git users push to their own
> vanilla git server, and then autoland comes around some time later, converts
> that into hg, and tries to transplant the result?  Why is that better than
> just having a git server that pushes to an hg server before accepting a
> push?  That seems to both address the use case of pushing to Autoland's hg
> repo, and also the use cases that do not involve Autoland.

to somedegree these are kind of the same right? the big difference
between both of these and a normal server is that you push a history,
but don't expect you'll pull the same thing because you expect what you
push will be rebased.

> >That end state would solve a lot of problems. But a few remain. Notably,
> >collaboration between Mercurial and Git users would still be problematic
> >(it likely always will be).
> 
> Yes, agreed.

agreed, but that seems like a problem for the git / hg communities to
solve for their users.

> >It also means the server-side infrastructure becomes more complex and
> >harder to maintain. To achieve the tight cohesion necessary to present a
> >fully optimized and seamless workflow, all these services likely need to
> >be running as part of the same logical system, sharing the same
> >underlying data store, without syncing being a major issue. Do I think
> >this is the right and inevitable solution? Yes, I do. Ideal, no. (Ideal
> >would be to support one system - and tell the users of the other to take
> >a hike. If I had my way, that one system would be Mercurial because it
> >is easier to extend and can lead to better productivity. But short of a
> >mandate that makes a lot of people upset and has extremely high costs to
> >implement, this ideal isn't going to happen.)
> 
> Since you keep mentioning this (and *without meaning to start a flame war*),
> let this be on the record that I think mercurial's extensibility etc don't
> really matter for a user of the VCS, unless they work in a very specialized
> environment (such as the big silicon valley tech companies that have used hg
> in the past few years).  Productivity is subjective, and not an objective
> property of either git or mercurial. The reason I and others go through this
> pain right now to avoid having to use hg more is increased productivity.
> So, I'd appreciate if you didn't make it sounds like mercurial is all about
> user productivity and git isn't.  :-)
> 
> >Unless a major decision is made, we're trending towards more complexity
> >on the server to support Git ingestion.
> 
> Are we though?  Cause for the past recent years, our approach towards git
> users has been very close to "take a hike".  Is there now a push towards
> treating them better?  (Genuinely asking, since I haven't heard anything
> about an organizational drive towards treating git users better recently.)
> 
> > Again, I think that is the
> >correct outcome. A problem is we don't have the resources to instantly
> >make that happen. As much as I want to have a flag day where Try is
> >fixed and Git users get native ingestion, it isn't going to happen at
> >the same time. We have a pressing need to fix Try. We need to fix Try
> >first, *then* make the Git users happier [through native ingestion].
> >And, doing Git hosting right involves merging (or at least strongly
> >coordinating) a lot of systems managed by different groups
> >(hg.mozilla.org, git.mozilla.org, vcs2vcs, autoland, mozreview, release
> >automation, etc). Fortunately, recent org changes have made that easier
> >(this should all fall under Laura Thomson), so it isn't the pipe dream
> >it once was.
> >
> >I *think* the Git users will eventually be able to eat cake. But it may
> >take a bit. It's not going to happen overnight. It certainly isn't going
> >to happen before the replacement Try infrastructure is deployed. What
> >I'm looking for is a path forward that placates the Git crowd until we
> >have the organizational will and resources to tackle Git ingestion. If
> >that means I or someone else must write Git tools to support the new
> >systems, so be it. I'll happily choose that outcome over bloating scope
> >to cover increased server complexity in the short term. I just need to
> >be sure the solution is tolerable by Git users.
> 
> I think everyone understand that as a git user, they're a second class
> citizen at best, so this won't be surprising.  But I'd like to talk about
> two specific points:
> 
> 1. Are the changes that you're planning to make to the try server inherently
> incompatible with git?  An example of such an incompatibility would be for
> example changing the wire format of the protocol to send in data that is
> only available on the client and not transmittable through git push.

I don't think I understand your question here.

> 2. What if anything should we do differently in the mean time?

since as far as I know we all more or less use mercurial (possibly
through scripts) just deal with whatever changes the mercurial people
have to deal with.

> Both of these questions would be easier to answer if you explain your plans
> in more detail. :-)

very much agreed it would be easier to evaluate a concrete plan.

Trev

> 
> Cheers,
> Ehsan
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform

Attachment: signature.asc
Description: Digital signature

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to