{"thread":{"id":"39499","subject":"[GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","startedAt":"2015-06-02T16:38:57Z","lastAt":"2015-06-04T07:35:22Z","messageCount":5,"participants":["Karthik Nayak","Matthieu Moy","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"262743","messageId":"556DDC21.5050801@gmail.com","threadId":"39499","inReplyTo":null,"subject":"[GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","fromName":"Karthik Nayak","fromEmail":"karthik.188@gmail.com","sentAt":"2015-06-02T16:38:57Z","receivedAt":"2015-06-02T16:38:57Z","isPatch":false,"sender":{"key":"karthik.188@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1786334?v=4"},"body":"Hello All,\n\nAs part of GSoC I'm working on the Unification of 'for-each-ref', 'tag -l'\nand 'branch -l'. I will update the list on my weekly progress in an effort\nto keep everyone updated.\n\nCurrent Progress:\nCurrently I have been working on moving all code from 'for-each-ref' to an\nindependent library called 'ref-filter' which would serve as a common \nlibrary\nfor the unification process. 'for-each-ref' supports printing the commits\nin a specified format and also various sorting optins. This would serve as a\ngood base for porting over these options for 'tag -l' and 'branch -l'.\nI have sent v4 of my patch to the list and it can be found here:\nhttp://article.gmane.org/gmane.comp.version-control.git/270293\nI have been working on this after suggested changes, will post the next\nversion soon.\n\nWork In progress:\nYou can follow my current progress on Github:\nhttps://github.com/KarthikNayak/git\nFor now I got the '--points-at' option (prints only refs pointing to given\ncommit) and also '--merged' option (prints only refs whose heads are \nreachable\nfrom the given commit). These shall be forwarded to the list soon.\n\nWhat to do next:\nImplement '--contains' option, but the problem to be faced here is that both\n'tag -l' and 'branch -l' have different implementations of the '--contains'\noptions.  Matthieu Moy suggested that I work on the unification of these \ncommands\nlet both the implementations stay where the user can select the \nimplementation\nto be used and that I may work on unification of these two algorithms after\nthe main objective of GSoC is met.\n\nAny suggestion/changes are welcome.\n\n-- \nRegards,\nKarthik\n"},{"id":"262873","messageId":"vpqh9qoepv1.fsf@anie.imag.fr","threadId":"39499","inReplyTo":"556DDC21.5050801@gmail.com","subject":"Re: [GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2015-06-03T16:08:50Z","receivedAt":"2015-06-03T16:08:50Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Karthik Nayak <karthik.188@gmail.com> writes:\n\n> Matthieu Moy suggested that I work on the unification of these\n> commands let both the implementations stay where the user can select\n> the implementation to be used\n\nJust to be clear: my advice is the above with \"user\" = \"caller of the\nAPI\", not \"human being using Git\". In other words, \"git branch\n--contains\" and \"git tag --contains\" would still be using two different\nalgorithms, but the user wouldn't notice (except for performance).\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"262876","messageId":"556F2E5A.90700@gmail.com","threadId":"39499","inReplyTo":"vpqh9qoepv1.fsf@anie.imag.fr","subject":"Re: [GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","fromName":"Karthik Nayak","fromEmail":"karthik.188@gmail.com","sentAt":"2015-06-03T16:42:02Z","receivedAt":"2015-06-03T16:42:02Z","isPatch":false,"sender":{"key":"karthik.188@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1786334?v=4"},"body":"On 06/03/2015 09:38 PM, Matthieu Moy wrote:\n> Karthik Nayak <karthik.188@gmail.com> writes:\n>\n>> Matthieu Moy suggested that I work on the unification of these\n>> commands let both the implementations stay where the user can select\n>> the implementation to be used\n>\n> Just to be clear: my advice is the above with \"user\" = \"caller of the\n> API\", not \"human being using Git\". In other words, \"git branch\n> --contains\" and \"git tag --contains\" would still be using two different\n> algorithms, but the user wouldn't notice (except for performance).\n>\n\nThanks for clearing that out, I should have said \"caller of the API.\"\n\n-- \nRegards,\nKarthik\n"},{"id":"262919","messageId":"20150603210833.GA32181@peff.net","threadId":"39499","inReplyTo":"vpqh9qoepv1.fsf@anie.imag.fr","subject":"Re: [GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-06-03T21:08:34Z","receivedAt":"2015-06-03T21:08:34Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jun 03, 2015 at 06:08:50PM +0200, Matthieu Moy wrote:\n\n> Karthik Nayak <karthik.188@gmail.com> writes:\n> \n> > Matthieu Moy suggested that I work on the unification of these\n> > commands let both the implementations stay where the user can select\n> > the implementation to be used\n> \n> Just to be clear: my advice is the above with \"user\" = \"caller of the\n> API\", not \"human being using Git\". In other words, \"git branch\n> --contains\" and \"git tag --contains\" would still be using two different\n> algorithms, but the user wouldn't notice (except for performance).\n\nYeah, I think that is sensible. It should be a \"feature\" of the\nref-filter that can hopefully go away one day (when we have a sensible\nimplementation that works for both; this is something I've been meaning\nto push forward, but Karthik should not have to wait on me).\n\n-Peff\n"},{"id":"262931","messageId":"556FFFBA.4030004@gmail.com","threadId":"39499","inReplyTo":"20150603210833.GA32181@peff.net","subject":"Re: [GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l'","fromName":"Karthik Nayak","fromEmail":"karthik.188@gmail.com","sentAt":"2015-06-04T07:35:22Z","receivedAt":"2015-06-04T07:35:22Z","isPatch":false,"sender":{"key":"karthik.188@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1786334?v=4"},"body":"On 06/04/2015 02:38 AM, Jeff King wrote:\n> On Wed, Jun 03, 2015 at 06:08:50PM +0200, Matthieu Moy wrote:\n>\n> > Karthik Nayak <karthik.188@gmail.com> writes:\n> >\n> >> Matthieu Moy suggested that I work on the unification of these\n> >> commands let both the implementations stay where the user can select\n> >> the implementation to be used\n> >\n> > Just to be clear: my advice is the above with \"user\" = \"caller of the\n> > API\", not \"human being using Git\". In other words, \"git branch\n> > --contains\" and \"git tag --contains\" would still be using two different\n> > algorithms, but the user wouldn't notice (except for performance).\n>\n> Yeah, I think that is sensible. It should be a \"feature\" of the\n> ref-filter that can hopefully go away one day (when we have a sensible\n> implementation that works for both; this is something I've been meaning\n> to push forward, but Karthik should not have to wait on me).\n>\n> -Peff\n>\nSounds good, Thanks Jeff.\n\n-- \nRegards,\nKarthik\n"}]}