# [PATCH] remote: update builtin usage

2 messages from 2012-04-07 to 2012-04-09. Participants: Michael Schubert, Junio C Hamano.
Thread: https://gitlist.dev/t/30180

## Michael Schubert, 2012-04-07 14:25

Subject: [PATCH] remote: update builtin usage
Message-ID: <4F804E70.2020106@elegosoft.com>
URL: https://gitlist.dev/e/4F804E70.2020106%40elegosoft.com

```
Add missing options "--tags|--no-tags" and "--push".

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
---
 builtin/remote.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/remote.c b/builtin/remote.c
index fec92bc..b5645fe 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -9,7 +9,7 @@
 
 static const char * const builtin_remote_usage[] = {
 	"git remote [-v | --verbose]",
-	"git remote add [-t <branch>] [-m <master>] [-f] [--mirror=<fetch|push>] <name> <url>",
+	"git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--mirror=<fetch|push>] <name> <url>",
 	"git remote rename <old> <new>",
 	"git remote rm <name>",
 	"git remote set-head <name> (-a | -d | <branch>)",
@@ -17,7 +17,7 @@ static const char * const builtin_remote_usage[] = {
 	"git remote prune [-n | --dry-run] <name>",
 	"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]",
 	"git remote set-branches [--add] <name> <branch>...",
-	"git remote set-url <name> <newurl> [<oldurl>]",
+	"git remote set-url [--push] <name> <newurl> [<oldurl>]",
 	"git remote set-url --add <name> <newurl>",
 	"git remote set-url --delete <name> <url>",
 	NULL
-- 
1.7.10.dirty

```

## Junio C Hamano, 2012-04-09 22:06

Subject: Re: [PATCH] remote: update builtin usage
Message-ID: <7vty0stv9z.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vty0stv9z.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4F804E70.2020106@elegosoft.com>

```
Michael Schubert <mschub@elegosoft.com> writes:

> Add missing options "--tags|--no-tags" and "--push".
>
> Signed-off-by: Michael Schubert <mschub@elegosoft.com>
> ---
>  builtin/remote.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/remote.c b/builtin/remote.c
> index fec92bc..b5645fe 100644
> --- a/builtin/remote.c
> +++ b/builtin/remote.c
> @@ -9,7 +9,7 @@
>  
>  static const char * const builtin_remote_usage[] = {
>  	"git remote [-v | --verbose]",
> -	"git remote add [-t <branch>] [-m <master>] [-f] [--mirror=<fetch|push>] <name> <url>",
> +	"git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--mirror=<fetch|push>] <name> <url>",
>  	"git remote rename <old> <new>",
>  	"git remote rm <name>",
>  	"git remote set-head <name> (-a | -d | <branch>)",
> @@ -17,7 +17,7 @@ static const char * const builtin_remote_usage[] = {
>  	"git remote prune [-n | --dry-run] <name>",
>  	"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]",
>  	"git remote set-branches [--add] <name> <branch>...",
> -	"git remote set-url <name> <newurl> [<oldurl>]",
> +	"git remote set-url [--push] <name> <newurl> [<oldurl>]",
>  	"git remote set-url --add <name> <newurl>",
>  	"git remote set-url --delete <name> <url>",
>  	NULL


Hrm.  While this may not be _wrong_ per-se, it strikes me odd that
builtin_remote_usage[] is more or less a superset of the subcommand
specific usage text, e.g. builtin_remote_seturl_usage[], etc., but still
need to be manually defined like this.  That always leaves a risk that the
descriptions would drift apart between the two places.

For example, builtin_remote_setbranches_usage[] has these two:

static const char * const builtin_remote_setbranches_usage[] = {
        "git remote set-branches <name> <branch>...",
        "git remote set-branches --add <name> <branch>...",
	NULL
};

where the above has only one, with an optional "[--add]".

There must be a better way to do this.

```
