On Thu, Oct 30, 2014 at 10:48 PM, Gregory Szorc <g...@mozilla.com> wrote:
> I'm trying to learn more about how the people who use Git for Firefox/Gecko
> development manage interacting with repositories that have their canonical
> home in Mercurial (mozilla-central, Try, etc). I'm doing this to ensure the
> replacement Try architecture will be usable by Git users.
>
> I'm looking for more information and trying to tease out the relative
> popularity and pain points of the technical solutions for the following
> tasks:
>
> a) Landing code to inbound, fx-team, aurora, etc
> b) Pushing to Try
> c) Fetching new commits
> d) Collaborating/sharing commits with others, especially hg<->git sharing
>
> I found https://etherpad.mozilla.org/moz-git-tools and the like-named GitHub
> repo with a suite of Mozilla-centric Git commands. These seem to be largely
> based on top of low-level patch format conversion and make little attempt
> (if any) to preserve commit SHA-1 mappings to enable bi-directional
> conversion (i.e. they are unidirectional, lossy tools). Many of them seem to
> have `hg` invocations buried under the covers.
>
> I'm interested in knowing how people feel about these "hidden hg" tools. Is
> going through a hidden, local hg bridge seamless? Satisfactory? Barely
> tolerable? A horrible pain point? (I noticed some of the hg interactions in
> moz-git-tools aren't optimal. If these are important tools, please ping me
> off list so I can help you improve them.)
>
> Is moz-git-tools the de facto standard for Mozilla developers? Are there
> other competing tools?
>
> Does anyone use hg-git (it has gotten *much* faster in the past year thanks
> to Facebook's investment)?
>
> I'm particularly interested in knowing if any Git developers have been able
> to eliminate local hg completely. i.e. you are fetching and pushing from/to
> Git repos exclusively. If so, what are you using? What limitations do you
> have?
>
> Overall, how happy are you with your Git fetch/push workflows? Short of
> switching the canonical repositories to Git, what do you need to be more
> productive?
>
> I'm asking all these questions because I'm helping design the replacement
> architecture for Try and the more optimal solutions that will deliver a
> faster and better user experience tend to be easier to implement for
> Mercurial and may partially preclude Git because, well, Git just doesn't
> have the extensibility points as Mercurial (yay extensions and dynamic
> programming languages). I'm not saying Git users would be locked out: I'm
> just saying that having Mercurial running locally and "proxying" certain
> actions through Mercurial (like Try pushes) keeps more options on the table.
> It also means we have to design, implement, and maintain 1 server interface
> instead of 2. From my perspective, I like the server-side simplicity. But
> I'm also largely ignorant of what Git users are going through. I'm trying to
> gauge whether additional effort is warranted to placate the Git crowd. I'd
> like to gauge things like e.g. how loudly people would scream if one day I
> announced that pushing to Try will require a Mercurial extension. (If that
> day comes, the carrot would be near instantaneous pushes with no contention
> and infinite server-side scalability to millions of pushes.)
>
> Gregory
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform

I've used git exclusively since shortly after a talk that Justin Lebar
gave about using git at a work week in Toronto in Summer 2013.  This
was mostly motivated by git rebase -i being a massive improvement over
the (at the time canonical) patch-based hg workflow.  Since hg has
gotten better I've continued to use git, primarily because git won the
broader DVCS war and so using it is a useful skill to have.

I maintain the canonical version of everything in git, and use hg only
to push and attach patches to bugzilla.  I use push-to-hg from
moz-git-tools to export my changes to an hg repo, where I can either
grab the files to attach to bugzilla or push csets to try.

The aspects of the dual-VCS workflow that I find painful, in
decreasing order of pain:

1. Changeset hashes don't match between the git and mercurial repositories.
2. git push-to-hg is slow
3. I have to have a bunch of hg repositories lying around taking up
disk space for branches I might need to push to.

These days code review and debugging occupies a large part of my time,
so the friction the dual-VCS workflow has is not particularly bad
(compared to build times on Windows, or how slow ./repo sync is on
b2g, for instance).

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

Reply via email to