Re: [RFC/PATCH 3/9] for-each-ref: add '--points-at' option

2015-06-10 Thread Karthik Nayak

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

2015-06-10 Thread Matthieu Moy
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

2015-06-10 Thread Karthik Nayak

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

2015-06-09 Thread Karthik Nayak

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

2015-06-09 Thread Junio C Hamano
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

2015-06-08 Thread Karthik Nayak

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

2015-06-08 Thread Junio C Hamano
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

2015-06-08 Thread Matthieu Moy
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