{"push_id":781249784,"size":22,"distinct_size":22,"ref":"refs/heads/exp","head":"0e5c5125a4bc7bf2eaf4f559a02bf4ce1fb05fbc","before":"943974a2ef623876b688c1b48362e6f07ea444c3","commits":[{"sha":"c1f46e5e0053eca0eae57c174c80f5e594345bb8","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: introduce match_atom_name()\n\nIntroduce match_atom_name() which helps in checking if a particular\natom has a value attached to it or not.\n\nUse it for the %(color:...) atom, and perform an error check when\nno value is given. Write a test for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nThanks-to: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/c1f46e5e0053eca0eae57c174c80f5e594345bb8"},{"sha":"754a5c524da6c39e0e238291f5dd962f4e79949f","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: implement an `align` atom\n\nImplement an `align` atom which left-, middle-, or right-aligns the\ncontent between %(align:...) and %(end).\n\nIt is followed by `:<width>,<position>`, where the `<position>` is\neither left, right or middle and `<width>` is the size of the area\ninto which the content will be placed. If the content between\n%(align:...) and %(end) is more than the width then no alignment is\nperformed. e.g. to align a refname atom to the middle with a total\nwidth of 40 we can do: --format=\"%(align:middle,40)%(refname)%(end)\".\n\nWe have an `at_end` function for each element of the stack which is to\nbe called when the `end` atom is encountered. Using this we implement\nthe align_handler() for the `align` atom, this aligns the final strbuf\nby calling `strbuf_utf8_align()` from utf8.c.\n\nEnsure that quote formatting is performed on the whole of\n%(align:...)...%(end) rather than individual atoms inside.  We skip\nquote formatting for individual atoms when the current stack element\nis handling an %(align:...) atom and perform quote formatting at the\nend when we encounter the %(end) atom.\n\nAdd documentation and tests for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/754a5c524da6c39e0e238291f5dd962f4e79949f"},{"sha":"f5d15eb1a558b3bb231f875c5cb8dde32c8556f2","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: add option to filter out tags, branches and remotes\n\nAdd a function called 'for_each_fullref_in()' to refs.{c,h} which\niterates through each ref for the given path without trimming the path\nand also accounting for broken refs, if mentioned.\n\nAdd 'filter_ref_kind()' in ref-filter.c to check the kind of ref being\nhandled and return the kind to 'ref_filter_handler()', where we\ndiscard refs which we do not need and assign the kind to needed refs.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/f5d15eb1a558b3bb231f875c5cb8dde32c8556f2"},{"sha":"ce9698c0865df84861177036435c8e07ad70b5b2","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: add support for %(contents:lines=X)\n\nIn 'tag.c' we can print N lines from the annotation of the tag using\nthe '-n<num>' option. Copy code from 'tag.c' to 'ref-filter' and\nmodify it to support appending of N lines from the annotation of tags\nto the given strbuf.\n\nImplement %(contents:lines=X) where X lines of the given object are\nobtained.\n\nAdd documentation and test for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/ce9698c0865df84861177036435c8e07ad70b5b2"},{"sha":"aba3d4adac0084fe330f35b890806b293a986009","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: add support to sort by version\n\nAdd support to sort by version using the \"v:refname\" and\n\"version:refname\" option. This is achieved by using the 'versioncmp()'\nfunction as the comparing function for qsort.\n\nThis option is included to support sorting by versions in `git tag -l`\nwhich will eventually be ported to use ref-filter APIs.\n\nAdd documentation and tests for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/aba3d4adac0084fe330f35b890806b293a986009"},{"sha":"bfc47b698b571b3bceb7f12de6d62d9bbe01d35e","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: add option to match literal pattern\n\nSince 'ref-filter' only has an option to match path names add an\noption for plain fnmatch pattern-matching.\n\nThis is to support the pattern matching options which are used in `git\ntag -l` and `git branch -l` where we can match patterns like `git tag\n-l foo*` which would match all tags which has a \"foo*\" pattern.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/bfc47b698b571b3bceb7f12de6d62d9bbe01d35e"},{"sha":"be24b5193975ed2f264800a761e93d746c689652","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"tag.c: use 'ref-filter' data structures\n\nMake 'tag.c' use 'ref-filter' data structures and make changes to\nsupport the new data structures. This is a part of the process\nof porting 'tag.c' to use 'ref-filter' APIs.\n\nThis is a temporary step before porting 'tag.c' to use 'ref-filter'\ncompletely. As this is a temporary step, most of the code\nintroduced here will be removed when 'tag.c' is ported over to use\n'ref-filter' APIs.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/be24b5193975ed2f264800a761e93d746c689652"},{"sha":"a4f6112b6b078b04049fd82d751ff183724e92e5","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"tag.c: use 'ref-filter' APIs\n\nMake 'tag.c' use 'ref-filter' APIs for iterating through refs, sorting\nand printing of refs. This removes most of the code used in 'tag.c'\nreplacing it with calls to the 'ref-filter' library.\n\nMake 'tag.c' use the 'filter_refs()' function provided by 'ref-filter'\nto filter out tags based on the options set.\n\nFor printing tags we use 'show_ref_array_item()' function provided by\n'ref-filter'.\n\nWe improve the sorting option provided by 'tag.c' by using the sorting\noptions provided by 'ref-filter'. This causes the test 'invalid sort\nparameter on command line' in t7004 to fail, as 'ref-filter' throws an\nerror for all sorting fields which are incorrect. The test is changed\nto reflect the same.\n\nModify documentation for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/a4f6112b6b078b04049fd82d751ff183724e92e5"},{"sha":"bf29c84aaa43408fbeeb17f484aa61a54caaf572","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"tag.c: implement '--format' option\n\nImplement the '--format' option provided by 'ref-filter'.\nThis lets the user list tags as per desired format similar\nto the implementation in 'git for-each-ref'.\n\nAdd tests and documentation for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/bf29c84aaa43408fbeeb17f484aa61a54caaf572"},{"sha":"e3aa5db494aee4f3abcb46918222766979b4f280","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"tag.c: implement '--merged' and '--no-merged' options\n\nUse 'ref-filter' APIs to implement the '--merged' and '--no-merged'\noptions into 'tag.c'. The '--merged' option lets the user to only list\ntags merged into the named commit. The '--no-merged' option lets the\nuser to only list tags not merged into the named commit.  If no object\nis provided it assumes HEAD as the object.\n\nAdd documentation and tests for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/e3aa5db494aee4f3abcb46918222766979b4f280"},{"sha":"81317a326504dd592323c5b61139208b4a033fb1","author":{"email":"f21e23168db91f2bd3ec812184a2ac51d05a196a@gmail.com","name":"Karthik Nayak"},"message":"branch: refactor width computation\n\nRemove unnecessary variables from ref_list and ref_item which were\nused for width computation. This is to make ref_item similar to\nref-filter's ref_array_item. This will ensure a smooth port of\nbranch.c to use ref-filter APIs in further patches.\n\nPreviously the maxwidth was computed when inserting the refs into the\nref_list. Now, we obtain the entire ref_list and then compute\nmaxwidth.\n\nBased-on-patch-by: Jeff King <peff@peff.net>\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/81317a326504dd592323c5b61139208b4a033fb1"},{"sha":"fea783aecdfb03bf80e5c72051ea187e9e32eeb8","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch: bump get_head_description() to the top\n\nThis is a preperatory patch for 'roll show_detached HEAD into regular\nref_list'. This patch moves get_head_description() to the top so that\nit can be used in print_ref_item().\n\nBased-on-patch-by: Jeff King <peff@peff.net>\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/fea783aecdfb03bf80e5c72051ea187e9e32eeb8"},{"sha":"a48889a2d346a2660981495b33345f89c3e0b54e","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch: roll show_detached HEAD into regular ref_list\n\nRemove show_detached() and make detached HEAD to be rolled into\nregular ref_list by adding REF_DETACHED_HEAD as a kind of branch and\nsupporting the same in append_ref(). This eliminates the need for an\nextra function and helps in easier porting of branch.c to use\nref-filter APIs.\n\nBefore show_detached() used to check if the HEAD branch satisfies the\n'--contains' option, now that is taken care by append_ref().\n\nBased-on-patch-by: Jeff King <peff@peff.net>\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/a48889a2d346a2660981495b33345f89c3e0b54e"},{"sha":"cc17403f2f4585d2a6a57f0a5102a55bfdb96f84","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch: move 'current' check down to the presentation layer\n\nWe check if given ref is the current branch in print_ref_list(). Move\nthis check to print_ref_item() where it is checked right before\nprinting.\n\nBased-on-patch-by: Jeff King <peff@peff.net>\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/cc17403f2f4585d2a6a57f0a5102a55bfdb96f84"},{"sha":"67c8a1ff6da92b4f910dc49bc19754686dc9a472","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch: drop non-commit error reporting\n\nRemove the error reporting variable to make the code easier to port\nover to using ref-filter APIs. This variable is not required as in\nref-filter we already check for possible errors and report them.\n\nBased-on-patch-by: Jeff King <peff@peff.net>\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/67c8a1ff6da92b4f910dc49bc19754686dc9a472"},{"sha":"d3d3a1f8bd7e1ede33bc9d1fb3c913f4550d36e2","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch.c: use 'ref-filter' data structures\n\nMake 'branch.c' use 'ref-filter' data structures and make changes to\nsupport the new data structures. This is a part of the process of\nporting 'branch.c' to use 'ref-filter' APIs.\n\nThis is a temporary step before porting 'branch.c' to use 'ref-filter'\ncompletely. As this is a temporary step, most of the code introduced\nhere will be removed when 'branch.c' is ported over to use\n'ref-filter' APIs.\n\nMake 'free_array_item()' of ref-filter.c a non static function. This\nis used to free memory allocated to a detached head ref, before we\nprint other refs.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/d3d3a1f8bd7e1ede33bc9d1fb3c913f4550d36e2"},{"sha":"498a5242087926cedb6cee24bab1b84fb65bf7ea","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch.c: use 'ref-filter' APIs\n\nMake 'branch.c' use 'ref-filter' APIs for iterating through refs\nsorting. This removes most of the code used in 'branch.c' replacing it\nwith calls to the 'ref-filter' library.\n\nMake 'branch.c' use the 'filter_refs()' function provided by 'ref-filter'\nto filter out tags based on the options set.\n\nWe provide a sorting option provided for 'branch.c' by using the sorting\noptions provided by 'ref-filter'.\n\nAlso remove the 'ignore' variable from ref_array_item as it was\npreviously used for the '--merged' option and now that is handled by\nref-filter.\n\nThe test t1430 'git branch shows badly named ref' has been changed to\ncheck the stderr for the warning regarding the broken ref. This is\ndone as ref-filter throws a warning for broken refs rather than\ndirectly printing them.\n\nModify documentation and add tests for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/498a5242087926cedb6cee24bab1b84fb65bf7ea"},{"sha":"41ec2359516e5b3bd7062b31861c12d86872c98d","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"branch: add '--points-at' option\n\nAdd the '--points-at' option provided by 'ref-filter'. The option lets\nthe user to list only branches which points at the given object.\n\nAdd documentation and tests for the same.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/41ec2359516e5b3bd7062b31861c12d86872c98d"},{"sha":"307bb0a9404a1aa7ed353efdc761fca7b3e12e2b","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: implement %(if), %(then), and %(else) atoms\n\nImplement %(if), %(then) and %(else) atoms. Used as\n%(if)..%(then)..%(end) or %(if)..%(then)..%(else)..%(end). If there is\nan atom with value or string literal after the %(if) then everything\nafter the %(then) is printed, else if the %(else) atom is used, then\neverything after %(else) is printed. Any value which is not entirely\nwhitespace is considered as true for the %(if)..%(then) condition.\nNesting of this construct is possible.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/307bb0a9404a1aa7ed353efdc761fca7b3e12e2b"},{"sha":"8a4d0929890d680470529476bd6c6721bbe163cd","author":{"email":"8ff1b4c309a2df0913334aaa394995b33aa84454@gmail.com","name":"Karthik Nayak"},"message":"ref-filter: add \"%(objectname:abbrev,X)\" option\n\nAdd support for %(objectname:abbrev,X) where X is a number.\nThis will print the first X characters of an objectname.\nThe minimum value for X is 5. Hence any value lesser than\n5 will default to 5 characters.\n\nMentored-by: Christian Couder <christian.couder@gmail.com>\nMentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>\nSigned-off-by: Karthik Nayak <karthik.188@gmail.com>","distinct":true,"url":"https://api.github.com/repos/KarthikNayak/git/commits/8a4d0929890d680470529476bd6c6721bbe163cd"}]}