On 2013-05-03 3:19 AM, Mike Hommey wrote:
On Fri, May 03, 2013 at 02:59:21AM -0400, Ehsan Akhgari wrote:
On 2013-05-03 2:52 AM, Mike Hommey wrote:
On Fri, May 03, 2013 at 02:43:36AM -0400, Ehsan Akhgari wrote:
On 2013-05-02 9:40 AM, Mike Hommey wrote:
On Thu, May 02, 2013 at 09:21:57AM -0400, Ehsan Akhgari wrote:
Also, they cannot be represented in git

I doubt this is true. The bridging tools may well not support it, but
there's nothing structural about multiple-head repository that would
prevent them to be mirrored in git.

In git, the only way to have something in your history is for it to
be reachable by a ref (for example, a branch name).  When you
convert an hg repo with a multi-headed branch to git, you can only
choose to represent one of those heads by a branch name, and the
other head will be left stranded, which means that it cannot be used
normally (for example you cannot push it when you push your branch
somewhere) and git gc will remove it from your repository since it
thinks that it's an unneeded commit.

The hg/git bridge could keep refs with arbitrary names. Or whatever.
Really, there's no reason that should be a problem.

That is easier said than done.  hg-git supports bidirectioal
conversion, so such a solution should deal with going back from git
to hg some way.  And it should also delete the arbitrary name when
the extra head goes away somehow, and perhaps other problems that I
can't think of right now.  And doing any of that is entirely beyond
my abilities!  :-)

I don't understand why we need to switch to a solution which would
make maintaining the inbound branch in the git mirror impossible (at
least in the near future.)

IMHO, the multiplication of branches is not helping the mercurial server
performance. Each new branch takes disk space, which is not really a
problem, but most branches can't stay in memory caches since other
branches are going to throw them away from memory. Arguably, we're
already using too many branches.

That seems like a problem that can be solved by having a decent amount of memory on the hg server. Or, use the share extension. Or whatever. Remember that this setup _is_ the "standard" way to do branches in Mercurial. I agree that it's horrible, but that's something that Mercurial users have to deal with.

That's also why mercurial was a terrible choice for the long term.
Easy to say in retrospective, but the more we talk about mercurial
problems, the clearer it gets.

You're not going to hear an argument against that from me!  :-)

Ehsan

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

Reply via email to