Re: [PATCH] branch: add -u as a shortcut for --set-upstream

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

 



Hi Carlos,

Carlos Martín Nieto wrote:

> Add this shortcut just like git-push has it.
[...]
> --- a/builtin/branch.c
> +++ b/builtin/branch.c
> @@ -724,7 +724,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
>  		OPT__QUIET(&quiet, "suppress informational messages"),
>  		OPT_SET_INT('t', "track",  &track, "set up tracking mode (see git-pull(1))",
>  			BRANCH_TRACK_EXPLICIT),
> -		OPT_SET_INT( 0, "set-upstream",  &track, "change upstream info",
> +		OPT_SET_INT('u', "set-upstream",  &track, "change upstream info",
>  			BRANCH_TRACK_OVERRIDE),

I think this is a bad idea.  The --set-upstream option is confusing:

	$ git branch --set-upstream=foo
	error: option 'set-upstream' takes no value
	$ ???

-u to set the corresponding upstream branch at the same time as
creating a branch, analagous to "git push -u" might seem intuitive:

	# create foo branch, setting its upstream at the same time
	git branch -u foo origin/foo

But that is what --track does and is not what --set-upstream is for.

Unlike --track, I don't think --set-upstream is a common enough
operation to deserve a one-letter synonym.

Instead, I'd suggest the following changes:

 1) Add support for

	# change upstream info
	git branch --set-upstream=origin/foo foo

    for existing branches only.

 2) Introduce an --unset-upstream option which removes the
    "corresponding upstream branch" configuration for an existing
    branch.

 3) Warn on

	# acts just like --track
	git branch --set-upstream foo origin/foo

    for branches that do not exist yet.  Plan to make this a hard
    error in the future.

 4) Warn on

	# sets upstream for "foo" to the current branch
	git branch --set-upstream foo

    and plan to make it a hard error in the future.

 5) Warn on

	git branch --set-upstream origin/foo foo

  which is almost certainly a typo for

	git branch --set-upstream=origin/foo foo

 6) Perhaps, make -u a synonym for -t for consistency with "git push".

What do you think?
Jonathan
--
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]