{"thread":{"id":"26702","subject":"Using libgit2 code in git.git as a Google Summer of Code project?","startedAt":"2011-03-10T10:13:32Z","lastAt":"2011-03-13T17:11:24Z","messageCount":9,"participants":["Jonathan Nieder","Vicent Marti","Nguyen Thai Ngoc Duy","Junio C Hamano","Ramkumar Ramachandra"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"163128","messageId":"20110310101332.GC26851@elie","threadId":"26702","inReplyTo":"AANLkTikkFDLKn5KMaSTwUABBVX_vYDj8pW1kqmsm1_vy@mail.gmail.com","subject":"Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-10T10:13:32Z","receivedAt":"2011-03-10T10:13:32Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hey Vicent et al,\n\nVicent Marti wrote:\n\n>                                                           there have\n> been proposals to merge parts of libgit2 into the original Git client;\n> however, this is not one of our priorities (we are designing git.git\n> to be embeddable in Git backends and GUI programs), and the library is\n> not yet stable enough for that kind of job. We'll see what the future\n> brings -- git.git would certainly benefit from some of our code, if\n> anything because it's (slightly) faster and cleaner than the original\n> implementation.\n\nI've been thinking that it would be interested to start this work\nearly on, partially so that libgit2 and git.git can get to know each\nother better so to speak (which could help libgit2 along nicely and\nhelp git get past some old limitations, I think).  So I'm thinking of\nproposing stealing some of your code, with an eye toward eventually\nmaking git \"just another libgit2 user\", as a Google summer of code\nproject idea.\n\nIs that a sane idea?  Is there any particular subset of the lib that\nwould be an interesting place to start?  Do you forsee any obstacles?\nDo you know anyone who might be interested in mentoring such a\nproject?\n\nAdmittedly I'm not so familiar with libgit2 yet, so I'm willing to\nbelieve the answers might be no, no, yes, and no. ;-)\n\nThe Google Summer of Code application deadline is this Friday\n(March 11) at 23:00 UTC.  If this does seem like a sane thing to do,\nit might be nice to put it on the ideas page at:\n\n  https://git.wiki.kernel.org/index.php/SoC2011Ideas\n\nThanks for your work.\nJonathan\n"},{"id":"163129","messageId":"20110310101842.GE26851@elie","threadId":"26702","inReplyTo":"20110310101332.GC26851@elie","subject":"Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-10T10:18:42Z","receivedAt":"2011-03-10T10:18:42Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"(resending since my last mail was dropped; sorry for the noise)\nHey Vicent et al,\n\nVicent Marti wrote:\n\n>                                                           there have\n> been proposals to merge parts of libgit2 into the original Git client;\n> however, this is not one of our priorities (we are designing git.git\n> to be embeddable in Git backends and GUI programs), and the library is\n> not yet stable enough for that kind of job. We'll see what the future\n> brings -- git.git would certainly benefit from some of our code, if\n> anything because it's (slightly) faster and cleaner than the original\n> implementation.\n\nI've been thinking that it would be interested to start this work\nearly on, partially so that libgit2 and git.git can get to know each\nother better so to speak (which could help libgit2 along nicely and\nhelp git get past some old limitations, I think).  So I'm thinking of\nproposing stealing some of your code, with an eye toward eventually\nmaking git \"just another libgit2 user\", as a Google summer of code\nproject idea.\n\nIs that a sane idea?  Is there any particular subset of the lib that\nwould be an interesting place to start?  Do you forsee any obstacles?\nDo you know anyone who might be interested in mentoring such a\nproject?\n\nAdmittedly I'm not so familiar with libgit2 yet, so I'm willing to\nbelieve the answers might be no, no, yes, and no. ;-)\n\nThe Google Summer of Code application deadline is this Friday\n(March 11) at 23:00 UTC.  If this does seem like a sane thing to do,\nit might be nice to put it on the ideas page at:\n\n  https://git.wiki.kernel.org/index.php/SoC2011Ideas\n\nThanks for your work.\nJonathan\n"},{"id":"163131","messageId":"AANLkTikQ3x9A6v3y698_om_4_qB87Zpi_kG3u3=d+Dur@mail.gmail.com","threadId":"26702","inReplyTo":"20110310101332.GC26851@elie","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Vicent Marti","fromEmail":"tanoku@gmail.com","sentAt":"2011-03-10T11:33:46Z","receivedAt":"2011-03-10T11:33:46Z","isPatch":false,"sender":{"key":"tanoku@gmail.com","avatar":"https://gravatar.com/avatar/271386991cb4c2b8f1e1ed1d059f3422cc3485de7a598f65043f70be021d095b?d=mp&s=160"},"body":"Hey Jonathan,\n\nI think that right now it would be a quite daunting task to start\nreplacing parts of git.git with libgit2. The architecture changes\nrequired would be quite significant, because of the way that git.git\nand libgit2 are designed (Unix-only, non-reentrant/cross-platform,\nreentrant), and the biggest \"feature\" of libgit2, being able to\ncompile all platforms (including native MSVC) would just now show\nbecause of the amount of original git.git code that would still be\nleft on the code base. On top of that, the API for the library is not\nyet stable, so that integration may end up being kind-of-wasted work.\n\nSo, personally, I don't know anybody interested on mentoring *that*\nspecific task, but I'm certainly interested on mentoring a \"help\ncomplete libgit2\" task: the earlier we stabilize the library, the\nearlier tasks like this one will be viable. Maybe on the next SoC? :)\n\nOh, and thanks for reminding me I need to put that task on the wiki\nbefore Friday.\n\nCheers,\nVicent Marti\n\n\n\n2011/3/10 Jonathan Nieder <jrnieder@gmail.com>:\n> Hey Vicent et al,\n>\n> Vicent Marti wrote:\n>\n>>                                                           there have\n>> been proposals to merge parts of libgit2 into the original Git client;\n>> however, this is not one of our priorities (we are designing git.git\n>> to be embeddable in Git backends and GUI programs), and the library is\n>> not yet stable enough for that kind of job. We'll see what the future\n>> brings -- git.git would certainly benefit from some of our code, if\n>> anything because it's (slightly) faster and cleaner than the original\n>> implementation.\n>\n> I've been thinking that it would be interested to start this work\n> early on, partially so that libgit2 and git.git can get to know each\n> other better so to speak (which could help libgit2 along nicely and\n> help git get past some old limitations, I think).  So I'm thinking of\n> proposing stealing some of your code, with an eye toward eventually\n> making git \"just another libgit2 user\", as a Google summer of code\n> project idea.\n>\n> Is that a sane idea?  Is there any particular subset of the lib that\n> would be an interesting place to start?  Do you forsee any obstacles?\n> Do you know anyone who might be interested in mentoring such a\n> project?\n>\n> Admittedly I'm not so familiar with libgit2 yet, so I'm willing to\n> believe the answers might be no, no, yes, and no. ;-)\n>\n> The Google Summer of Code application deadline is this Friday\n> (March 11) at 23:00 UTC.  If this does seem like a sane thing to do,\n> it might be nice to put it on the ideas page at:\n>\n>  https://git.wiki.kernel.org/index.php/SoC2011Ideas\n>\n> Thanks for your work.\n> Jonathan\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n>\n"},{"id":"163132","messageId":"AANLkTi=q6mxGQcdb-Gx9t3TZWDRbNpiZV-iyjgd=NrXj@mail.gmail.com","threadId":"26702","inReplyTo":"AANLkTikQ3x9A6v3y698_om_4_qB87Zpi_kG3u3=d+Dur@mail.gmail.com","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2011-03-10T11:39:21Z","receivedAt":"2011-03-10T11:39:21Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Thu, Mar 10, 2011 at 6:33 PM, Vicent Marti <tanoku@gmail.com> wrote:\n> So, personally, I don't know anybody interested on mentoring *that*\n> specific task, but I'm certainly interested on mentoring a \"help\n> complete libgit2\" task: the earlier we stabilize the library, the\n> earlier tasks like this one will be viable. Maybe on the next SoC? :)\n\nSpeaking of which, how complete is libgit2 compared to git? What are\nthe significant missing pieces?\n-- \nDuy\n"},{"id":"163135","messageId":"20110310115549.GA31046@elie","threadId":"26702","inReplyTo":"AANLkTikQ3x9A6v3y698_om_4_qB87Zpi_kG3u3=d+Dur@mail.gmail.com","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-10T11:55:49Z","receivedAt":"2011-03-10T11:55:49Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi again,\n\nTwo quick notes.\n\nVicent Marti wrote:\n\n> I think that right now it would be a quite daunting task to start\n> replacing parts of git.git with libgit2. The architecture changes\n> required would be quite significant, because of the way that git.git\n> and libgit2 are designed (Unix-only, non-reentrant/cross-platform,\n> reentrant)\n\n(Side note: git actually can be built with MSVC, though the build\nprocess might be unfamiliar.  See compat/vcbuild/README for details.)\n\n> On top of that, the API for the library is not\n> yet stable, so that integration may end up being kind-of-wasted work.\n\nThis is precisely why I want to see attempts at using it starting\nsoon, whether as a student project or not: it would be a bad thing if\ngit reveals assumptions or limitations in the API requiring major\nrework after the API has already solidified.\n\n> So, personally, I don't know anybody interested on mentoring *that*\n> specific task, but I'm certainly interested on mentoring a \"help\n> complete libgit2\" task\n\nSounds good to me. ;-)\n\nThanks for explaining.\nJonathan\n"},{"id":"163136","messageId":"AANLkTi=6huFKCqrdfvjXXfYrd0GaeZKmiEg-9UjipBKK@mail.gmail.com","threadId":"26702","inReplyTo":"AANLkTi=q6mxGQcdb-Gx9t3TZWDRbNpiZV-iyjgd=NrXj@mail.gmail.com","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Vicent Marti","fromEmail":"tanoku@gmail.com","sentAt":"2011-03-10T12:56:39Z","receivedAt":"2011-03-10T12:56:39Z","isPatch":false,"sender":{"key":"tanoku@gmail.com","avatar":"https://gravatar.com/avatar/271386991cb4c2b8f1e1ed1d059f3422cc3485de7a598f65043f70be021d095b?d=mp&s=160"},"body":"Hey,\n\nOn Thu, Mar 10, 2011 at 1:39 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:\n> Speaking of which, how complete is libgit2 compared to git? What are\n> the significant missing pieces?\n\nYou can see the key features we are lacking in the SoC2011 ideas wiki:\n\nhttps://git.wiki.kernel.org/index.php/SoC2011Ideas\n\nCheers,\nVicent\n"},{"id":"163167","messageId":"7vlj0m4vz1.fsf@alter.siamese.dyndns.org","threadId":"26702","inReplyTo":"20110310115549.GA31046@elie","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-03-10T19:27:30Z","receivedAt":"2011-03-10T19:27:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\n>> I think that right now it would be a quite daunting task to start\n>> replacing parts of git.git with libgit2. The architecture changes\n>> required would be quite significant, because of the way that git.git\n>> and libgit2 are designed (Unix-only, non-reentrant/cross-platform,\n>> reentrant)\n\nHow big a performance penalty does libgit2 have to pay to depart from many\n\"we run once and let exit take care of cleaning up after us\" patterns used\nin git.git primarily in order to avoid the housekeeping cost?\n"},{"id":"163214","messageId":"AANLkTinHhHk6U3wTDLUx2f4S17arLWGj4S1NSAw9yM-x@mail.gmail.com","threadId":"26702","inReplyTo":"7vlj0m4vz1.fsf@alter.siamese.dyndns.org","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Vicent Marti","fromEmail":"tanoku@gmail.com","sentAt":"2011-03-11T12:22:25Z","receivedAt":"2011-03-11T12:22:25Z","isPatch":false,"sender":{"key":"tanoku@gmail.com","avatar":"https://gravatar.com/avatar/271386991cb4c2b8f1e1ed1d059f3422cc3485de7a598f65043f70be021d095b?d=mp&s=160"},"body":"Hey,\n\nOn Thu, Mar 10, 2011 at 9:27 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> How big a performance penalty does libgit2 have to pay to depart from many\n> \"we run once and let exit take care of cleaning up after us\" patterns used\n> in git.git primarily in order to avoid the housekeeping cost?\n\nIt's not significant. We try to use custom memory allocation wherever\npossible, and the most complex structures (interdependencies in parsed\nobjects from the DAG) are internally garbage collected, so we don't do\nany unnecessary free's. We try to offset the cost of 'proper' memory\nmanagement by using smarter/more performance tuned algorithms. So far,\nsome stuff ranges from varying degrees of faster-than-git (see: new\nrevision walker, index writing, streaming loose object writes) to\nslightly slower (see object parsing :/).\n\nWe are working on it. Performance is our main concern.\n\nCheers,\nVicent\n"},{"id":"163291","messageId":"20110313171121.GC19763@kytes","threadId":"26702","inReplyTo":"AANLkTi=6huFKCqrdfvjXXfYrd0GaeZKmiEg-9UjipBKK@mail.gmail.com","subject":"Re: Using libgit2 code in git.git as a Google Summer of Code project?","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2011-03-13T17:11:24Z","receivedAt":"2011-03-13T17:11:24Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Hi Vincent,\n\nVicent Marti writes:\n> You can see the key features we are lacking in the SoC2011 ideas wiki:\n> \n> https://git.wiki.kernel.org/index.php/SoC2011Ideas\n\nI thought we should de-couple both ideas and put up the idea of\ngetting libgit2 merged on the wiki too: in the process, I've reworded\nthings a bit. Please revert these changes if you think they're\nundesirable.\n\nThanks.\n\n-- Ram\n"}]}