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

Re: What's cooking in git.git (May 2019, #01; Thu, 9)

From
Duy Nguyen <pclouds@gmail.com>
Date
May 9, 2019, 13:44 UTC
Message-ID
<CACsJy8Ar8rCOhkXv6QUfEiOLOepfU6KNr34K7qFaQiMcgQCmLQ@mail.gmail.com>
In-Reply-To
<xmqqlfzgg8s3.fsf@gitster-ct.c.googlers.com>
On Thu, May 9, 2019 at 12:23 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
>
> * nd/merge-quit (2019-05-07) 2 commits
>  - merge: add --quit
>  - merge: remove drop_save() in favor of remove_merge_branch_state()
>
>  "git merge" learned "--quit" option that cleans up the in-progress
>  merge while leaving the working tree and the index still in a mess.
>
>  Hmph, why is this a good idea?

The first reason is consistency, besides bisect, all other in-progress commands have both --abort and --quit.

The second is because it's an escape hatch suggestion in git-switch. And this goes back to the first reason because git-checkout will just let you switch and do stuff. If you forget about the merge, at some point continue the merge won't even make sense.

Show 55 quoted lines
> * nd/switch-and-restore (2019-05-07) 43 commits
>  - Declare both git-switch and git-restore experimental
>  - help: move git-diff and git-reset to different groups
>  - doc: promote "git restore"
>  - user-manual.txt: prefer 'merge --abort' over 'reset --hard'
>  - completion: support restore
>  - t: add tests for restore
>  - restore: support --patch
>  - restore: replace --force with --ignore-unmerged
>  - restore: default to --source=HEAD when only --staged is specified
>  - restore: reject invalid combinations with --staged
>  - restore: add --worktree and --staged
>  - checkout: factor out worktree checkout code
>  - restore: disable overlay mode by default
>  - restore: make pathspec mandatory
>  - restore: take tree-ish from --source option instead
>  - checkout: split part of it to new command 'restore'
>  - doc: promote "git switch"
>  - completion: support switch
>  - t: add tests for switch
>  - switch: make --orphan switch to an empty tree
>  - switch: reject if some operation is in progress
>  - switch: no worktree status unless real branch switch happens
>  - switch: implicit dwim, use --no-guess to disable it
>  - switch: add short option for --detach
>  - switch: only allow explicit detached HEAD
>  - switch: reject "do nothing" case
>  - switch: stop accepting pathspec
>  - switch: remove -l
>  - switch: add --discard-changes
>  - switch: better names for -b and -B
>  - checkout: split part of it to new command 'switch'
>  - checkout: split options[] array in three pieces
>  - checkout: move 'confict_style' and 'dwim_..' to checkout_opts
>  - checkout: make "opts" in cmd_checkout() a pointer
>  - checkout: factor out some code in parse_branchname_arg()
>  - checkout: keep most #include sorted
>  - checkout: inform the user when removing branch state
>  - checkout: advice how to get out of detached HEAD mode
>  - t: rename t2014-switch.sh to t2014-checkout-switch.sh
>  - git-checkout.txt: fix monospace typeset
>  - doc: document --overwrite-ignore
>  - git-checkout.txt: fix one syntax line
>  - git-checkout.txt: spell out --no-option
>
>  Two new commands "git switch" and "git restore" are introduced to
>  split "checking out a branch to work on advancing its history" and
>  "checking out paths out of the index and/or a tree-ish to work on
>  advancing the current history" out of the single "git checkout"
>  command.
>
>  The "switch" part seems more or less ready for testing.  Perhaps
>  we should split this back into two topics and merge it to 'next'.
>  cf. <20190329103919.15642-1-pclouds@gmail.com> (switch v6)
>  cf. <20190425094600.15673-1-pclouds@gmail.com> (restore v3)
No opinon here.

I do have three small patches to refine git-switch. But I think we can do it on top. Probably best that way anyway to keep the justification for the changes in commit message.

git-restore works quite nicely for me, by my opinion in this area does not count. Besides Emily's usability issue with shell wildcard expansion, intent-to-add support is still not there. And Phillip might want to change --discard-changes behavior. That's all that's left.

-- 
Duy
Previous: Phillip WoodNext: Johannes Schindelin
Message 7 of 27 in “What's cooking in git.git (May 2019, #01; Thu, 9)”
  1. Junio C HamanoMay 8, 2019
  2. Denton LiuMay 8, 2019
  3. Elijah NewrenMay 8, 2019
  4. Phillip WoodMay 9, 2019
  5. Johannes SchindelinMay 10, 2019
  6. Phillip WoodMay 13, 2019
  7. Duy NguyenMay 9, 2019
  8. en/fast-export-encoding, was Re: What's cooking in git.git (May 2019, #01; Thu, 9)Johannes Schindelin, May 9, 2019
  9. Elijah NewrenMay 10, 2019
  10. Johannes SixtMay 10, 2019
  11. Johannes SchindelinMay 10, 2019
  12. nd/merge-quit, was Re: What's cooking in git.git (May 2019, #01; Thu, 9)Johannes Schindelin, May 9, 2019
  13. Duy NguyenMay 10, 2019
  14. Johannes SchindelinMay 13, 2019
  15. Johannes SchindelinMay 13, 2019
  16. Eric SunshineMay 13, 2019
  17. Johannes SchindelinMay 13, 2019
  18. tests: add a special setup where prerequisites failÆvar Arnfjörð Bjarmason, May 13, 2019
  19. Johannes SchindelinMay 14, 2019
  20. Ævar Arnfjörð BjarmasonMay 14, 2019
  21. Johannes SchindelinMay 14, 2019
  22. Ævar Arnfjörð BjarmasonMay 14, 2019
  23. Johannes SchindelinMay 14, 2019
  24. tests: mark two failing tests under FAIL_PREREQSÆvar Arnfjörð Bjarmason, Jun 20, 2019
  25. Johannes SchindelinJun 21, 2019
  26. Ævar Arnfjörð BjarmasonJun 21, 2019
  27. Junio C HamanoJun 21, 2019

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.