[PATCH 00/16] worktree: use "git reset --hard" to populate worktree
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jul 11, 2015, 00:05 UTC
- Message-ID
- <1436573146-3893-1-git-send-email-sunshine@sunshineco.com>
This is a follow-on series to [1], which migrated "git checkout --to" functionality to "git worktree add". That series continued using "git checkout" for the initial population of the new worktree, which required git-checkout to have too intimate knowledge that it was operating in a newly created worktree.
This series eliminates git-checkout from the picture by instead employing "git reset --hard"[2] to populate the new worktree initially.
It is built atop 1eb07d8 (worktree: add: auto-vivify new branch when <branch> is omitted, 2015-07-06), currently in 'next', which is es/worktree-add except for the final patch (which retires --ignore-other-worktrees) since the intention[3] was to drop that patch.
[1]: http://thread.gmane.org/gmane.comp.version-control.git/273415 [2]: http://thread.gmane.org/gmane.comp.version-control.git/273415/focus=273454 [3]: http://thread.gmane.org/gmane.comp.version-control.git/273415/focus=273585
Eric Sunshine (16): checkout: avoid resolving HEAD unnecessarily checkout: name check_linked_checkouts() more meaningfully checkout: improve die_if_checked_out() robustness checkout: die_if_checked_out: simplify strbuf management checkout: generalize die_if_checked_out() branch name argument branch: publish die_if_checked_out() worktree: simplify new branch (-b/-B) option checking worktree: introduce options container worktree: make --detach mutually exclusive with -b/-B worktree: make branch creation distinct from worktree population worktree: add_worktree: construct worktree-population command locally worktree: detect branch symref/detach and error conditions locally worktree: make setup of new HEAD distinct from worktree population worktree: avoid resolving HEAD unnecessarily worktree: populate via "git reset --hard" rather than "git checkout" checkout: drop intimate knowledge of new worktree initial population
branch.c | 65 +++++++++++++++++++++++++++++++ branch.h | 7 ++++ builtin/checkout.c | 82 +++------------------------------------ builtin/worktree.c | 110 +++++++++++++++++++++++++++++++++++------------------ 4 files changed, 151 insertions(+), 113 deletions(-)
-- 2.5.0.rc1.201.ga12d9f8