All of lore.kernel.org
 help / color / mirror / Atom feed
From: karthik nayak <karthik.188@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH v3 3/3] cat-file: add "--literally" option
Date: Mon, 09 Mar 2015 18:23:29 +0530	[thread overview]
Message-ID: <54FD97C9.40909@gmail.com> (raw)
In-Reply-To: <CAPig+cTWJcWuhbgbaHWYcFxXhCEN-ou3g=AP6k1KJ-+hgN_+Dg@mail.gmail.com>



On 03/09/2015 04:20 AM, Eric Sunshine wrote:
> On Thu, Mar 5, 2015 at 1:19 PM, Karthik Nayak <karthik.188@gmail.com> wrote:
>> made changes to "cat-file" to include a "--literally"
>
> Write in imperative mood: "Teach cat-file a --literally option..."
>
>> option which prints the type of the object without any
>> complaints.
>
> Unfortunately, this explanation is quite lacking. What "complaints"?
> What problem is --literally trying to solve? To answer these
> questions, you will probably want to say something about the sort of
> object which requires --literally, and how cat-file fails or behaves
> without it.
>
>> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
>> ---
>> diff --git a/builtin/cat-file.c b/builtin/cat-file.c
>> index df99df4..60b9ec4 100644
>> --- a/builtin/cat-file.c
>> +++ b/builtin/cat-file.c
>> @@ -323,7 +332,7 @@ static int batch_objects(struct batch_options *opt)
>>   }
>>
>>   static const char * const cat_file_usage[] = {
>> -       N_("git cat-file (-t | -s | -e | -p | <type> | --textconv) <object>"),
>> +       N_("git cat-file (-t|-s|-e|-p|<type>|--textconv|-t --literally) <object>"),
>
> This might read more naturally as:
>
>      git cat-file (-t [--literally] | -s | -e | -p | <type> |
> --textconv) <object>
>
> rather than repeating the -t option.
>
>>          N_("git cat-file (--batch | --batch-check) < <list-of-objects>"),
>>          NULL
>>   };
>> @@ -369,6 +379,8 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
>>                  OPT_SET_INT('p', NULL, &opt, N_("pretty-print object's content"), 'p'),
>>                  OPT_SET_INT(0, "textconv", &opt,
>>                              N_("for blob objects, run textconv on object's content"), 'c'),
>> +               OPT_BOOL( 0, "literally", &literally,
>> +                         N_("show the type of the given loose object, use for debugging")),
>
> Taking other help strings into account, there is no need for the
> long-winded "type of the given loose object" when "loose object's
> type" will suffice. More importantly, thought, you should try to say
> something about how --literally is actually useful, such as for
> "broken" objects or objects not of a known type.
>
>>                  { OPTION_CALLBACK, 0, "batch", &batch, "format",
>>                          N_("show info and content of objects fed from the standard input"),
>>                          PARSE_OPT_OPTARG, batch_option_callback },
>> @@ -380,7 +392,7 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
>>
>>          git_config(git_cat_file_config, NULL);
>>
>> -       if (argc != 3 && argc != 2)
>> +       if (argc != 3 && argc != 2 && argc != 4)
>
> Perhaps it's time to rephrase this as "if (argc < 2 || argc > 4)"?
>
>>                  usage_with_options(cat_file_usage, options);
>>
>>          argc = parse_options(argc, argv, prefix, options, cat_file_usage, 0);
>> @@ -405,5 +417,10 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
>>          if (batch.enabled)
>>                  return batch_objects(&batch);
>>
>> -       return cat_one_file(opt, exp_type, obj_name);
>> +       if (literally && opt == 't')
>> +               return cat_one_file(opt, exp_type, obj_name, literally);
>> +       else if (literally)
>> +               usage_with_options(cat_file_usage, options);
>
> I realize that existing cases in cat-file are already guilty of this
> transgression, but it is quite annoying when a program merely spits
> out its usage statement without actually telling you what you did
> wrong; and it's often difficult to figure out why it was rejected. It
> would be much more helpful in a case like this to state explicitly
> that --literally was given without -t. (But perhaps such a
> "friendliness" change is fodder for a separate patch.)
>
>> +
>> +       return cat_one_file(opt, exp_type, obj_name, literally);
>>   }
>> --
>> 2.3.1.167.g7f4ba4b.dirty

Thanks for the feedback.
Will fix everything you stated in the next patch.

      reply	other threads:[~2015-03-09 12:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-05 18:16 [PATCH v3 0/3] cat-file: add "--literally" option karthik nayak
2015-03-05 18:18 ` [PATCH v3 1/3] cache: modify for "cat-file --literally -t" Karthik Nayak
2015-03-08 22:25   ` Eric Sunshine
2015-03-09 12:56     ` karthik nayak
2015-03-05 18:19 ` [PATCH v3 2/3] sha1_file: implement changes " Karthik Nayak
2015-03-05 23:45   ` Junio C Hamano
2015-03-06 17:41     ` karthik nayak
2015-03-06 19:28       ` Junio C Hamano
2015-03-07 10:04         ` karthik nayak
2015-03-08  8:09           ` Junio C Hamano
2015-03-08  8:48             ` karthik nayak
2015-03-08  9:03               ` Junio C Hamano
2015-03-08 10:49                 ` karthik nayak
2015-03-08 19:09                   ` Junio C Hamano
2015-03-09 13:08                     ` karthik nayak
2015-03-05 18:19 ` [PATCH v3 3/3] cat-file: add "--literally" option Karthik Nayak
2015-03-08 22:50   ` Eric Sunshine
2015-03-09 12:53     ` karthik nayak [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54FD97C9.40909@gmail.com \
    --to=karthik.188@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.