switch
======

:Purpose: Set the branch of a checkout and update.
:Usage:   brz switch [TO_LOCATION]

:Options:
  -b, --create-branch   Create the target branch from this one before
                        switching to it.
  -d ARG, --directory=ARG
                        Branch to operate on, instead of working directory.
  --force               Switch even if local commits will be lost.
  -h, --help            Show help message.
  -q, --quiet           Only display errors and warnings.
  -r ARG, --revision=ARG
                        See "help revisionspec" for details.
  --store               Store and restore uncommitted changes in the branch.
  --usage               Show usage message and options.
  -v, --verbose         Display more information.

:Description:
  For lightweight checkouts, this changes the branch being referenced.
  For heavyweight checkouts, this checks that there are no local commits
  versus the current bound branch, then it makes the local branch a mirror
  of the new location and binds to it.
  
  In both cases, the working tree is updated and uncommitted changes
  are merged. The user can commit or revert these as they desire.
  
  Pending merges need to be committed or reverted before using switch.
  
  The path to the branch to switch to can be specified relative to the parent
  directory of the current branch. For example, if you are currently in a
  checkout of /path/to/branch, specifying 'newbranch' will find a branch at
  /path/to/newbranch.
  
  Bound branches use the nickname of its master branch unless it is set
  locally, in which case switching will update the local nickname to be
  that of the master.



