Merge branch 'ss/pull-rebase-preserve' into maint
authorJunio C Hamano <gitster@pobox.com>
Tue, 31 Mar 2015 21:54:11 +0000 (14:54 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 31 Mar 2015 21:54:12 +0000 (14:54 -0700)
* ss/pull-rebase-preserve:
docs: clarify what git-rebase's "-p" / "--preserve-merges" does
docs: clarify "preserve" option wording for git-pull

1  2 
Documentation/git-rebase.txt
index 924827dc2ec79fc4df83a572dcef89425b844f81,be15b7687112e7984353e3caae4b3870502f580b..c8ab48d6aa9fee8e9ee7af2fb3e39cf6cf3dd5ed
@@@ -9,7 -9,7 +9,7 @@@ SYNOPSI
  --------
  [verse]
  'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
 -      [<upstream>] [<branch>]
 +      [<upstream> [<branch>]]
  'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
        --root [<branch>]
  'git rebase' --continue | --skip | --abort | --edit-todo
@@@ -21,17 -21,15 +21,17 @@@ If <branch> is specified, 'git rebase' 
  it remains on the current branch.
  
  If <upstream> is not specified, the upstream configured in
 -branch.<name>.remote and branch.<name>.merge options will be usedsee
 -linkgit:git-config[1] for details.  If you are currently not on any
 -branch or if the current branch does not have a configured upstream,
 -the rebase will abort.
 +branch.<name>.remote and branch.<name>.merge options will be used (see
 +linkgit:git-config[1] for details) and the `--fork-point` option is
 +assumed.  If you are currently not on any branch or if the current
 +branch does not have a configured upstream, the rebase will abort.
  
  All changes made by commits in the current branch but that are not
  in <upstream> are saved to a temporary area.  This is the same set
 -of commits that would be shown by `git log <upstream>..HEAD` (or
 -`git log HEAD`, if --root is specified).
 +of commits that would be shown by `git log <upstream>..HEAD`; or by
 +`git log 'fork_point'..HEAD`, if `--fork-point` is active (see the
 +description on `--fork-point` below); or by `git log HEAD`, if the
 +`--root` option is specified.
  
  The current branch is reset to <upstream>, or <newbase> if the
  --onto option was supplied.  This has the exact same effect as
@@@ -318,8 -316,11 +318,8 @@@ which makes little sense
  
  -f::
  --force-rebase::
 -      Force the rebase even if the current branch is a descendant
 -      of the commit you are rebasing onto.  Normally non-interactive rebase will
 -      exit with the message "Current branch is up to date" in such a
 -      situation.
 -      Incompatible with the --interactive option.
 +      Force a rebase even if the current branch is up-to-date and
 +      the command without `--force` would return without doing anything.
  +
  You may find this (or --no-ff with an interactive rebase) helpful after
  reverting a topic branch merge, as this option recreates the topic branch with
@@@ -329,18 -330,13 +329,18 @@@ link:howto/revert-a-faulty-merge.html[r
  
  --fork-point::
  --no-fork-point::
 -      Use 'git merge-base --fork-point' to find a better common ancestor
 -      between `upstream` and `branch` when calculating which commits have
 -      have been introduced by `branch` (see linkgit:git-merge-base[1]).
 +      Use reflog to find a better common ancestor between <upstream>
 +      and <branch> when calculating which commits have been
 +      introduced by <branch>.
 ++
 +When --fork-point is active, 'fork_point' will be used instead of
 +<upstream> to calculate the set of commits to rebase, where
 +'fork_point' is the result of `git merge-base --fork-point <upstream>
 +<branch>` command (see linkgit:git-merge-base[1]).  If 'fork_point'
 +ends up being empty, the <upstream> will be used as a fallback.
  +
 -If no non-option arguments are given on the command line, then the default is
 -`--fork-point @{u}` otherwise the `upstream` argument is interpreted literally
 -unless the `--fork-point` option is specified.
 +If either <upstream> or --root is given on the command line, then the
 +default is `--no-fork-point`, otherwise the default is `--fork-point`.
  
  --ignore-whitespace::
  --whitespace=<option>::
  
  -p::
  --preserve-merges::
-       Instead of ignoring merges, try to recreate them.
+       Recreate merge commits instead of flattening the history by replaying
+       commits a merge commit introduces. Merge conflict resolutions or manual
+       amendments to merge commits are not preserved.
  +
  This uses the `--interactive` machinery internally, but combining it
  with the `--interactive` option explicitly is generally not a good