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

Re: [PATCH v5 1/7] reset: do not accept a mixed reset in a .git dir

From
Christian Couder <chriscool@tuxfamily.org>
Date
Dec 16, 2009, 06:36 UTC
Message-ID
<200912160736.46826.chriscool@tuxfamily.org>
In-Reply-To
<7vskbcyot5.fsf@alter.siamese.dyndns.org>
On mardi 15 décembre 2009, Junio C Hamano wrote:
Show 16 quoted lines
> Christian Couder <chriscool@tuxfamily.org> writes:
> >     While at it, instead of disallowing "git reset --option" outside
> >     a work tree only when option is "hard" or "merge", we now disallow
> >     it except when option is "soft" or "mixed", as it is safer if we
> >     ever add options to "git reset".
>
> I fail to see any sane logic behind this reasoning; you cannot decide if
> you need to allow or disallow the new --option with unspecified semantics
> until you have that --option, and you are saying
>
> Hmm, "reset --option" that does not work when it should work is a bug,
> just like "reset --option" that does not refuse to work when it should
> refuse is, and you cannot decide if you should allow a new --option until
> you have it.  Your "disallowing everything the code does not know about
> by default" doesn't particularly sound safer to me.  I'd suggest dropping
> it from this patch.
Ok, I will drop it.
> It is perfectly fine to have a change like that, if it makes the logic
> easier to follow with the updated repertoire when a new --option is
> added, but not before.
Ok.
[...]
Show 5 quoted lines
> By "after the next patch, it will not fail in a bare repository",
> did you mean "if the next patch blindly replaced an external call to
> read-tree with an internal call to unpack_trees(), it will change the
> behaviour, and we will end up allowing '--mixed in bare'.  To prevent it
> from happening, cmd_reset() should check that condition upfront"?
Yes, that's what I meant.
> Then you were not trying to hide regressions (which makes me happier).
> But then doesn't the change belong to the next patch, not this one?

I can put it in the patch that calls unpack_trees() directly, but on the other hand it can also be seen as an improvement that could be applied to "maint" as it improves the error message.

Best regards, Christian.

Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 18 in “"git reset --merge" related improvements”
  1. 0/7 "git reset --merge" related improvementsChristian Couder, Dec 12, 2009
  2. 1/7 reset: do not accept a mixed reset in a .git dirChristian Couder, Dec 12, 2009
  3. Junio C HamanoDec 12, 2009
  4. Christian CouderDec 15, 2009
  5. Junio C HamanoDec 15, 2009
  6. Junio C HamanoDec 15, 2009
  7. Christian CouderDec 16, 2009
  8. Junio C HamanoDec 15, 2009
  9. 2/7 reset: add a few tests for "git reset --merge"Christian Couder, Dec 12, 2009
  10. Junio C HamanoDec 12, 2009
  11. 3/7 reset: use "unpack_trees()" directly instead of "git read-tree"Christian Couder, Dec 12, 2009
  12. Junio C HamanoDec 12, 2009
  13. 4/7 reset: add option "--keep" to "git reset"Christian Couder, Dec 12, 2009
  14. Junio C HamanoDec 12, 2009
  15. Christian CouderDec 30, 2009
  16. 5/7 reset: add test cases for "--keep" optionChristian Couder, Dec 12, 2009
  17. 6/7 Documentation: reset: describe new "--keep" optionChristian Couder, Dec 12, 2009
  18. 7/7 Documentation: reset: add some tables to describe the different optionsChristian Couder, Dec 12, 2009

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.