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

Re: Proposalö git push -F

From
Xavier Morel <xmo@odoo.com>
Date
Aug 24, 2021, 10:23 UTC
Message-ID
<c49da491-f8a3-440f-54e2-295be8dbcfd7@odoo.com>
In-Reply-To
<xmqqim68lp20.fsf@gitster.c.googlers.com>
 > Because the form "--force-with-lease=<this-exact-commit>" is a
 > strict improvement over "--force", but the lazy "guess where the
 > other end should be" form, i.e. "--force-with-lease" alone, is worse
 > than "--force" in that it gives users false sense of security
 > without offering the safety the "lease" mechanism gives.
That seems like a case of the perfect being the enemy of the good.

Generaly, "force with lease" is a better behaviour than "force". It will not catch all usage errors, but it will catch lots: again last week colleagues had issues which would had been caught by caught by using "--force-with-lease" instead" of "-f", but of course "-f" is "the default" in rebase-based workflows, what with being so short and sweet.

I found XonqNopp's proposal as I was planning to post a similar message, 
though stricter: I don't think `--force` deserves a short form at all, I 
  believe `-f` should be progressively migrated over to alias to 
`force-with-lease` as it's a significantly better default behaviour, and 
the odd *need* for `--force` (of which I can't personnally remember one) 
can be typed out in its entirety.

For the vast majority of users, all it will do is catch genuine errors. For a small minority it will have no effect[0]. And for an infinitesimal number it will be unhelpful as `--force` without lease or inclusion is genuinely what they were looking for.

I genuinely do not understand what `force-if-includes` does from reading the manpage and just learned that it exists from Johannes Schindelin's message, it might be an even better default behaviour for `-f`.

Either way I think `-f` should not, ultimately, alias to `--force`.

My idea there was to introduce a setting initially defaulting to `false` and a warning about the migration (triggered on `-f` when that setting is unset), then a few versions later flip the default to `true`.

[0] and I would expect users of tools which helpfully fetch in the background to not be using the CLI, and thus not be impacted by this change.

Previous: Johannes Schindelin
Message 4 of 4 in “Proposalö git push -F”
  1. XonqNoppMar 2, 2021
  2. Junio C HamanoMar 3, 2021
  3. Johannes SchindelinMar 4, 2021
  4. Xavier MorelAug 24, 2021

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.