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
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=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.
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).