git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5 15/15] fast-export: don't handle uninteresting refs

From
Max Horn <max@quendi.de>
Date
Nov 21, 2012, 22:30 UTC
Message-ID
<0F47AA24-F5B6-4197-8D74-6DD32E253856@quendi.de>
In-Reply-To
<7vfw43pmp7.fsf@alter.siamese.dyndns.org>
On 21.11.2012, at 06:08, Junio C Hamano wrote:
Show 11 quoted lines
> 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!
Show 15 quoted lines
> 
> 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

Previous: Junio C HamanoNext: Felipe Contreras
Message 58 of 65 in “fast-export and remote-testgit improvements”
  1. 00/15 fast-export and remote-testgit improvementsFelipe Contreras, Nov 11, 2012
  2. 01/15 fast-export: avoid importing blob marksFelipe Contreras, Nov 11, 2012
  3. Torsten BögershausenNov 11, 2012
  4. Jeff KingNov 11, 2012
  5. Junio C HamanoNov 12, 2012
  6. Felipe ContrerasNov 11, 2012
  7. 02/15 remote-testgit: fix direction of marksFelipe Contreras, Nov 11, 2012
  8. Max HornNov 11, 2012
  9. 03/15 remote-helpers: fix failure messageFelipe Contreras, Nov 11, 2012
  10. 04/15 Rename git-remote-testgit to git-remote-testpyFelipe Contreras, Nov 11, 2012
  11. 05/15 Add new simplified git-remote-testgitFelipe Contreras, Nov 11, 2012
  12. Max HornNov 11, 2012
  13. Junio C HamanoNov 21, 2012
  14. Felipe ContrerasNov 21, 2012
  15. 06/15 remote-testgit: get rid of non-local functionalityFelipe Contreras, Nov 11, 2012
  16. Junio C HamanoNov 21, 2012
  17. Felipe ContrerasNov 21, 2012
  18. 07/15 remote-testgit: remove irrelevant testFelipe Contreras, Nov 11, 2012
  19. 08/15 remote-testgit: cleanup testsFelipe Contreras, Nov 11, 2012
  20. Junio C HamanoNov 21, 2012
  21. Felipe ContrerasNov 22, 2012
  22. 09/15 remote-testgit: exercise more featuresFelipe Contreras, Nov 11, 2012
  23. Junio C HamanoNov 21, 2012
  24. Felipe ContrerasNov 21, 2012
  25. 10/15 remote-testgit: report success after an importFelipe Contreras, Nov 11, 2012
  26. 11/15 remote-testgit: make clear the 'done' featureFelipe Contreras, Nov 11, 2012
  27. Max HornNov 11, 2012
  28. Felipe ContrerasNov 11, 2012
  29. Max HornNov 12, 2012
  30. Jonathan NiederNov 12, 2012
  31. Felipe ContrerasNov 12, 2012
  32. Junio C HamanoNov 21, 2012
  33. Sverre RabbelierNov 21, 2012
  34. 12/15 fast-export: trivial cleanupFelipe Contreras, Nov 11, 2012
  35. 13/15 fast-export: fix comparison in testsFelipe Contreras, Nov 11, 2012
  36. 14/15 fast-export: make sure updated refs get updatedFelipe Contreras, Nov 11, 2012
  37. Max HornNov 11, 2012
  38. Junio C HamanoNov 21, 2012
  39. 15/15 fast-export: don't handle uninteresting refsFelipe Contreras, Nov 11, 2012
  40. Felipe ContrerasNov 12, 2012
  41. Junio C HamanoNov 20, 2012
  42. Felipe ContrerasNov 21, 2012
  43. Jonathan NiederNov 21, 2012
  44. Felipe ContrerasNov 21, 2012
  45. Junio C HamanoNov 21, 2012
  46. Felipe ContrerasNov 21, 2012
  47. Felipe ContrerasNov 21, 2012
  48. Jeff KingNov 21, 2012
  49. Felipe ContrerasNov 22, 2012
  50. Junio C HamanoNov 26, 2012
  51. Felipe ContrerasNov 26, 2012
  52. Johannes SchindelinNov 26, 2012
  53. Junio C HamanoNov 26, 2012
  54. Felipe ContrerasNov 26, 2012
  55. Johannes SchindelinNov 26, 2012
  56. Sverre RabbelierNov 26, 2012
  57. Junio C HamanoNov 26, 2012
  58. Max HornNov 21, 2012
  59. Felipe ContrerasNov 22, 2012
  60. Junio C HamanoNov 21, 2012
  61. Felipe ContrerasNov 22, 2012
  62. Felipe ContrerasNov 24, 2012
  63. Felipe ContrerasNov 21, 2012
  64. Junio C HamanoNov 21, 2012
  65. Felipe ContrerasNov 22, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.