From: Felipe Contreras <felipe.contreras@gmail.com>
To: Alex Henrie <alexhenrie24@gmail.com>,
git@vger.kernel.org, phillip.wood123@gmail.com, avarab@gmail.com,
gitster@pobox.com, felipe.contreras@gmail.com, newren@gmail.com
Cc: Alex Henrie <alexhenrie24@gmail.com>
Subject: RE: [PATCH] pull: abort if --ff-only is given and fast-forwarding is impossible
Date: Sun, 11 Jul 2021 12:08:46 -0500 [thread overview]
Message-ID: <60eb259e1a75d_974bf20895@natae.notmuch> (raw)
In-Reply-To: <20210711012604.947321-1-alexhenrie24@gmail.com>
Alex Henrie wrote:
> The warning about pulling without specifying how to reconcile divergent
> branches says that after setting pull.rebase to true, --ff-only can
> still be passed on the command line to require a fast-forward. Make that
> actually work.
I don't know where that is being said, but it's wrong: --ff-only is
meant for merge only.
> --- a/builtin/pull.c
> +++ b/builtin/pull.c
> @@ -1046,9 +1046,14 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
>
> can_ff = get_can_ff(&orig_head, &merge_heads.oid[0]);
>
> - if (rebase_unspecified && !opt_ff && !can_ff) {
> - if (opt_verbosity >= 0)
> - show_advice_pull_non_ff();
> + if (!can_ff) {
> + if (opt_ff) {
> + if (!strcmp(opt_ff, "--ff-only"))
> + die_ff_impossible();
As I've mentioned multiple times already, this is wrong.
The advice clearly says:
You can also pass --rebase, --no-rebase, or --ff-only on the command
line to override the configured default per invocation.
With your patch now this is even less true:
git -c pull.ff=only pull --rebase
> + } else {
> + if (rebase_unspecified && opt_verbosity >= 0)
> + show_advice_pull_non_ff();
> + }
> }
>
> if (opt_rebase) {
> diff --git a/t/t7601-merge-pull-config.sh b/t/t7601-merge-pull-config.sh
> index 52e8ccc933..b5a09a60f9 100755
> --- a/t/t7601-merge-pull-config.sh
> +++ b/t/t7601-merge-pull-config.sh
> @@ -183,6 +183,30 @@ test_expect_success 'pull prevents non-fast-forward with "only" in pull.ff' '
> test_must_fail git pull . c3
> '
Can you add this test [1] so I don't have to explain the same thing over
and over?
test_expect_success 'pull allows non-fast-forward with "only" in pull.ff if --rebase' '
git reset --hard c1 &&
test_config pull.ff only &&
git pull --rebase . c3
'
Cheers.
> +test_expect_success 'pull prevents non-fast-forward with pull.ff=only and pull.rebase=true' '
> + git reset --hard c1 &&
> + test_config pull.ff only &&
> + test_config pull.rebase true &&
> + test_must_fail git pull . c3
> +'
> +
> +test_expect_success 'pull prevents non-fast-forward with pull.ff=only and pull.rebase=false' '
> + git reset --hard c1 &&
> + test_config pull.ff only &&
> + test_config pull.rebase false &&
> + test_must_fail git pull . c3
> +'
> +
> +test_expect_success 'pull prevents non-fast-forward with --rebase --ff-only' '
> + git reset --hard c1 &&
> + test_must_fail git pull --rebase --ff-only . c3
> +'
> +
> +test_expect_success 'pull prevents non-fast-forward with --no-rebase --ff-only' '
> + git reset --hard c1 &&
> + test_must_fail git pull --no-rebase --ff-only . c3
> +'
> +
> test_expect_success 'merge c1 with c2 (ours in pull.twohead)' '
> git reset --hard c1 &&
> git config pull.twohead ours &&
> --
[1] https://lore.kernel.org/git/20210711170703.651081-1-felipe.contreras@gmail.com/
--
Felipe Contreras
next prev parent reply other threads:[~2021-07-11 17:08 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-11 1:26 [PATCH] pull: abort if --ff-only is given and fast-forwarding is impossible Alex Henrie
2021-07-11 17:08 ` Felipe Contreras [this message]
2021-07-11 20:00 ` Alex Henrie
2021-07-11 21:41 ` Felipe Contreras
2021-07-12 10:21 ` Phillip Wood
2021-07-12 16:04 ` Felipe Contreras
2021-07-12 16:29 ` Alex Henrie
2021-07-12 17:43 ` Felipe Contreras
2021-07-12 17:08 ` Junio C Hamano
2021-07-12 17:30 ` Felipe Contreras
2021-07-12 17:50 ` Elijah Newren
2021-07-12 18:20 ` Felipe Contreras
2021-07-12 18:20 ` Alex Henrie
2021-07-12 18:24 ` Alex Henrie
2021-07-12 19:55 ` Junio C Hamano
2021-07-12 20:19 ` Felipe Contreras
2021-07-12 20:51 ` Elijah Newren
2021-07-12 23:00 ` Junio C Hamano
2021-07-12 23:05 ` Felipe Contreras
2021-07-12 23:24 ` Elijah Newren
2021-07-12 20:37 ` Elijah Newren
2021-07-12 21:06 ` Felipe Contreras
2021-07-12 17:54 ` Phillip Wood
2021-07-14 8:37 ` Son Luong Ngoc
2021-07-14 15:14 ` Felipe Contreras
2021-07-14 15:22 ` Elijah Newren
2021-07-14 17:19 ` Junio C Hamano
2021-07-14 17:31 ` Felipe Contreras
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=60eb259e1a75d_974bf20895@natae.notmuch \
--to=felipe.contreras@gmail.com \
--cc=alexhenrie24@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=phillip.wood123@gmail.com \
/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.