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

Re: [PATCH 2/2] Move sequencer to builtin

From
Jeff King <peff@peff.net>
Date
Jun 9, 2013, 17:55 UTC
Message-ID
<20130609175554.GA810@sigill.intra.peff.net>
In-Reply-To
<CALkWK0kkGO8zoLSpZkaYgVr5eBX6AovYFxQZkgJKugSw0CmdXQ@mail.gmail.com>
On Sun, Jun 09, 2013 at 03:28:48PM +0530, Ramkumar Ramachandra wrote:
Show 10 quoted lines
> Jeff King wrote:
> > Sorry that I cannot show you the source code, but you may interested to
> > know that libgit2 powers:
> 
> Yes, I'm well aware of these: libgit2 is LGPL, because of which these
> three proprietary applications have been made possible.  Isn't it
> completely orthogonal to the discussion about how best to lib'ify
> git.git though?  From what I understand, fc is not interested in
> building another application leveraging libgit.a or libgit2; he's
> interested in improving libgit.a and getting more users.

Perhaps I misunderstood the discussion, but it looked to me that there was an assertion that libgit2 was not ready for useful work. I do not think that is true, and I tried to counter it with facts.

If that was not useful to the discussion, I apologize for leading it astray.

> > It is definitely not feature-complete when compared with git.git. But I
> > do think it is in a state that is usable for quite a few tasks.
> 
> What is this task you are discussing?
You snipped the part of Felipe's message that I quoted:
  Let the code speak. Show me a script in any language that does
  something useful using libgit2, doing the equivalent to at least a
  couple of 'git foo' commands.

I meant tasks that were "equivalent to at least a couple of 'git foo' commands" as performed by the programs I mentioned. Like cloning, checkout, commit, revision traversal, diffs, etc.

> fc is talking about improving libgit.a and getting an official git
> library with many users. Answer the question: what should we do now?

I do not think I was addressing that point at all in my email. But since you ask...

> 1. Start moving irrelevant code out of libgit.a, and use inspiration
> from libgit2 to improve it (this might or might not involve taking
> code from libgit2).  Get _users_ of libgit.a via ruby bindings (or
> something) asap, so it puts pressure on fixing it.

I already mentioned elsewhere that I think it would be fine to massage libgit.a in that direction. I even joined the conversation pointing out some cases where Felipe's ruby module would break. But I do not think that moving code in and out of libgit.a is an important first step at all. That is simply code that no library users would want to call, and is easy to deal with: move it out. The hard part is code that users _would_ want to call, and is totally broken. Patches dealing with that are the hard obstacle that people working in this direction would need to overcome. But I do not see any such patches under discussion.

> 2. Wait indefinitely until libgit2.git magically becomes ready to be
> usable by git.git as-is.  Then throw libgit.a out the window, and
> rewrite git.git to call into libgit2.a instead [*1*].

I think the "magically" here could be "work on libgit2 to move it towards being useful for git.git". I also do not think there needs to be a "throw out libgit.a" flag day. We can make a decision later to start adopting bits of libgit2 inside git.git (the big downside being an increased dependency).

Maybe the code style will diverge too much and it will never be appropriate to do so. We'll have to see.

> What you seem to be saying is "3. Work on libgit2 (and abandon
> git.git?)" [*2*], or worse: 2.

I didn't say that at all. If the two projects co-exist forever, working compatibly on the same repositories, and git.git is the command line and libgit2 is the library, I do not see that as the end of the world. The downside there is is code duplication, which is why it may eventually make sense for libgit.a to start adopting bits of libgit2 (it is usually hard to go the other way, both for licensing reasons, and for the fact that the library code tends to be more reusable).

> fc is in favor of 1.  Unless you are
> in favor of _not_ improving libgit.a, don't stand in his way:

I'm not. I tried to give pointers on the path that I think would be useful (e.g., what would break with his ruby patch).

> *1* You have dismissed 1 as being unworkable, but do you realize how
> unrealistic this sounds?

I don't think I dismissed it as unworkable. I said it was a lot of work, tried to describe some examples, and said that I think the other route may be _less_ work.

> *2* git.git has _far_ more users and a _lot_ more contributors.  Don't
> be unwelcoming to contributors by asking them to go away and work on
> something else.  The three proprietary applications you have given as
> counter-examples (?) is not helping anyone.

They were counter-examples to the point "libgit2 is not ready for real work", which I thought was being made. If that was not the point being made, then no, they are not helping anyone.

