git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Alex Henrie <alexhenrie24@gmail.com>
Cc: git@vger.kernel.org, rcdailey.lists@gmail.com, newren@gmail.com,
	rsbecker@nexbridge.com, annulen@yandex.ru, tytso@mit.edu
Subject: Re: [PATCH v4] pull: warn if the user didn't say whether to rebase or to merge
Date: Thu, 05 Mar 2020 10:30:16 -0800	[thread overview]
Message-ID: <xmqqk13y4ptz.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <xmqq4kv45995.fsf@gitster-ct.c.googlers.com> (Junio C. Hamano's message of "Wed, 04 Mar 2020 09:18:30 -0800")

Junio C Hamano <gitster@pobox.com> writes:
>
> Alex Henrie <alexhenrie24@gmail.com> writes:
>
>> - Revise warning message based on Junio's feedback
>> - Consistently wrap warning lines to 75 characters for easy viewing in
>> PO files
>
> Nice to see attention to such a detail ;-)
>
>> - Fix test failures
>
> Ah, OK, hmmm.  
>
> For --quiet test, that wants to ensure that "pull --quiet" does not
> say anything, it certainly stops the test from failing if we set the
> configuration before executing such a test, but I wonder if that is
> in line with the spirit of the feature the test tries to protect in
> the first place.  I would imagine those who write "pull --quiet" in
> automation would not want to see any non-error message, and because
> this is not an error, they do not want to see any output.  Shouldn't
> such a use of "pull --quiet" bypass this warning, too?

Actually, the change to t/t5521 does not even sweep the problem
under the rug X-<

>> diff --git a/t/t5521-pull-options.sh b/t/t5521-pull-options.sh
>> index ccde8ba491..6e890ec936 100755
>> --- a/t/t5521-pull-options.sh
>> +++ b/t/t5521-pull-options.sh
>> @@ -8,7 +8,8 @@ test_expect_success 'setup' '
>>  	mkdir parent &&
>>  	(cd parent && git init &&
>>  	 echo one >file && git add file &&
>> -	 git commit -m one)
>> +	 git commit -m one) &&
>> +	git config pull.rebase false

This affects the repository at the top of the trash directory, but
the test immediately after this one looks like this:

    test_expect_success 'git pull -q' '
            mkdir clonedq &&
            (cd clonedq && git init &&
            git pull -q "../parent" >out 2>err &&
            test_must_be_empty err &&
            test_must_be_empty out)
    '

The patch added pull.rebase to "t/trash directory.5521/.git/config",
but it would not affect this "git pull -q", that is run in the
repository that uses "t/trash directory.5521/clonedq/.git/config"
as its configuration.

For now, I added the following patch on top of the topic before
queuing it to 'pu'.

Thanks.

-- >8 --
Subject: [PATCH] SQUASH???

Let's declare that for the purpose of "pull --quiet", the new "you
might have created a merge when you may wanted to rebase" warning is
an unwanted noise.

Revert the hack made to t5521; the second test that creates a new
repository and runs a pull inside it will not get affected by the
local configuration setting it makes to the original trash
repository and the breakage won't be worked around with it anyways.

This is not a full remedy for the previous step, yet.  The topic
needs a test to ensure the warning is emitted when it should be.
Existing t5521 is a test that ensures the warning is not given in
one of the conditions it should not be (i.e. when --quiet is in
effect).  Negative tests for other cases (e.g. when --ff-only is
given from the command line, without pull.rebase configured) should
also be added.
---
 builtin/pull.c          | 3 ++-
 t/t5521-pull-options.sh | 3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/pull.c b/builtin/pull.c
index 351b933c4d..0ef192fd64 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -327,7 +327,8 @@ static enum rebase_type config_get_rebase(void)
 	if (!git_config_get_value("pull.rebase", &value))
 		return parse_config_rebase("pull.rebase", value, 1);
 
-	if (!opt_ff || strcmp(opt_ff, "--ff-only")) {
+	if (0 <= opt_verbosity &&
+	    (!opt_ff || strcmp(opt_ff, "--ff-only"))) {
 		warning(_("Pulling without specifying how to reconcile divergent branches is\n"
 			"discouraged. You can squelch this message by running one of the following\n"
 			"commands sometime before your next pull:\n"
diff --git a/t/t5521-pull-options.sh b/t/t5521-pull-options.sh
index 6e890ec936..ccde8ba491 100755
--- a/t/t5521-pull-options.sh
+++ b/t/t5521-pull-options.sh
@@ -8,8 +8,7 @@ test_expect_success 'setup' '
 	mkdir parent &&
 	(cd parent && git init &&
 	 echo one >file && git add file &&
-	 git commit -m one) &&
-	git config pull.rebase false
+	 git commit -m one)
 '
 
 test_expect_success 'git pull -q' '
-- 
2.25.1-595-g3aa4872962


      reply	other threads:[~2020-03-05 18:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-04  2:29 [PATCH v4] pull: warn if the user didn't say whether to rebase or to merge Alex Henrie
2020-03-04 17:18 ` Junio C Hamano
2020-03-05 18:30   ` Junio C Hamano [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqk13y4ptz.fsf@gitster-ct.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=alexhenrie24@gmail.com \
    --cc=annulen@yandex.ru \
    --cc=git@vger.kernel.org \
    --cc=newren@gmail.com \
    --cc=rcdailey.lists@gmail.com \
    --cc=rsbecker@nexbridge.com \
    --cc=tytso@mit.edu \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).