During the 'git switch' discusion, Phillip found out that staged changes could be silently lost when doing 'git checkout -m'. The first attempt [2] tries to fix it by warning and moving on, because t7201.10 would fail if we simply die() when there are staged changes. This round, I update read-tree to be used in that test instead of 'checkout -m'. Then we are able to die(). I start a new thread to keep spam level down for other people, and to break free from 'git switch' thread because it's unrelated now. Jonathan is included, just in case he still remembers something from 6a143aa2b2 (checkout -m: attempt merge when deletion of path was staged, 2014-08-12) [1] https://public-inbox.org/git/7d3742d6-73e4-2750-6ecb-9edf761d96dd@xxxxxxxxx/ [2] https://public-inbox.org/git/20190319093910.20229-1-pclouds@xxxxxxxxx/ Nguyễn Thái Ngọc Duy (4): unpack-trees: keep gently check inside add_rejected_path unpack-trees: rename "gently" flag to "quiet" read-tree: add --quiet checkout: prevent losing staged changes with --merge Documentation/git-read-tree.txt | 4 ++++ builtin/checkout.c | 13 +++++++++++-- builtin/read-tree.c | 1 + t/t7201-co.sh | 9 ++------- unpack-trees.c | 25 +++++++++++-------------- unpack-trees.h | 2 +- 6 files changed, 30 insertions(+), 24 deletions(-) -- 2.21.0.548.gd3c7d92dc2