Merge branch 'bc/worktree-doc-fix-detached'
authorJunio C Hamano <gitster@pobox.com>
Fri, 24 Feb 2017 18:48:10 +0000 (10:48 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 Feb 2017 18:48:10 +0000 (10:48 -0800)
Doc update.

* bc/worktree-doc-fix-detached:
Documentation: correctly spell git worktree --detach

1  2 
Documentation/git-worktree.txt
index e257c19ebed96c3ab4877a752c3545e2d98c5d84,190e269515aeae3f58be7408a4747e2c56e57bf0..553cf8413f1792b2eec4c8827996e32f143b817a
@@@ -9,11 -9,8 +9,11 @@@ git-worktree - Manage multiple working 
  SYNOPSIS
  --------
  [verse]
 -'git worktree add' [-f] [--detach] [-b <new-branch>] <path> [<branch>]
 +'git worktree add' [-f] [--detach] [--checkout] [-b <new-branch>] <path> [<branch>]
 +'git worktree list' [--porcelain]
 +'git worktree lock' [--reason <string>] <worktree>
  'git worktree prune' [-n] [-v] [--expire <expire>]
 +'git worktree unlock' <worktree>
  
  DESCRIPTION
  -----------
@@@ -30,18 -27,21 +30,18 @@@ bare repository) and zero or more linke
  When you are done with a linked working tree you can simply delete it.
  The working tree's administrative files in the repository (see
  "DETAILS" below) will eventually be removed automatically (see
 -`gc.worktreePruneExpire` in linkgit::git-config[1]), or you can run
 +`gc.worktreePruneExpire` in linkgit:git-config[1]), or you can run
  `git worktree prune` in the main or any linked working tree to
  clean up any stale administrative files.
  
 -If you move a linked working tree to another file system, or
 -within a file system that does not support hard links, you need to run
 -at least one git command inside the linked working tree
 -(e.g. `git status`) in order to update its administrative files in the
 -repository so that they do not get automatically pruned.
 +If you move a linked working tree, you need to manually update the
 +administrative files so that they do not get pruned automatically. See
 +section "DETAILS" for more information.
  
  If a linked working tree is stored on a portable device or network share
  which is not always mounted, you can prevent its administrative files from
 -being pruned by creating a file named 'locked' alongside the other
 -administrative files, optionally containing a plain text reason that
 -pruning should be suppressed. See section "DETAILS" for more information.
 +being pruned by issuing the `git worktree lock` command, optionally
 +specifying `--reason` to explain why the working tree is locked.
  
  COMMANDS
  --------
@@@ -49,36 -49,16 +49,36 @@@ add <path> [<branch>]:
  
  Create `<path>` and checkout `<branch>` into it. The new working directory
  is linked to the current repository, sharing everything except working
 -directory specific files such as HEAD, index, etc.
 +directory specific files such as HEAD, index, etc. `-` may also be
 +specified as `<branch>`; it is synonymous with `@{-1}`.
  +
