+       const char *const git_submodule_helper_usage[] = {
+               N_("git submodule status [--quiet] [--cached] [--recursive] 
[<path>]"),
+               NULL

the manpage over here says

  git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...]

ie. multiple path arguments. Should this usage string be tweaked?

+static void print_status(struct status_cb *info, char state, const char *path,
+                        const struct object_id *oid, const char *displaypath)
+{

could do with a comment. What are the options for the `state` char?

+       if (state == ' ' || state == '+') {
+               struct argv_array get_rev_args = ARGV_ARRAY_INIT;
+
+               argv_array_pushl(&get_rev_args, "get-rev-name",
+                                path, oid_to_hex(oid), NULL);
+               get_rev_name(get_rev_args.argc, get_rev_args.argv,
+                            info->prefix);

since you're not really subprocessing, can't you simply have a

  do_print_rev_name(char *path, char *sha) {
     ..
     printf("\n");
  }

and call that directly? Or call compute_rev_name directly. Then you
don't have to do argv setup here.

Also, the name get_rev_name() is a little unfortunate, since it
doesn't return a name, but rather prints it. Maybe the functions
implementing helper commands could be named like:

  command_get_rev_name

or similar.

Reply via email to