v2 is just a bit better to look at than v1. This is by no means final. If you think the command name is bad, the default behavior should change, or something else, speak up. It's still very "RFC". v2 breaks down the giant patch in v1 and starts adding some changes in these new commands: - restore-paths is renamed to checkout-paths. I wrote I didn't like "checkout" because of completion conflict. But who am I kidding, I'll use aliases anyway. "-files" instead of "-paths" because we already have ls-files. - both commands will not accept no arguments. There is no "git checkout" equivalent. - ambiguation rules are now aware that "switch-branch" for example can't take pathspec... - the last patch tries to hide "git checkout" away. The command example updates show how these will be used. Which probably helps figure better names or defaults for them too One thing I notice that we often use "git checkout -- <path>" and rarely "git checkout <tree-ish> -- <path>". Which makes me think perhaps "git checkout-files" should not use "--" to separate the two. We'll have this instead git checkout-files [--from=<tree-ish>] <paths> Oh and of course I'll be waiting for the new --index from Thomas before submitting submitting any thing serious for 'next'. We still have plenty of time. Nguyễn Thái Ngọc Duy (7): parse-options: allow parse_options_concat(NULL, options) checkout: make "opts" in cmd_checkout() a pointer checkout: move 'confict_style' to checkout_opts checkout: move dwim_new_local_branch to checkout_opts checkout: split options[] array in three pieces checkout: split into switch-branch and checkout-files Suggest other commands instead of "git checkout" Documentation/git-branch.txt | 8 +- Documentation/git-check-ref-format.txt | 2 +- Documentation/git-format-patch.txt | 2 +- Documentation/git-merge-base.txt | 2 +- Documentation/git-rebase.txt | 2 +- Documentation/git-remote.txt | 2 +- Documentation/git-rerere.txt | 10 +- Documentation/git-reset.txt | 18 +- Documentation/git-revert.txt | 2 +- Documentation/git-stash.txt | 6 +- Documentation/gitattributes.txt | 2 +- Documentation/gitcli.txt | 4 +- Documentation/gitcore-tutorial.txt | 18 +- Documentation/giteveryday.txt | 24 +-- Documentation/githooks.txt | 5 +- Documentation/gittutorial-2.txt | 2 +- Documentation/gittutorial.txt | 4 +- Documentation/revisions.txt | 2 +- Documentation/user-manual.txt | 54 +++--- advice.c | 2 +- builtin.h | 2 + builtin/checkout.c | 256 +++++++++++++++++-------- git.c | 2 + parse-options-cb.c | 2 +- sha1-name.c | 2 +- wt-status.c | 2 +- 26 files changed, 271 insertions(+), 166 deletions(-) -- 2.19.1.1327.g328c130451.dirty