From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <johannes.schindelin@gmx.de>,
Max Horn <max@quendi.de>, Jeff King <peff@peff.net>,
Sverre Rabbelier <srabbelier@gmail.com>,
Brandon Casey <drafnel@gmail.com>,
Brandon Casey <casey@nrlssc.navy.mil>,
Jonathan Nieder <jrnieder@gmail.com>,
Ilari Liusvaara <ilari.liusvaara@elisanet.fi>,
Pete Wyckoff <pw@padd.com>, Ben Walton <bdwalton@gmail.com>,
Matthieu Moy <Matthieu.Moy@imag.fr>,
Julian Phillips <julian@quantumfyre.co.uk>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: Re: [PATCH v5 15/15] fast-export: don't handle uninteresting refs
Date: Mon, 12 Nov 2012 17:28:28 +0100 [thread overview]
Message-ID: <CAMP44s0WH-P7WY4UqhMX3WdrrSCYXUR9yCgsUV+mzLOCK5LkHQ@mail.gmail.com> (raw)
In-Reply-To: <1352642392-28387-16-git-send-email-felipe.contreras@gmail.com>
On Sun, Nov 11, 2012 at 2:59 PM, Felipe Contreras
<felipe.contreras@gmail.com> wrote:
> They have been marked as UNINTERESTING for a reason, lets respect that.
>
> Currently the first ref is handled properly, but not the rest, so:
>
> % git fast-export master ^master
>
> Would currently throw a reset for master (2nd ref), which is not what we
> want.
>
> % git fast-export master ^foo ^bar ^roo
> % git fast-export master salsa..tacos
>
> Even if all these refs point to the same object; foo, bar, roo, salsa,
> and tacos would all get a reset, and to a non-existing object (invalid
> mark :0).
>
> And even more, it would only happen if the ref is pointing to exactly
> the same commit, but not otherwise:
>
> % git fast-export ^next next
> reset refs/heads/next
> from :0
>
> % git fast-export ^next next^{commit}
> # nothing
> % git fast-export ^next next~0
> # nothing
> % git fast-export ^next next~1
> # nothing
> % git fast-export ^next next~2
> # nothing
>
> The reason this happens is that before traversing the commits,
> fast-export checks if any of the refs point to the same object, and any
> duplicated ref gets added to a list in order to issue 'reset' commands
> after the traversing. Unfortunately, it's not even checking if the
> commit is flagged as UNINTERESTING. The fix of course, is to do
> precisely that.
>
> The current behavior is most certainly not what we want. After this
> patch, nothing gets exported, because nothing was selected (everything
> is UNINTERESTING).
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
And here's yet another reason why this is obviously correct that I just found:
% git fast-export --use-done-feature
--{import,export}-marks=.git/hg/origin/marks-git
^refs/hg/origin/branches/default ^refs/hg/origin/bookmarks/test6
refs/heads/test6 ^refs/hg/origin/bookmarks/master
^refs/hg/origin/bookmarks/test
feature done
reset refs/hg/origin/bookmarks/test
from :4
reset refs/heads/test6
from :14
done
What is that refs/hg/origin/bookmarks/test doing there?
transport-helper does use a fast-export command like that to specify
precisely what refs should be *IGNORED*, and yet fast-export will
throw a reset for a ref that has been marked as UNINTERESTING. So, the
receiving end in the helper will see a reset for a ref that it
explicitly said was marked as outside it's refspec realm:
refspec refs/heads/*:refs/hg/origin/bookmarks/*
What is remote-hg supposed to do with 'refs/hg/origin/bookmarks/test'?
There's nothing that can be done, it's a bug in fast-export that such
a thing was exported in the first place. And the reason it happens is
that another ref happens to be pointing to the same object, (in this
case refs/hg/origin/branches/default)
So yeah, the patch is good.
Of course, transport-helper shouldn't even be specifying the negative
(^) refs, but that's another story.
Cheers.
--
Felipe Contreras
next prev parent reply other threads:[~2012-11-12 16:28 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-11 13:59 [PATCH v5 00/15] fast-export and remote-testgit improvements Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 01/15] fast-export: avoid importing blob marks Felipe Contreras
2012-11-11 16:36 ` Torsten Bögershausen
2012-11-11 16:38 ` Jeff King
2012-11-12 17:44 ` Junio C Hamano
2012-11-11 17:53 ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 02/15] remote-testgit: fix direction of marks Felipe Contreras
2012-11-11 20:39 ` Max Horn
2012-11-11 13:59 ` [PATCH v5 03/15] remote-helpers: fix failure message Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 04/15] Rename git-remote-testgit to git-remote-testpy Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 05/15] Add new simplified git-remote-testgit Felipe Contreras
2012-11-11 20:40 ` Max Horn
2012-11-21 18:26 ` Junio C Hamano
2012-11-21 23:39 ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 06/15] remote-testgit: get rid of non-local functionality Felipe Contreras
2012-11-21 18:26 ` Junio C Hamano
2012-11-21 23:44 ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 07/15] remote-testgit: remove irrelevant test Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 08/15] remote-testgit: cleanup tests Felipe Contreras
2012-11-21 18:28 ` Junio C Hamano
2012-11-22 0:55 ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 09/15] remote-testgit: exercise more features Felipe Contreras
2012-11-21 18:26 ` Junio C Hamano
2012-11-21 23:35 ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 10/15] remote-testgit: report success after an import Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 11/15] remote-testgit: make clear the 'done' feature Felipe Contreras
2012-11-11 20:49 ` Max Horn
2012-11-11 21:22 ` Felipe Contreras
2012-11-12 11:20 ` Max Horn
2012-11-12 15:45 ` Jonathan Nieder
2012-11-12 16:40 ` Felipe Contreras
2012-11-21 18:11 ` Junio C Hamano
2012-11-21 19:20 ` Sverre Rabbelier
2012-11-11 13:59 ` [PATCH v5 12/15] fast-export: trivial cleanup Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 13/15] fast-export: fix comparison in tests Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 14/15] fast-export: make sure updated refs get updated Felipe Contreras
2012-11-11 20:43 ` Max Horn
2012-11-21 18:12 ` Junio C Hamano
2012-11-11 13:59 ` [PATCH v5 15/15] fast-export: don't handle uninteresting refs Felipe Contreras
2012-11-12 16:28 ` Felipe Contreras [this message]
2012-11-20 22:43 ` Junio C Hamano
2012-11-21 3:03 ` Felipe Contreras
2012-11-21 4:17 ` Jonathan Nieder
2012-11-21 4:22 ` Felipe Contreras
2012-11-21 5:08 ` Junio C Hamano
2012-11-21 7:11 ` Felipe Contreras
2012-11-21 8:37 ` Felipe Contreras
2012-11-21 19:48 ` Jeff King
2012-11-22 0:28 ` Felipe Contreras
2012-11-26 5:35 ` Junio C Hamano
2012-11-26 12:16 ` Felipe Contreras
2012-11-26 16:28 ` Johannes Schindelin
2012-11-26 17:56 ` Junio C Hamano
2012-11-26 19:23 ` Felipe Contreras
2012-11-26 19:26 ` Johannes Schindelin
2012-11-26 21:46 ` Sverre Rabbelier
2012-11-26 22:22 ` Junio C Hamano
2012-11-21 22:30 ` Max Horn
2012-11-22 0:38 ` Felipe Contreras
2012-11-21 18:14 ` Junio C Hamano
2012-11-22 0:15 ` Felipe Contreras
2012-11-24 3:12 ` Felipe Contreras
2012-11-21 9:46 ` [PATCH v5 00/15] fast-export and remote-testgit improvements Felipe Contreras
2012-11-21 19:05 ` Junio C Hamano
2012-11-22 0:51 ` Felipe Contreras
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=CAMP44s0WH-P7WY4UqhMX3WdrrSCYXUR9yCgsUV+mzLOCK5LkHQ@mail.gmail.com \
--to=felipe.contreras@gmail.com \
--cc=Matthieu.Moy@imag.fr \
--cc=bdwalton@gmail.com \
--cc=casey@nrlssc.navy.mil \
--cc=drafnel@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ilari.liusvaara@elisanet.fi \
--cc=johannes.schindelin@gmx.de \
--cc=jrnieder@gmail.com \
--cc=julian@quantumfyre.co.uk \
--cc=max@quendi.de \
--cc=peff@peff.net \
--cc=pw@padd.com \
--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).