git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] pull: allow branch.<name>.rebase to override pull.ff=only

From
D. Ben Knoble <ben.knoble+github@gmail.com>
Date
Apr 22, 2025, 20:05 UTC
Message-ID
<CALnO6CDq5BRogPCcDozTi1NEYL6nCoEDaNkFdq2+1V6vVRy=1g@mail.gmail.com>
In-Reply-To
<CALnO6CBi-c9U-UskTzjNBH+k8VQybdSshYgs+A3_DRH-iz7zHA@mail.gmail.com>

On Tue, Apr 22, 2025 at 3:58 PM D. Ben Knoble <ben.knoble+github@gmail.com> wrote:

Show 40 quoted lines
>
> On Wed, Feb 5, 2025 at 4:14 PM D. Ben Knoble
> <ben.knoble+github@gmail.com> wrote:
> >
> > On Wed, Feb 5, 2025 at 12:42 PM Junio C Hamano <gitster@pobox.com> wrote:
> > >
> > > "D. Ben Knoble" <ben.knoble+github@gmail.com> writes:
> > >
> > > >> So, I dunno.
> > > >
> > > > Agreed that if pull.ff=only is supposed to override all other options
> > > > (except those on the command-line), this might be wrong. And `git pull
> > > > --rebase` works in the scenario I described.
> > >
> > > Yeah, I view --ff-only as a safety measure for the user to say "my
> > > workflow is to make sure I do not have anything locally cooking on
> > > my branch when integrating with the other side, and stop me if I
> > > somehow made a mistake".  If rebase or other options override, the
> > > folks in the rebasing camp, unlike in the merging camp, cannot
> > > benefit from such safety measure, which worries me.
> >
> > Is there, then, an existing combination that means roughly to treat
> > `git pull` with no other options like this:
> > - if not rebasing, forbid merging and be equivalent to --ff-only
> > - if rebasing is requested (because of branch.name.rebase or --rebase
> > or …?), allow it
> >
> > In other words, something like a pull.merge=ff (or ff-only) meaning to
> > apply the rules I've attempted to describe, in which case I would
> > leave pull.ff unset?
> >
> > I suppose pull.rebase=true is close, but is not quite the same for me
> > (I'd like to be warned when this would imply a non-fast-forward for a
> > main branch, though the "rebasing" logs might be sufficient)…
>
> FWIW, I found some tests that indicate, to me, that I should use
> pull.rebase=true (or merges) + branch.<name>.rebase=false for the case
> I described: https://github.com/git/git/blob/08bdfd453584e489d5a551aecbdcb77584e1b958/t/t5520-pull.sh#L505-L514
>
> So it turns out my itch was already scratched.

I left out the commit reference, whose message described what I think I originally wanted:

> my main or master branch is typically fast-forward only, while I want my
> topic branches to be rebased; preferably, all of those things happen
> for just "git pull."
Previous: D. Ben KnobleNext: D. Ben Knoble
Message 11 of 13 in “pull: allow branch.<name>.rebase to override pull.ff=only”
  1. pull: allow branch.<name>.rebase to override pull.ff=onlyD. Ben Knoble, Feb 5, 2025
  2. Junio C HamanoFeb 5, 2025
  3. D. Ben KnobleFeb 5, 2025
  4. Junio C HamanoFeb 5, 2025
  5. D. Ben KnobleFeb 5, 2025
  6. Alex HenrieFeb 7, 2025
  7. D. Ben KnobleFeb 10, 2025
  8. Alex HenrieFeb 11, 2025
  9. D. Ben KnobleApr 22, 2025
  10. D. Ben KnobleApr 22, 2025
  11. D. Ben KnobleApr 22, 2025
  12. D. Ben KnobleApr 22, 2025
  13. Junio C HamanoApr 22, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.