git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 23/23] checkout: retire --ignore-other-worktrees in favor of --force

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 6, 2015, 19:40 UTC
Message-ID
<xmqqlhetyszz.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1436203860-846-24-git-send-email-sunshine@sunshineco.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 6 quoted lines
> As a safeguard, checking out a branch already checked out by a different
> worktree is disallowed. This behavior can be overridden with
> --ignore-other-worktrees, however, this option is neither obvious nor
> particularly discoverable. As a common safeguard override, --force is
> more likely to come to mind. Therefore, overload it to also suppress the
> check for a branch already checked out elsewhere.

I hate to be asking this again but why is it a good idea to allow 'ignore-other-worktrees' in the first place (let alone making it more discoverable)? You'll have multiple working trees, either using the new "git worktree" or using the old contrib/workdir, for one of the two reasons:

 * You need a separate work area to build a new history.
 * You need a separate work area to expand the contents of a
   specific commit.

Here "create binary by running make" falls into the latter category; as far as Git is concerned, you are only looking at, not extending the history of any specific branch.

If you are extending the history of some branch, then you would want to be on that branch. Why would you want to have another worktree that will get into a confusing state once you create that commit on the checked out branch in this newly created worktree?

Wasn't the whole point of making the primary repository aware of the secondary worktrees via the "linked checkout" mechanism because that confusion was the biggest sore point of the old contrib/workdir implementation?

Previous: Eric SunshineNext: Eric Sunshine
Message 31 of 36 in “replace "checkout --to" with "worktree add"”
  1. 00/23 replace "checkout --to" with "worktree add"Eric Sunshine, Jul 6, 2015
  2. 01/23 Documentation/git-checkout: fix incorrect worktree prune commandEric Sunshine, Jul 6, 2015
  3. 02/23 Documentation/git-worktree: associate options with commandsEric Sunshine, Jul 6, 2015
  4. 03/23 Documentation: move linked worktree description from checkout to worktreeEric Sunshine, Jul 6, 2015
  5. 04/23 Documentation/git-worktree: add BUGS sectionEric Sunshine, Jul 6, 2015
  6. 05/23 Documentation/git-worktree: split technical info from general descriptionEric Sunshine, Jul 6, 2015
  7. 06/23 Documentation/git-worktree: add high-level 'lock' overviewEric Sunshine, Jul 6, 2015
  8. 07/23 Documentation/git-worktree: add EXAMPLES sectionEric Sunshine, Jul 6, 2015
  9. 08/23 checkout: fix bug with --to and relative HEADEric Sunshine, Jul 6, 2015
  10. 09/23 checkout: relocate --to's "no branch specified" checkEric Sunshine, Jul 6, 2015
  11. 10/23 checkout: prepare_linked_checkout: drop now-unused 'new' argumentEric Sunshine, Jul 6, 2015
  12. 11/23 checkout: make --to unconditionally verboseEric Sunshine, Jul 6, 2015
  13. 12/23 checkout: drop 'checkout_opts' dependency from prepare_linked_checkoutEric Sunshine, Jul 6, 2015
  14. 13/23 worktree: introduce "add" commandEric Sunshine, Jul 6, 2015
  15. 14/23 worktree: add --force optionEric Sunshine, Jul 6, 2015
  16. 15/23 worktree: add --detach optionEric Sunshine, Jul 6, 2015
  17. 16/23 worktree: add -b/-B optionsEric Sunshine, Jul 6, 2015
  18. 17/23 tests: worktree: retrofit "checkout --to" tests for "worktree add"Eric Sunshine, Jul 6, 2015
  19. 18/23 checkout: retire --to optionEric Sunshine, Jul 6, 2015
  20. Junio C HamanoJul 6, 2015
  21. Eric SunshineJul 7, 2015
  22. Junio C HamanoJul 8, 2015
  23. 19/23 checkout: require worktree unconditionallyEric Sunshine, Jul 6, 2015
  24. 20/23 worktree: extract basename computation to new functionEric Sunshine, Jul 6, 2015
  25. 21/23 worktree: add: make -b/-B default to HEAD when <branch> is omittedEric Sunshine, Jul 6, 2015
  26. 22/23 worktree: add: auto-vivify new branch when <branch> is omittedEric Sunshine, Jul 6, 2015
  27. Junio C HamanoJul 6, 2015
  28. Eric SunshineJul 7, 2015
  29. Junio C HamanoJul 7, 2015
  30. 23/23 checkout: retire --ignore-other-worktrees in favor of --forceEric Sunshine, Jul 6, 2015
  31. Junio C HamanoJul 6, 2015
  32. Eric SunshineJul 7, 2015
  33. Eric SunshineJul 7, 2015
  34. Junio C HamanoJul 7, 2015
  35. Eric SunshineJul 7, 2015
  36. Mark LevedahlJul 8, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.