git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v2 00/23] replace "checkout --to" with "worktree add"
@ 2015-07-04  0:17 Eric Sunshine
  2015-07-04  0:17 ` [PATCH v2 01/23] Documentation/git-checkout: fix incorrect worktree prune command Eric Sunshine
                   ` (22 more replies)
  0 siblings, 23 replies; 38+ messages in thread
From: Eric Sunshine @ 2015-07-04  0:17 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Duy Nguyen, Mark Levedahl, Mikael Magnusson,
	Eric Sunshine

This is v2 of the series to replace "git checkout --to" with "git
worktree add". It's built atop Duy's df0b6cf (worktree: new place for
"git prune --worktrees", 2015-06-29) which introduces the git-worktree
command and replaces "git prune --worktrees" with "git worktree prune".

Although v1[*1*] consisted of only 1 patch, v2 is just a wee bit
longer at 23 patches. Sorry for the length. Fortunately, most patches
are quite small, thus (hopefully) easy to review.

v2 goes a bit beyond v1 by implementing Duy's suggestion[*2*] of
allowing <branch> in "git worktree add <path> <branch>" to be omitted,
in which case, as a convenience, it auto-vivifies a new branch named
after <path>, as if it had been invoked as "git worktree add -b
$(basename <path>) <path> HEAD". Moreover, unlike "git checkout -b
<newbranch> --to <path> <branch>", the <branch> in "git worktree add -b
<newbranch> <path> <branch>" is also optional, and defaults to HEAD.

v2 does not attempt either of the suggestions by Junio[*3*] or Duy[*4*]
for eliminating git-checkout from the equation, which would allow us to
remove the final couple bits of code in git-checkout which require
intimate knowledge that the checkout is occurring in a newly created
linked worktree. This series is already too long, and I didn't want it
to grow further by implementing either of those ideas. Instead, this
series leaves git-worktree at a state where one or the other of those
suggestions can be done as follow-on patches touching only the
underlying machinery, without affecting the user-facing interface.

[*1*]: http://thread.gmane.org/gmane.comp.version-control.git/273032
[*2*]: http://thread.gmane.org/gmane.comp.version-control.git/273032/focus=273035
[*3*]: via private email which suggested using "git-reset --hard" rather
       than "git checkout" to populate the new linked worktree.
[*4*]: http://thread.gmane.org/gmane.comp.version-control.git/273032/focus=273226

Eric Sunshine (23):
  Documentation/git-checkout: fix incorrect worktree prune command
  Documentation/git-worktree: associate options with commands
  Documentation: move linked worktree description from checkout to
    worktree
  Documentation/git-worktree: add BUGS section
  Documentation/git-worktree: split technical info from general
    description
  Documentation/git-worktree: add high-level 'lock' overview
  Documentation/git-worktree: add EXAMPLES section
  checkout: fix bug with --to and relative HEAD
  checkout: relocate --to's "no branch specified" check
  checkout: prepare_linked_checkout: drop now-unused 'new' argument
  checkout: make --to unconditionally verbose
  checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
  worktree: introduce "add" command
  worktree: add --force option
  worktree: add --detach option
  worktree: add -b/-B options
  tests: worktree: retrofit "checkout --to" tests for "worktree add"
  checkout: retire --to option
  checkout: require worktree unconditionally
  worktree: extract basename computation to new function
  worktree: add: make -b/-B default to HEAD when <branch> is omitted
  worktree: add: auto-vivify new branch when <branch> is omitted
  checkout: retire --ignore-other-worktrees in favor of --force

 Documentation/git-checkout.txt                    |  78 +--------
 Documentation/git-worktree.txt                    | 141 +++++++++++++++-
 builtin/checkout.c                                | 161 +-----------------
 builtin/worktree.c                                | 193 ++++++++++++++++++++++
 git.c                                             |   2 +-
 t/{t2025-checkout-to.sh => t2025-worktree-add.sh} |  68 +++++---
 t/t2026-prune-linked-checkouts.sh                 |   2 +-
 t/t7410-submodule-checkout-to.sh                  |   4 +-
 8 files changed, 383 insertions(+), 266 deletions(-)
 rename t/{t2025-checkout-to.sh => t2025-worktree-add.sh} (51%)

-- 
2.5.0.rc1.197.g417e668

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2015-07-06 19:15 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-04  0:17 [PATCH v2 00/23] replace "checkout --to" with "worktree add" Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 01/23] Documentation/git-checkout: fix incorrect worktree prune command Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 02/23] Documentation/git-worktree: associate options with commands Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 03/23] Documentation: move linked worktree description from checkout to worktree Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 04/23] Documentation/git-worktree: add BUGS section Eric Sunshine
2015-07-04  2:41   ` Duy Nguyen
2015-07-04  8:48     ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 05/23] Documentation/git-worktree: split technical info from general description Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 06/23] Documentation/git-worktree: add high-level 'lock' overview Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 07/23] Documentation/git-worktree: add EXAMPLES section Eric Sunshine
2015-07-04  2:23   ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 08/23] checkout: fix bug with --to and relative HEAD Eric Sunshine
2015-07-04  2:45   ` Duy Nguyen
2015-07-04  8:49     ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 09/23] checkout: relocate --to's "no branch specified" check Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 10/23] checkout: prepare_linked_checkout: drop now-unused 'new' argument Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 11/23] checkout: make --to unconditionally verbose Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 12/23] checkout: drop 'checkout_opts' dependency from prepare_linked_checkout Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 13/23] worktree: introduce "add" command Eric Sunshine
2015-07-04  2:53   ` Duy Nguyen
2015-07-04  8:54     ` Eric Sunshine
2015-07-06  9:24       ` Duy Nguyen
2015-07-04  0:17 ` [PATCH v2 14/23] worktree: add --force option Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 15/23] worktree: add --detach option Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 16/23] worktree: add -b/-B options Eric Sunshine
2015-07-04  3:19   ` Duy Nguyen
2015-07-04  8:57     ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 17/23] tests: worktree: retrofit "checkout --to" tests for "worktree add" Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 18/23] checkout: retire --to option Eric Sunshine
2015-07-04  3:04   ` Duy Nguyen
2015-07-04  8:59     ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 19/23] checkout: require worktree unconditionally Eric Sunshine
2015-07-04  2:33   ` Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 20/23] worktree: extract basename computation to new function Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 21/23] worktree: add: make -b/-B default to HEAD when <branch> is omitted Eric Sunshine
2015-07-06 19:14   ` Junio C Hamano
2015-07-04  0:17 ` [PATCH v2 22/23] worktree: add: auto-vivify new branch " Eric Sunshine
2015-07-04  0:17 ` [PATCH v2 23/23] checkout: retire --ignore-other-worktrees in favor of --force Eric Sunshine

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).