git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Chris Webb <chris@arachsys.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Sverre Rabbelier <srabbelier@gmail.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Ilari Liusvaara <ilari.liusvaara@elisanet.fi>,
	Daniel Barkalow <barkalow@iabervon.org>,
	Jeff King <peff@peff.net>,
	Michael J Gruber <git@drmicha.warpmail.net>
Subject: Re: [PATCH v5 00/14] New remote-hg helper
Date: Tue, 30 Oct 2012 19:29:30 +0100	[thread overview]
Message-ID: <CAMP44s3LY0m14LkuRHhbMTqsgD=t1Xw+KLsac9e=tgpnhGc+NA@mail.gmail.com> (raw)
In-Reply-To: <20121030180021.GX26850@arachsys.com>

On Tue, Oct 30, 2012 at 7:00 PM, Chris Webb <chris@arachsys.com> wrote:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
>> Yes, it seems this is an API issue; repo.branchtip doesn't exist in
>> python 2.2.
>
> Hi. Presumably this is a problem with old mercurial not a problem with old
> python as mentioned in the commit?
>
>> Both issues should be fixed now :)
>
> They are indeed, and it now works nicely on all the repos I've tested it
> with, including http://selenic.com/hg: very impressive!
>
> I wonder whether it's worth ignoring heads with bookmarks pointing to them
> when it comes to considering heads of branches, or at least allowing the
> hg branch tracking to be easily disabled?
>
> A common idiom when working with hg bookmarks is to completely ignore the
> (not very useful) hg branches (i.e. all commits are on the default hg
> branch) and have a bookmark for each line of development used exactly as a
> git branch would be.
>
> On such a repository, at the moment you will always get a warning about
> multiple heads on branches/default, even though you actually don't care
> about branches/default (and would prefer it not to exist) and just want the
> branches coming from the bookmarks.
>
> I've also seen repositories with no hg branches, but with a single
> unbookmarked tip and bookmarks on some other heads to mark non-mainline
> development. It would be nice for branches/default to track the unbookmarked
> tip in this case, without warning about the other, bookmarked heads.
>
> Finally, on a simple repo with no branches and where there's no clash with a
> bookmark called master, I'd love to be able to a get a more idiomatic
> origin/master rather than origin/branches/default.

Sounds like you might want to try this:
% git config --global remote-hg.hg-git-compat true

This would match the behavior of hg-git, which seems to be what you
are looking for: branches will be ignored. But additionally there will
be other obtrusive changes:

 1) Extra information will be stored in the commit message: branch,
renames, extra info.

Personally I don't like this, which is why it's only enabled with the
hg-git compat mode. Eventually there will be support for this in the
normal mode through git notes, and eventually (hopefully), hg-git will
use notes as well.

 2) Authors will be fixed trying to preserve as much information as possible


The problem with this mode is what happens when there are no
bookmarks, and what I decided to do is create a fake bookmark to the
current branch (e.g. default), so you would get 'origin/default', but
you will be warned if there are multiple heads. We could try to create
a 'master' ref to the 'tip', but that might not be what the user
wants: (s)he might switch to a certain branch, and clone the
repository in git; currently the result working directory would be the
same as in hg, but if we point to 'tip', then it would not.

Maybe we should have a branch pointing to 'tip' either way.

The reason I decided on having 'branches/default' on the normal mode
is that users unfamiliar with mercurial might expect to see all the
branches somewhere. But perhaps that should happen only for other
branches, while 'default' gets a special treatment and gets promoted
to 'origin/master' but only if there's no 'master' bookmark, as you
say. Now the tricky part would be handling the case where there was no
'master' bookmark, and suddenly one gets created, but it might be
overkill to think about that right now.

Either way, try the hg-git-compat mode, should be close :)

Cheers.

-- 
Felipe Contreras

  parent reply	other threads:[~2012-10-30 18:29 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-30  4:35 [PATCH v5 00/14] New remote-hg helper Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 01/14] Add new remote-hg transport helper Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 02/14] remote-hg: add support for bookmarks Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 03/14] remote-hg: add support for pushing Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 04/14] remote-hg: add support for remote pushing Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 05/14] remote-hg: add support to push URLs Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 06/14] remote-hg: make sure the encoding is correct Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 07/14] remote-hg: match hg merge behavior Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 08/14] remote-hg: add support for hg-git compat mode Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 09/14] remote-hg: add compat for hg-git author fixes Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 10/14] remote-hg: fake bookmark when there's none Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 11/14] remote-hg: add support for fake remote Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 12/14] remote-hg: add biridectional tests Felipe Contreras
     [not found]   ` <CAPc5daUuCsiQd4MoQzQm_aQ6c88b_E8vYfA5btXMW4yCBX8E=g@mail.gmail.com>
2012-10-30  4:49     ` Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 13/14] remote-hg: add tests to compare with hg-git Felipe Contreras
2012-10-30  4:35 ` [PATCH v5 14/14] remote-hg: add extra author test Felipe Contreras
2012-10-30 10:25 ` [PATCH v5 00/14] New remote-hg helper Chris Webb
2012-10-30 10:28   ` Chris Webb
2012-10-30 15:51   ` Felipe Contreras
2012-10-30 18:00     ` Chris Webb
2012-10-30 18:16       ` Chris Webb
2012-10-30 18:29       ` Felipe Contreras [this message]
2012-11-01  6:05       ` Felipe Contreras
2012-11-11 22:17         ` Chris Webb
2012-11-13  3:45           ` Felipe Contreras
2012-10-30 17:27   ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMP44s3LY0m14LkuRHhbMTqsgD=t1Xw+KLsac9e=tgpnhGc+NA@mail.gmail.com' \
    --to=felipe.contreras@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=barkalow@iabervon.org \
    --cc=chris@arachsys.com \
    --cc=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ilari.liusvaara@elisanet.fi \
    --cc=peff@peff.net \
    --cc=srabbelier@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).