-Peff
Previous: Ramkumar RamachandraNext: Ramkumar Ramachandra
Message 18 of 82 in “Move sequencer”
  1. 0/2 Move sequencerFelipe Contreras, Jun 7, 2013
  2. 1/2 log-tree: remove dependency from sequencerFelipe Contreras, Jun 7, 2013
  3. 2/2 Move sequencer to builtinFelipe Contreras, Jun 7, 2013
  4. Duy NguyenJun 8, 2013
  5. Felipe ContrerasJun 8, 2013
  6. Duy NguyenJun 8, 2013
  7. Felipe ContrerasJun 8, 2013
  8. Duy NguyenJun 8, 2013
  9. Ramkumar RamachandraJun 8, 2013
  10. Duy NguyenJun 8, 2013
  11. Felipe ContrerasJun 8, 2013
  12. Ramkumar RamachandraJun 8, 2013
  13. Felipe ContrerasJun 8, 2013
  14. Duy NguyenJun 8, 2013
  15. Felipe ContrerasJun 8, 2013
  16. Jeff KingJun 9, 2013
  17. Ramkumar RamachandraJun 9, 2013
  18. Jeff KingJun 9, 2013
  19. Ramkumar RamachandraJun 9, 2013
  20. Felipe ContrerasJun 9, 2013
  21. Jeff KingJun 9, 2013
  22. Felipe ContrerasJun 9, 2013
  23. Ramkumar RamachandraJun 9, 2013
  24. Jeff KingJun 9, 2013
  25. Felipe ContrerasJun 9, 2013
  26. Felipe ContrerasJun 9, 2013
  27. Felipe ContrerasJun 9, 2013
  28. Felipe ContrerasJun 8, 2013
  29. Jonathan NiederJun 8, 2013
  30. Felipe ContrerasJun 8, 2013
  31. Jonathan NiederJun 8, 2013
  32. Felipe ContrerasJun 8, 2013
  33. Felipe ContrerasJun 8, 2013
  34. Jonathan NiederJun 9, 2013
  35. Felipe ContrerasJun 9, 2013
  36. Jonathan NiederJun 9, 2013
  37. Felipe ContrerasJun 9, 2013
  38. Jeff KingJun 9, 2013
  39. Felipe ContrerasJun 9, 2013
  40. Jeff KingJun 9, 2013
  41. Felipe ContrerasJun 9, 2013
  42. Jeff KingJun 9, 2013
  43. Felipe ContrerasJun 9, 2013
  44. Johan HerlandJun 9, 2013
  45. Felipe ContrerasJun 9, 2013
  46. Michael HaggertyJun 9, 2013
  47. Stefano LattariniJun 9, 2013
  48. Felipe ContrerasJun 10, 2013
  49. Bad attitudes and problems in the Git community (was: Re: [PATCH 2/2] Move sequencer to builtin)Stefano Lattarini, Jun 10, 2013
  50. Felipe ContrerasJun 10, 2013
  51. Martin von ZweigbergkJun 10, 2013
  52. Martin LanghoffJun 10, 2013
  53. Martin von ZweigbergkJun 10, 2013
  54. Felipe ContrerasJun 10, 2013
  55. Felipe ContrerasJun 10, 2013
  56. Andres FreundJun 11, 2013
  57. Felipe ContrerasJun 11, 2013
  58. Thiago FarinaJun 20, 2013
  59. Thomas RastJun 9, 2013
  60. Felipe ContrerasJun 9, 2013
  61. Ramkumar RamachandraJun 9, 2013
  62. Felipe ContrerasJun 9, 2013
  63. Jeff KingJun 9, 2013
  64. Ramkumar RamachandraJun 9, 2013
  65. Jeff KingJun 9, 2013
  66. Jonathan NiederJun 9, 2013
  67. Felipe ContrerasJun 9, 2013
  68. Ramkumar RamachandraJun 9, 2013
  69. Junio C HamanoJun 9, 2013
  70. Felipe ContrerasJun 10, 2013
  71. Junio C HamanoJun 10, 2013
  72. Felipe ContrerasJun 10, 2013
  73. Felipe ContrerasJun 10, 2013
  74. Matthieu MoyJun 10, 2013
  75. Ramkumar RamachandraJun 10, 2013
  76. Felipe ContrerasJun 10, 2013
  77. Felipe ContrerasJun 9, 2013
  78. Thomas RastJun 9, 2013
  79. Ramkumar RamachandraJun 9, 2013
  80. Felipe ContrerasJun 9, 2013
  81. Ramkumar RamachandraJun 8, 2013
  82. Felipe ContrerasJun 8, 2013

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.