If committing to a shared repository, the commit may fail if the
repository that has been changed since your last update. In that
case, you must perform an update before trying again. On a
-decentralized version control system, use @kbd{C-x v +} (@pxref{VC
-Pull}) or @kbd{C-x v m} (@pxref{Merging}). On a centralized version
-control system, type @kbd{C-x v v} again to merge in the repository
-changes.
+decentralized version control system, use @kbd{C-x v +}
+(@pxref{Pulling / Pushing}) or @kbd{C-x v m} (@pxref{Merging}).
+On a centralized version control system, type @kbd{C-x v v} again to
+merge in the repository changes.
@item
Finally, if you are using a centralized version control system, check
(@code{vc-log-incoming}) command displays a log buffer showing the
changes that will be applied, the next time you run the version
control system's ``pull'' command to get new revisions from another
-repository (@pxref{VC Pull}). This other repository is the default
+repository (@pxref{Pulling / Pushing}). This other repository is the default
one from which changes are pulled, as defined by the version control
system; with a prefix argument, @code{vc-log-incoming} prompts for a
specific repository. Similarly, @kbd{C-x v O}
@menu
* Switching Branches:: How to get to another existing branch.
-* VC Pull:: Updating the contents of a branch.
+* Pulling / Pushing:: Receiving/sending changes from/to elsewhere.
* Merging:: Transferring changes between branches.
* Creating Branches:: How to start a new branch.
@end menu
branch until you switch away; for instance, any VC filesets that you
commit will be committed to that specific branch.
-@node VC Pull
-@subsubsection Pulling Changes into a Branch
+@node Pulling / Pushing
+@subsubsection Pulling/Pushing Changes into/from a Branch
@table @kbd
@item C-x v +
On a centralized version control system, update the current VC
fileset.
+
+@item C-x v P
+On a decentralized version control system, ``push'' changes from the
+current branch to another location. This concept does not exist
+for centralized version control systems.
@end table
@kindex C-x v +
On a centralized version control system like CVS, @kbd{C-x v +}
updates the current VC fileset from the repository.
+@kindex C-x v P
+@findex vc-push
+ On a decentralized version control system, the command @kbd{C-x v P}
+(@code{vc-push}) sends changes from your current branch to another location.
+With a prefix argument, the command prompts for the exact
+version control command to use, which lets you specify where to push
+changes. Otherwise, it pushes to a default location determined
+by the version control system.
+
+ Prior to pushing, you can use @kbd{C-x v O} (@code{vc-log-outgoing})
+to view a log buffer of the changes to be sent. @xref{VC Change Log}.
+
+This command is currently supported only by Bazaar, Git, and Mercurial.
+It signals an error for centralized version control systems.
+
@node Merging
@subsubsection Merging Branches
@cindex merging changes