From: Junio C Hamano <gitster@pobox.com>
To: Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v4 1/1] push: make 'set-upstream' have dafault arguments
Date: Mon, 03 Jan 2022 19:46:42 -0800 [thread overview]
Message-ID: <xmqqy23wduxp.fsf@gitster.g> (raw)
In-Reply-To: 20220101143748.2582-2-chakrabortyabhradeep79@gmail.com
Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com> writes:
> Teach "git push -u" not to require repository and refspec. When
> the user do not give what repository to push to, or which
> branch(es) to push, behave as if the default remote repository
> and a refspec (depending on the "push.default" configuration)
> are given.
That means if the user says push.default==nothing, we should error
out "git push -u" as before, but that is not what the change to
setup_default_push_refspecs() function does, is it?
> -static void setup_default_push_refspecs(struct remote *remote)
> +static void setup_default_push_refspecs(struct remote *remote, int flags)
> {
> struct branch *branch;
> const char *dst;
> int same_remote;
> + int is_default_u = (flags & TRANSPORT_PUSH_SET_UPSTREAM);
>
> switch (push_default) {
> case PUSH_DEFAULT_MATCHING:
> @@ -214,6 +215,8 @@ static void setup_default_push_refspecs(struct remote *remote)
> return;
>
> case PUSH_DEFAULT_NOTHING:
> + if (is_default_u)
> + break;
> die(_("You didn't specify any refspecs to push, and "
> "push.default is \"nothing\"."));
> return;
> @@ -234,11 +237,15 @@ static void setup_default_push_refspecs(struct remote *remote)
> case PUSH_DEFAULT_SIMPLE:
> if (!same_remote)
> break;
> + if (is_default_u)
> + break;
> if (strcmp(branch->refname, get_upstream_ref(branch, remote->name)))
> die_push_simple(branch, remote);
> break;
>
> case PUSH_DEFAULT_UPSTREAM:
> + if (is_default_u)
> + break;
> if (!same_remote)
> die(_("You are pushing to remote '%s', which is not the upstream of\n"
> "your current branch '%s', without telling me what to push\n"
So, I am not sure if many of the above changes are sensible. The
first one certainly does not sound like sensible.
> diff --git a/t/t5523-push-upstream.sh b/t/t5523-push-upstream.sh
> index fdb4292056..c2d11c3f2a 100755
> --- a/t/t5523-push-upstream.sh
> +++ b/t/t5523-push-upstream.sh
> @@ -60,6 +60,86 @@ test_expect_success 'push -u :topic_2' '
> check_config topic_2 upstream refs/heads/other2
> '
>
> +default_u_setup() {
Style. (cf. Documentation/CodingGuildelines).
> + git checkout main &&
> + test_might_fail git branch --unset-upstream &&
> + test_config push.default $1 &&
> + test_config remote.pushDefault upstream
> +}
> +
> +check_empty_config() {
Likewise.
> + test_expect_code 1 git config "branch.$1.remote" &&
> + test_expect_code 1 git config "branch.$1.merge"
> +}
> +
> +for i in simple current upstream nothing
> +do
> + test_expect_success 'push -u with push.default=$i' '
> + default_u_setup $i &&
> + git push -u &&
> + check_config main upstream refs/heads/main &&
> + git push -u upstream main:other &&
> + git push -u &&
> + check_config main upstream refs/heads/main
> + '
> +
> + test_expect_success 'push -u -f with push.default=$i' '
> + default_u_setup $i &&
> + git push -u -f &&
> + check_config main upstream refs/heads/main
> + '
> +done
> +
> +for i in simple current upstream nothing matching
> +do
> + test_expect_success 'push -u --prune with push.default=$i' '
> + default_u_setup $i &&
> + git push upstream main:test_u215 &&
> + git push -u --prune >out &&
> + check_config main upstream refs/heads/main &&
> + test_i18ngrep "[deleted]" out &&
> + test_i18ngrep ! "Branch '"'"'test_u215'"'"' set up to track" out
> + '
> +
> + test_expect_success 'push -u --mirror with push.default=$i' '
> + default_u_setup $i &&
> + test_might_fail git branch mirror1 &&
> + test_might_fail git branch mirror2 &&
> + git push -u --mirror &&
> + check_config main upstream refs/heads/main &&
> + check_config mirror1 upstream refs/heads/mirror1 &&
> + check_config mirror2 upstream refs/heads/mirror2
> + '
> +done
> +
> +for i in '' '-f'
> +do
> +
> + test_expect_success 'push -u $i with push.default=matching' '
Doesn't $i show in the output as-is here? Quote the test title in
double-quotes, while using single-qoutes around the test body.
> + default_u_setup matching &&
> + test_might_fail git branch test_u &&
> + test_might_fail git branch test_u2 &&
> + git push upstream main:test_u2 &&
> + git push -u $i &&
> + check_config main upstream refs/heads/main &&
> + check_config test_u2 upstream refs/heads/test_u2 &&
> + check_empty_config test_u
> + '
> +done
> +
next prev parent reply other threads:[~2022-01-04 3:46 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-02 14:43 [RFC PATCH 0/1] making --set-upstream have default arguments Abhradeep Chakraborty
2021-12-02 14:43 ` [RFC PATCH 1/1] push: make '-u' " Abhradeep Chakraborty
2021-12-02 18:24 ` Junio C Hamano
2021-12-03 8:14 ` Abhradeep Chakraborty
2021-12-03 17:29 ` Junio C Hamano
2021-12-03 19:27 ` Abhradeep Chakraborty
2021-12-03 11:32 ` [RFC PATCH 0/1] making --set-upstream " Philip Oakley
2021-12-03 16:03 ` Abhradeep Chakraborty
2021-12-03 16:46 ` Philip Oakley
2021-12-03 17:28 ` Abhradeep Chakraborty
2021-12-07 18:22 ` [PATCH v2 " Abhradeep Chakraborty
2021-12-07 18:23 ` [PATCH v2 1/1] push: make '-u' " Abhradeep Chakraborty
2021-12-07 22:14 ` Eric Sunshine
2021-12-08 6:12 ` [PATCH v2 1/1] push: make '-u' have default argument Abhradeep Chakraborty
2021-12-09 10:15 ` [PATCH v3 0/1] making --set-upstream have default arguments Abhradeep Chakraborty
2021-12-09 10:15 ` [PATCH v3 1/1] push: make '-u' " Abhradeep Chakraborty
2022-01-01 14:37 ` [PATCH v4 0/1] making --set-upstream " Abhradeep Chakraborty
2022-01-01 14:37 ` [PATCH v4 1/1] push: make 'set-upstream' have dafault arguments Abhradeep Chakraborty
2022-01-04 3:46 ` Junio C Hamano [this message]
2022-01-04 13:28 ` Abhradeep Chakraborty
2022-01-04 20:35 ` Junio C Hamano
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=xmqqy23wduxp.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=chakrabortyabhradeep79@gmail.com \
--cc=git@vger.kernel.org \
/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.