git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Max Horn <max@quendi.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
	Felipe Contreras <felipe.contreras@gmail.com>,
	git@vger.kernel.org,
	Johannes Schindelin <johannes.schindelin@gmx.de>,
	Jeff King <peff@peff.net>,
	Sverre Rabbelier <srabbelier@gmail.com>,
	Brandon Casey <drafnel@gmail.com>,
	Brandon Casey <casey@nrlssc.navy.mil>,
	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>
Subject: Re: [PATCH v5 15/15] fast-export: don't handle uninteresting refs
Date: Wed, 21 Nov 2012 23:30:01 +0100	[thread overview]
Message-ID: <0F47AA24-F5B6-4197-8D74-6DD32E253856@quendi.de> (raw)
In-Reply-To: <7vfw43pmp7.fsf@alter.siamese.dyndns.org>

On 21.11.2012, at 06:08, Junio C Hamano wrote:

> Jonathan Nieder <jrnieder@gmail.com> writes:
> 
>> Never mind that others have said that that's not the current interface
>> (I don't yet see why it would be a good interface after a transition,
>> but maybe it would be).  Still, hopefully that clarifies the intended
>> meaning.
> 
> Care to explain how the current interface is supposed to work, how
> fast-export and transport-helper should interact with remote helpers
> that adhere to the current interface, and how well/correctly the
> current implementation of these pieces work?

Yes, please!


> 
> What I am trying to get at is to see where the problem lies.  Felipe
> sees bugs in the aggregated whole.  Is the root cause of the problems
> he sees some breakages in the current interface?  Is the interface
> designed right but the problem is that the implementation of the
> transport-helper is buggy and driving fast-export incorrectly?  Or is
> the implementation of the fast-export buggy and emitting wrong results,
> even though the transport-helper is driving fast-export correctly?
> Something else?
> 
> I see Felipe keeps repeating that there are bugs, and keeps posting
> patches to change fast-export, but I haven't seen a concrete "No,
> the reason why you see these problems is because you are not using
> the interface correctly; the currrent interface is fine.  Here is
> how you can fix your program" from "others".

I was wondering about the same, actually... Moreover, I started to try to understand more about this, but found this a bit difficult. Apparently I am primarily supposed to learn about remote helpers by reverse engineering the (sparsely commented, if at all) existing ones. The fact that remote helpers can implement different subsets of the feature spectrum complicates this further. 

Overall, my impression is that there are two kinds of remote helpers:

1) Some are git-to-git helpers, which allow access to another git repos via some intermediate media / protocol (via http, ssh, ...). Those use either connect, or fetch+push. They do not need marks, because they can use the git sha1s. Examples (together with the capabilities they claim to implement):

- remote-curl: fetch, option, push
- remote-ext: connect
- remote-fd: connect


2) Some are interfaces to foreign systems (bzr, hg, mediawiki, ...). They cannot use sha1s and must use marks (at least that is how I understand felipe's explanation). These tools use import combined with either export, or push. Examples:

- git-remote-mediawiki: import, push, refspec
    (its capabilities command also prints "list", but that seems to be a bug?)
- git-remote-hg: import, export, refspec, import-marks, export-marks
    (both the msysgit one and felipe's
- git-remote-bzr: import, push
    (the one from https://github.com/lelutin/git-remote-bzr)
- git-remote-bzr (felipe's): import, export, refspec, *import-marks, *export-marks
    (but why the * ?)


Does that sound about right? If so, can somebody give me a hint when a type 2 helper would use "export" and when "push"?

And while I am at it: git-remote-helpers.txt does not mention the "export", "import-marks" and "export-marks" capabilities. Could somebody who knows what they do look into fixing that? Overall, that doc helped me a bit, but it is more a reference to somebody who already understands in detail how remote helpers work, and who just wants to look up some specific detail :-(. Some hints on when to implement which capabilities might be useful (similar to the "Tips and Tricks" section in git-fast-import.txt).

As it is, felipe's recent explanation on why he thinks marks are essential for remote-helpers (I assume he was only referring to type 2 helpers, though) was one of the most enlightening texts I read on the whole subject so far (then again, I am fairly new to this list, so I may have missed lots of past goodness). Anyway, it would be nice if this could be augmented by "somebody from the other camp" ;).


Cheers,
Max

  parent reply	other threads:[~2012-11-22 21:54 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
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 [this message]
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=0F47AA24-F5B6-4197-8D74-6DD32E253856@quendi.de \
    --to=max@quendi.de \
    --cc=Matthieu.Moy@imag.fr \
    --cc=bdwalton@gmail.com \
    --cc=casey@nrlssc.navy.mil \
    --cc=drafnel@gmail.com \
    --cc=felipe.contreras@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=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).