Re: [PATCH] remote: unify main and subcommand usage strings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/11/3 Jiang Xin <worldhello.net@xxxxxxxxx>:
> 2013/11/3 Thomas Rast <tr@xxxxxxxxxxxxx>:
>> Note that this patch changes the usage strings for the following
>> subcommands:
>
> Differences of git-remote usages after applied your patch.
>
> diff -u before/git-remote-add-usage after/git-remote-add-usage
> --- before/git-remote-add-usage 2013-11-03 15:10:06.000000000 +0800
> +++ after/git-remote-add-usage 2013-11-03 15:11:32.000000000 +0800
> @@ -1,4 +1,4 @@
> -usage: git remote add [<options>] <name> <url>
> +usage: git remote add [-t <branch>] [-m <master>] [-f]
> [--tags|--no-tags] [--mirror=<fetch|push>] <name> <url>
>
>      -f, --fetch           fetch the remote branches
>      --tags                import all tags and associated objects when fetching
>
> diff -u before/git-remote-prune-usage after/git-remote-prune-usage
> --- before/git-remote-prune-usage 2013-11-03 15:10:06.000000000 +0800
> +++ after/git-remote-prune-usage 2013-11-03 15:11:32.000000000 +0800
> @@ -1,4 +1,4 @@
> -usage: git remote prune [<options>] <name>
> +usage: git remote prune [-n | --dry-run] <name>
>
>      -n, --dry-run         dry run
>
> diff -u before/git-remote-set-branches-usage after/git-remote-set-branches-usage
> --- before/git-remote-set-branches-usage 2013-11-03 15:10:06.000000000 +0800
> +++ after/git-remote-set-branches-usage 2013-11-03 15:11:32.000000000 +0800
> @@ -1,5 +1,4 @@
> -usage: git remote set-branches <name> <branch>...
> -   or: git remote set-branches --add <name> <branch>...
> +usage: git remote set-branches [--add] <name> <branch>...
>
>      --add                 add branch
>
> diff -u before/git-remote-show-usage after/git-remote-show-usage
> --- before/git-remote-show-usage 2013-11-03 15:10:06.000000000 +0800
> +++ after/git-remote-show-usage 2013-11-03 15:11:32.000000000 +0800
> @@ -1,4 +1,4 @@
> -usage: git remote show [<options>] <name>
> +usage: git remote [-v | --verbose] show [-n] <name>
>
>      -n                    do not query remotes
>
> diff -u before/git-remote-update-usage after/git-remote-update-usage
> --- before/git-remote-update-usage 2013-11-03 15:10:06.000000000 +0800
> +++ after/git-remote-update-usage 2013-11-03 15:11:32.000000000 +0800
> @@ -1,4 +1,4 @@
> -usage: git remote update [<options>] [<group> | <remote>]...
> +usage: git remote [-v | --verbose] update [-p | --prune] [(<group> |
> <remote>)...]
>
>      -p, --prune           prune remotes after fetching
>

In order to get the differences of git-remote usages, I write a script.

    # SCRIPT to save git remote usage in files.
    for cmd in add set-head show prune update set-branches set-url; do
            git remote $cmd -h > $DIR/git-remote-$cmd-usage
    done
    git remote -h > $DIR/git-remote-usage
    git remote remove  > $DIR/git-remote-remove-usage 2>&1
    git remote rename  > $DIR/git-remote-rename-usage  2>&1

Then I find two subcommands (remove and rename) are strange.

 * All other subcommands output usages to STDIN, but subcommands
    "remove" and "rename" send their usages to STDERR.

 * I can get the help message of all other subcommands using:
   "git remote <subcmd> -h", but not "git remote rm -h"

        $ git remote rm -h
        error: Could not remove config section 'remote.-h'

Later I know it's a side-effect that all other subcommands could
print usages if provide a unkown "-h/--help" option.

What if add a parse_options call for both "rm" and "mv" functions
in builtin/remote.c?

diff --git a/builtin/remote.c b/builtin/remote.c
index 2f6366a..171d1a8 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -651,6 +651,8 @@ static int mv(int argc, const char **argv)
        struct rename_info rename;
        int i, refspec_updated = 0;

+       argc = parse_options(argc, argv, NULL, options,
+                            builtin_remote_rename_usage, 0);
        if (argc != 3)
                usage_with_options(builtin_remote_rename_usage, options);

@@ -808,6 +810,8 @@ static int rm(int argc, const char **argv)
        cb_data.skipped = &skipped;
        cb_data.keep = &known_remotes;

+       argc = parse_options(argc, argv, NULL, options,
+                            builtin_remote_rm_usage,0);
        if (argc != 2)
                usage_with_options(builtin_remote_rm_usage, options);


-- 
Jiang Xin
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]