- If `<branch>` is omitted and neither `-b` nor `-B` nor `--detached` used,
+ If `<branch>` is omitted and neither `-b` nor `-B` nor `--detach` used,
  then, as a convenience, a new branch based at HEAD is created automatically,
  as if `-b $(basename <path>)` was specified.
  
 +list::
 +
 +List details of each worktree.  The main worktree is listed first, followed by
 +each of the linked worktrees.  The output details include if the worktree is
 +bare, the revision currently checked out, and the branch currently checked out
 +(or 'detached HEAD' if none).
 +
 +lock::
 +
 +If a working tree is on a portable device or network share which
 +is not always mounted, lock it to prevent its administrative
 +files from being pruned automatically. This also prevents it from
 +being moved or deleted. Optionally, specify a reason for the lock
 +with `--reason`.
 +
  prune::
  
  Prune working tree information in $GIT_DIR/worktrees.
  
 +unlock::
 +
 +Unlock a working tree, allowing it to be pruned, moved or deleted.
 +
  OPTIONS
  -------
  
        With `add`, detach HEAD in the new working tree. See "DETACHED HEAD"
        in linkgit:git-checkout[1].
  
 +--[no-]checkout::
 +      By default, `add` checks out `<branch>`, however, `--no-checkout` can
 +      be used to suppress checkout in order to make customizations,
 +      such as configuring sparse-checkout. See "Sparse checkout"
 +      in linkgit:git-read-tree[1].
 +
  -n::
  --dry-run::
        With `prune`, do not remove anything; just report what it would
        remove.
  
 +--porcelain::
 +      With `list`, output in an easy-to-parse format for scripts.
 +      This format will remain stable across Git versions and regardless of user
 +      configuration.  See below for details.
 +
  -v::
  --verbose::
        With `prune`, report all removals.
  --expire <time>::
        With `prune`, only expire unused working trees older than <time>.
  
 +--reason <string>::
 +      With `lock`, an explanation why the working tree is locked.
 +
 +<worktree>::
 +      Working trees can be identified by path, either relative or
 +      absolute.
 ++
 +If the last path components in the working tree's path is unique among
 +working trees, it can be used to identify worktrees. For example if
 +you only have two working trees, at "/abc/def/ghi" and "/abc/def/ggg",
 +then "ghi" or "def/ghi" is enough to point to the former working tree.
 +
  DETAILS
  -------
  Each linked working tree has a private sub-directory in the repository's
@@@ -167,17 -124,9 +167,17 @@@ thumb is do not make any assumption abo
  $GIT_DIR or $GIT_COMMON_DIR when you need to directly access something
  inside $GIT_DIR. Use `git rev-parse --git-path` to get the final path.
  
 -To prevent a $GIT_DIR/worktrees entry from from being pruned (which
 +If you move a linked working tree, you need to update the 'gitdir' file
 +in the entry's directory. For example, if a linked working tree is moved
 +to `/newpath/test-next` and its `.git` file points to
 +`/path/main/.git/worktrees/test-next`, then update
 +`/path/main/.git/worktrees/test-next/gitdir` to reference `/newpath/test-next`
 +instead.
 +
 +To prevent a $GIT_DIR/worktrees entry from being pruned (which
  can be useful in some situations, such as when the
 -entry's working tree is stored on a portable device), add a file named
 +entry's working tree is stored on a portable device), use the
 +`git worktree lock` command, which adds a file named
  'locked' to the entry's directory. The file contains the reason in
  plain text. For example, if a linked working tree's `.git` file points
  to `/path/main/.git/worktrees/test-next` then a file named
  `test-next` entry from being pruned.  See
  linkgit:gitrepository-layout[5] for details.
  
 +LIST OUTPUT FORMAT
 +------------------
 +The worktree list command has two output formats.  The default format shows the
 +details on a single line with columns.  For example:
 +
 +------------
 +S git worktree list
 +/path/to/bare-source            (bare)
 +/path/to/linked-worktree        abcd1234 [master]
 +/path/to/other-linked-worktree  1234abc  (detached HEAD)
 +------------
 +
 +Porcelain Format
 +~~~~~~~~~~~~~~~~
 +The porcelain format has a line per attribute.  Attributes are listed with a
 +label and value separated by a single space.  Boolean attributes (like 'bare'
 +and 'detached') are listed as a label only, and are only present if and only
 +if the value is true.  An empty line indicates the end of a worktree.  For
 +example:
 +
 +------------
 +S git worktree list --porcelain
 +worktree /path/to/bare-source
 +bare
 +
 +worktree /path/to/linked-worktree
 +HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
 +branch refs/heads/master
 +
 +worktree /path/to/other-linked-worktree
 +HEAD 1234abc1234abc1234abc1234abc1234abc1234a
 +detached
 +
 +------------
 +
  EXAMPLES
  --------
  You are in the middle of a refactoring session and your boss comes in and
@@@ -253,6 -167,9 +253,6 @@@ performed manually, such as
  - `remove` to remove a linked working tree and its administrative files (and
    warn if the working tree is dirty)
  - `mv` to move or rename a working tree and update its administrative files
 -- `list` to list linked working trees
 -- `lock` to prevent automatic pruning of administrative files (for instance,
 -  for a working tree on a portable device)
  
  GIT
  ---