From: Chris Webb <chris@arachsys.com>
To: Felipe Contreras <felipe.contreras@gmail.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 10:25:27 +0000 [thread overview]
Message-ID: <20121030102526.GN4891@arachsys.com> (raw)
In-Reply-To: <1351571736-4682-1-git-send-email-felipe.contreras@gmail.com>
Hi. I routinely work with projects in both hg and git, so I'm really
interested in this. Thanks for working on it! I grabbed the latest version
from
https://github.com/felipec/git/blob/fc-remote-hg/contrib/remote-hg/git-remote-hg
and have been trying it out. For the most part, it seems to work very nicely
for the hg repos I have access to and can test against. I've spotted a couple
of issues along the way that I thought would be worth reporting.
The first is really a symptom of a general difference between hg and git: an hg
repository can have multiple heads, whereas a git repo has exactly one head. To
demonstrate:
$ hg init hgtest && cd hgtest
$ echo zero >foo && hg add foo && hg commit -m zero
$ echo one >foo && hg commit -m one
$ hg checkout -r 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo two >foo && hg commit -m two
created new head
$ hg log --graph
@ changeset: 2:ca09651009cb
| tag: tip
| parent: 0:9f552c53d116
| user: Chris Webb <chris@arachsys.com>
| date: Tue Oct 30 09:33:38 2012 +0000
| summary: two
|
| o changeset: 1:58fad8998339
|/ user: Chris Webb <chris@arachsys.com>
| date: Tue Oct 30 09:33:25 2012 +0000
| summary: one
|
o changeset: 0:9f552c53d116
user: Chris Webb <chris@arachsys.com>
date: Tue Oct 30 09:33:08 2012 +0000
summary: zero
$ cd ..
Now if I try to convert this:
$ git clone hg::$PWD/hgtest gittest
Cloning into 'gittest'...
WARNING: Branch 'default' has more than one head, consider merging
Traceback (most recent call last):
File "/home/chris/bin/git-remote-hg", line 773, in <module>
sys.exit(main(sys.argv))
File "/home/chris/bin/git-remote-hg", line 759, in main
do_list(parser)
File "/home/chris/bin/git-remote-hg", line 463, in do_list
list_branch_head(repo, cur)
File "/home/chris/bin/git-remote-hg", line 425, in list_branch_head
tip = get_branch_tip(repo, cur)
File "/home/chris/bin/git-remote-hg", line 418, in get_branch_tip
return repo.branchtip(branch)
AttributeError: 'mqrepo' object has no attribute 'branchtip'
Strip the second head and it's fine:
$ hg -R hgtest strip 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to /tmp/hgtest/hgtest/.hg/strip-backup/ca09651009cb-backup.hg
$ git clone hg::$PWD/hgtest gittest
Cloning into 'gittest'...
$
Not sure what the most friendly thing to do here is. Perhaps refuse to
clone/pull from a repo with multiple heads unless you name the specific head
you want?
The second thing I spotted is the behaviour of bookmarks on push:
$ hg init hgtest && cd hgtest
$ echo zero >foo && hg add foo && hg commit -m zero
$ hg bookmark development
$ cd ..
$ git clone hg::$PWD/hgtest gittest && cd gittest
Cloning into 'gittest'...
$ git checkout development
Branch development set up to track remote branch development from origin.
Switched to a new branch 'development'
$ echo one >foo && git add foo && git commit -m one
[development 9f67dc4] one
1 file changed, 1 insertion(+), 1 deletion(-)
$ git status
# On branch development
# Your branch is ahead of 'origin/development' by 1 commit.
#
nothing to commit
$ git push
warning: helper reported unexpected status of refs/hg/origin/bookmarks/development
To hg::/tmp/hgtest/hgtest
* [new branch] branches/default -> branches/default
* [new branch] development -> development
$ hg log -R ../hgtest
changeset: 1:1c0714d93864
tag: tip
user: Chris Webb <chris@arachsys.com>
date: Tue Oct 30 09:51:51 2012 +0000
summary: one
changeset: 0:f56c463398ea
bookmark: development
user: Chris Webb <chris@arachsys.com>
date: Tue Oct 30 09:50:53 2012 +0000
summary: zero
i.e. the development bookmark hasn't been updated by the push. This might be
connected to the warning message
warning: helper reported unexpected status of refs/hg/origin/bookmarks/development
I'm testing with hg 2.2.2 and current git master, so I expect this could be a
python api change in the more recent versions of hg if you don't see the same
behaviour.
Best wishes,
Chris.
next prev parent reply other threads:[~2012-10-30 10:25 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 ` Chris Webb [this message]
2012-10-30 10:28 ` [PATCH v5 00/14] New remote-hg helper 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
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121030102526.GN4891@arachsys.com \
--to=chris@arachsys.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=felipe.contreras@gmail.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.