Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
On 06/10/2015 01:09 PM, Matthieu Moy wrote: Junio C Hamano gits...@pobox.com writes: Don't do that. Always start your function like so: type funcname(args) { declarations; first statement; ... Hint: create a file config.mak with this content: $ cat config.mak CFLAGS += -Wdeclaration-after-statement -Wall -Werror and gcc will prevent you from doing this mistake again. Thanks a lot! Your tips are brilliant. -- Regards, Karthik -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
Junio C Hamano gits...@pobox.com writes: Don't do that. Always start your function like so: type funcname(args) { declarations; first statement; ... Hint: create a file config.mak with this content: $ cat config.mak CFLAGS += -Wdeclaration-after-statement -Wall -Werror and gcc will prevent you from doing this mistake again. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
On 06/10/2015 12:37 AM, Junio C Hamano wrote: Karthik Nayak karthik@gmail.com writes: @@ -54,7 +59,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) /* for warn_ambiguous_refs */ git_config(git_default_config, NULL); -memset(ref_cbdata, 0, sizeof(ref_cbdata)); I cannot quite see how this change relates to the addition of the new option. Well if we memset() after calling parse_opt_points_at(), we loose all the information we would have obtained. So the memset() is moved to an earlier location. which I did not see, because I expected the code to follow the usual no decl-after-statement pattern. IOW int maxcount = 0, quote_style = 0; struct ref_filter_cbdata ref_cbdata; +memset(ref_cbdata, 0, sizeof(ref_cbdata)); struct option opts[] = { OPT_BIT('s', shell, quote_style, Don't do that. Always start your function like so: type funcname(args) { declarations; first statement; ... with no blank line within declarations block and a blank line after the declarations block. Will do, thanks! -- Regards, Karthik -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
On 06/09/2015 12:42 AM, Junio C Hamano wrote: Is this intended? I would have expected if I did git for-each-ref --points-at master I would get refs/heads/master and any other refs that exactly points at that commit. Thats to be changed, thanks! FIELD NAMES --- diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c index 4d2d024..b9d180a 100644 --- a/builtin/for-each-ref.c +++ b/builtin/for-each-ref.c @@ -7,6 +7,7 @@ static char const * const for_each_ref_usage[] = { N_(git for-each-ref [options] [pattern]), + N_(git for-each-ref [--points-at object]), NULL }; @@ -17,6 +18,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) struct ref_sorting *sorting = NULL, **sorting_tail = sorting; int maxcount = 0, quote_style = 0; struct ref_filter_cbdata ref_cbdata; + memset(ref_cbdata, 0, sizeof(ref_cbdata)); struct option opts[] = { OPT_BIT('s', shell, quote_style, @@ -33,6 +35,9 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) OPT_STRING( 0 , format, format, N_(format), N_(format to use for the output)), OPT_CALLBACK(0 , sort, sorting_tail, N_(key), N_(field name to sort on), parse_opt_ref_sorting), + OPT_CALLBACK(0, points-at, ref_cbdata.filter.points_at, +N_(object), N_(print only tags of the object), +parse_opt_points_at), OPT_END(), }; @@ -54,7 +59,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) /* for warn_ambiguous_refs */ git_config(git_default_config, NULL); - memset(ref_cbdata, 0, sizeof(ref_cbdata)); I cannot quite see how this change relates to the addition of the new option. Well if we memset() after calling parse_opt_points_at(), we loose all the information we would have obtained. So the memset() is moved to an earlier location. -- Regards, Karthik -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
Karthik Nayak karthik@gmail.com writes: @@ -54,7 +59,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) /* for warn_ambiguous_refs */ git_config(git_default_config, NULL); - memset(ref_cbdata, 0, sizeof(ref_cbdata)); I cannot quite see how this change relates to the addition of the new option. Well if we memset() after calling parse_opt_points_at(), we loose all the information we would have obtained. So the memset() is moved to an earlier location. which I did not see, because I expected the code to follow the usual no decl-after-statement pattern. IOW int maxcount = 0, quote_style = 0; struct ref_filter_cbdata ref_cbdata; +memset(ref_cbdata, 0, sizeof(ref_cbdata)); struct option opts[] = { OPT_BIT('s', shell, quote_style, Don't do that. Always start your function like so: type funcname(args) { declarations; first statement; ... with no blank line within declarations block and a blank line after the declarations block. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
On 06/08/2015 11:05 PM, Matthieu Moy wrote: Karthik Nayak karthik@gmail.com writes: Add the '--points-at' option provided by 'ref-filter'. The option lets the user to pick only refs which point to a particular commit. Add Documentation for the same. ... but no test? No haven't written tests, this was just to ensure if the way this is moving forth is correct. -- Regards, Karthik -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
Karthik Nayak karthik@gmail.com writes: Add the '--points-at' option provided by 'ref-filter'. The option lets the user to pick only refs which point to a particular commit. Add Documentation for the same. Based-on-patch-by: Jeff King p...@peff.net Mentored-by: Christian Couder christian.cou...@gmail.com Mentored-by: Matthieu Moy matthieu@grenoble-inp.fr Signed-off-by: Karthik Nayak karthik@gmail.com --- Documentation/git-for-each-ref.txt | 3 +++ builtin/for-each-ref.c | 6 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt index 7f8d9a5..e9f6a8a 100644 --- a/Documentation/git-for-each-ref.txt +++ b/Documentation/git-for-each-ref.txt @@ -10,6 +10,7 @@ SYNOPSIS [verse] 'git for-each-ref' [--count=count] [--shell|--perl|--python|--tcl] [(--sort=key)...] [--format=format] [pattern...] +[--points-at object] DESCRIPTION --- @@ -62,6 +63,8 @@ OPTIONS the specified host language. This is meant to produce a scriptlet that can directly be `eval`ed. +--points-at object:: + Only list tags of the given object. Is this intended? I would have expected if I did git for-each-ref --points-at master I would get refs/heads/master and any other refs that exactly points at that commit. FIELD NAMES --- diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c index 4d2d024..b9d180a 100644 --- a/builtin/for-each-ref.c +++ b/builtin/for-each-ref.c @@ -7,6 +7,7 @@ static char const * const for_each_ref_usage[] = { N_(git for-each-ref [options] [pattern]), + N_(git for-each-ref [--points-at object]), NULL }; @@ -17,6 +18,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) struct ref_sorting *sorting = NULL, **sorting_tail = sorting; int maxcount = 0, quote_style = 0; struct ref_filter_cbdata ref_cbdata; + memset(ref_cbdata, 0, sizeof(ref_cbdata)); struct option opts[] = { OPT_BIT('s', shell, quote_style, @@ -33,6 +35,9 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) OPT_STRING( 0 , format, format, N_(format), N_(format to use for the output)), OPT_CALLBACK(0 , sort, sorting_tail, N_(key), N_(field name to sort on), parse_opt_ref_sorting), + OPT_CALLBACK(0, points-at, ref_cbdata.filter.points_at, + N_(object), N_(print only tags of the object), + parse_opt_points_at), OPT_END(), }; @@ -54,7 +59,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) /* for warn_ambiguous_refs */ git_config(git_default_config, NULL); - memset(ref_cbdata, 0, sizeof(ref_cbdata)); I cannot quite see how this change relates to the addition of the new option. ref_cbdata.filter.name_patterns = argv; filter_refs(for_each_rawref, ref_cbdata); -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option
Karthik Nayak karthik@gmail.com writes: Add the '--points-at' option provided by 'ref-filter'. The option lets the user to pick only refs which point to a particular commit. Add Documentation for the same. ... but no test? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html