push
====

:Purpose: Update a mirror of this branch.
:Usage:   brz push [LOCATION]

:Options:
  --create-prefix       Create the path leading up to the branch if it does
                        not already exist.
  -d ARG, --directory=ARG
                        Branch to push from, rather than the one containing
                        the working directory.
  -h, --help            Show help message.
  --lossy               Allow lossy push, i.e. dropping metadata that can't be
                        represented in the target.
  --no-tree             Don't populate the working tree, even for protocols
                        that support it.
  --overwrite           Ignore differences between branches and overwrite
                        unconditionally.
  --overwrite-tags      Overwrite tags only.
  -q, --quiet           Only display errors and warnings.
  --remember            Remember the specified location as a default.
  -r ARG, --revision=ARG
                        See "help revisionspec" for details.
  --stacked             Create a stacked branch that references the public
                        location of the parent branch.
  --stacked-on=ARG      Create a stacked branch that refers to another branch
                        for the commit history. Only the work not present in
                        the referenced branch is included in the branch
                        created.
  --strict              Refuse to push if there are uncommitted changes in the
                        working tree, --no-strict disables the check.
  --usage               Show usage message and options.
  --use-existing-dir    By default push will fail if the target directory
                        exists, but does not already have a control directory.
                        This flag will allow push to proceed.
  -v, --verbose         Display more information.

:Description:
  The target branch will not have its working tree populated because this
  is both expensive, and is not supported on remote file systems.
  
  Some smart servers or protocols *may* put the working tree in place in
  the future.
  
  This command only works on branches that have not diverged.  Branches are
  considered diverged if the destination branch's most recent commit is one
  that has not been merged (directly or indirectly) by the source branch.
  
  If branches have diverged, you can use 'brz push --overwrite' to replace
  the other branch completely, discarding its unmerged changes.
  
  If you want to ensure you have the different changes in the other branch,
  do a merge (see brz help merge) from the other branch, and commit that.
  After that you will be able to do a push without '--overwrite'.
  
  If there is no default push location set, the first push will set it (use
  --no-remember to avoid setting it).  After that, you can omit the
  location to use the default.  To change the default, use --remember. The
  value will only be saved if the remote location can be accessed.
  
  The --verbose option will display the revisions pushed using the log_format
  configuration option. You can use a different format by overriding it with
  -Olog_format=<other_format>.

:See also: :doc:`pull <pull-help>`, :doc:`update <update-help>`, :doc:`working-trees <working-trees-help>`


