git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 0/9] worktree: fix bugs and broaden --force applicability
@ 2018-08-28 21:20 Eric Sunshine
  2018-08-28 21:20 ` [PATCH 1/9] worktree: don't die() in library function find_worktree() Eric Sunshine
                   ` (9 more replies)
  0 siblings, 10 replies; 28+ messages in thread
From: Eric Sunshine @ 2018-08-28 21:20 UTC (permalink / raw)
  To: git; +Cc: Jeff King, Duy Nguyen, Eric Sunshine

This series started as a fix for a bug reported by Peff[1] in which the
"database" of worktrees could be corrupted (or at least become
internally inconsistent) by having multiple worktree entries associated
with the same path.

Peff's particular use-case for git-worktree is Documentation/doc-diff
which wants to re-use a worktree if it exists or create it anew if it
doesn't. Unfortunately, this is a bit more difficult than it should be
if the worktree directory is deleted manually (without pruning the
worktree entry) between script invocations. To simplify this use-case
for tools, it was suggested[2] that "git worktree add --force" could
deal with the problem of a registered-but-missing worktree (much as a
tool might rely upon "mkdir -p" to create or re-use an existing
directory). This series implements that proposal, as well.

Fixing the original bug revealed another existing bug, and after several
additional "while we're here" changes, the series ended up a bit longer
than expected.

[1]: https://public-inbox.org/git/20180821193556.GA859@sigill.intra.peff.net/
[2]: https://public-inbox.org/git/CAPig+cTghgbBo5VfZN+VP2VM00nPkhUqm0dOUqO37arxraxBKw@mail.gmail.com/

Eric Sunshine (9):
  worktree: don't die() in library function find_worktree()
  worktree: move delete_git_dir() earlier in file for upcoming new
    callers
  worktree: generalize delete_git_dir() to reduce code duplication
  worktree: prepare for more checks of whether path can become worktree
  worktree: disallow adding same path multiple times
  worktree: teach 'add' to respect --force for registered but missing
    path
  worktree: teach 'move' to override lock when --force given twice
  worktree: teach 'remove' to override lock when --force given twice
  worktree: delete .git/worktrees if empty after 'remove'

 Documentation/git-worktree.txt |  12 +++-
 builtin/worktree.c             | 113 ++++++++++++++++++++++-----------
 t/t2025-worktree-add.sh        |  18 ++++++
 t/t2028-worktree-move.sh       |  44 +++++++++++++
 worktree.c                     |   6 +-
 5 files changed, 154 insertions(+), 39 deletions(-)

-- 
2.19.0.rc1.350.ge57e33dbd1


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

end of thread, other threads:[~2018-08-31 21:57 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-28 21:20 [PATCH 0/9] worktree: fix bugs and broaden --force applicability Eric Sunshine
2018-08-28 21:20 ` [PATCH 1/9] worktree: don't die() in library function find_worktree() Eric Sunshine
2018-08-28 21:20 ` [PATCH 2/9] worktree: move delete_git_dir() earlier in file for upcoming new callers Eric Sunshine
2018-08-28 21:20 ` [PATCH 3/9] worktree: generalize delete_git_dir() to reduce code duplication Eric Sunshine
2018-08-30  6:57   ` Jeff King
2018-08-30  8:45     ` Eric Sunshine
2018-08-28 21:20 ` [PATCH 4/9] worktree: prepare for more checks of whether path can become worktree Eric Sunshine
2018-08-28 21:20 ` [PATCH 5/9] worktree: disallow adding same path multiple times Eric Sunshine
2018-08-30  7:28   ` Jeff King
2018-08-30  8:22     ` Eric Sunshine
2018-08-28 21:20 ` [PATCH 6/9] worktree: teach 'add' to respect --force for registered but missing path Eric Sunshine
2018-08-30  7:36   ` Jeff King
2018-08-30  8:26     ` Eric Sunshine
2018-08-28 21:20 ` [PATCH 7/9] worktree: teach 'move' to override lock when --force given twice Eric Sunshine
2018-08-30  7:38   ` Jeff King
2018-08-30  8:30     ` Eric Sunshine
2018-08-28 21:20 ` [PATCH 8/9] worktree: teach 'remove' " Eric Sunshine
2018-08-30  7:40   ` Jeff King
2018-08-30  8:33     ` Eric Sunshine
2018-08-28 21:20 ` [PATCH 9/9] worktree: delete .git/worktrees if empty after 'remove' Eric Sunshine
2018-08-30  7:54 ` [PATCH 0/9] worktree: fix bugs and broaden --force applicability Jeff King
2018-08-30  8:57   ` Eric Sunshine
2018-08-30  9:04   ` Eric Sunshine
2018-08-30 19:46     ` Jeff King
2018-08-30 20:14       ` Junio C Hamano
2018-08-30 23:49         ` Ramsay Jones
2018-08-31  0:54           ` Jeff King
2018-08-31 21:57             ` Ramsay Jones

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).