Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Use 'fast-forward' all over the place
author
Felipe Contreras
<felipe.contreras@gmail.com>
Sat, 24 Oct 2009 08:31:32 +0000
(11:31 +0300)
committer
Junio C Hamano
<gitster@pobox.com>
Sun, 25 Oct 2009 06:50:28 +0000
(23:50 -0700)
It's a compound word.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
35 files changed:
Documentation/config.txt
patch
|
blob
|
history
Documentation/git-http-push.txt
patch
|
blob
|
history
Documentation/git-push.txt
patch
|
blob
|
history
Documentation/git-read-tree.txt
patch
|
blob
|
history
Documentation/git-receive-pack.txt
patch
|
blob
|
history
Documentation/git-reset.txt
patch
|
blob
|
history
Documentation/git-send-pack.txt
patch
|
blob
|
history
Documentation/gitcore-tutorial.txt
patch
|
blob
|
history
Documentation/githooks.txt
patch
|
blob
|
history
Documentation/glossary-content.txt
patch
|
blob
|
history
Documentation/howto/maintain-git.txt
patch
|
blob
|
history
Documentation/howto/revert-branch-rebase.txt
patch
|
blob
|
history
Documentation/howto/update-hook-example.txt
patch
|
blob
|
history
Documentation/pull-fetch-param.txt
patch
|
blob
|
history
Documentation/user-manual.txt
patch
|
blob
|
history
builtin-fetch--tool.c
patch
|
blob
|
history
builtin-fetch.c
patch
|
blob
|
history
builtin-merge.c
patch
|
blob
|
history
builtin-push.c
patch
|
blob
|
history
builtin-receive-pack.c
patch
|
blob
|
history
builtin-remote.c
patch
|
blob
|
history
builtin-send-pack.c
patch
|
blob
|
history
contrib/examples/git-merge.sh
patch
|
blob
|
history
contrib/examples/git-resolve.sh
patch
|
blob
|
history
contrib/hooks/post-receive-email
patch
|
blob
|
history
git-merge-octopus.sh
patch
|
blob
|
history
git-pull.sh
patch
|
blob
|
history
git-rebase--interactive.sh
patch
|
blob
|
history
git-rebase.sh
patch
|
blob
|
history
t/t1001-read-tree-m-2way.sh
patch
|
blob
|
history
t/t5505-remote.sh
patch
|
blob
|
history
t/t5518-fetch-exit-status.sh
patch
|
blob
|
history
t/t6028-merge-up-to-date.sh
patch
|
blob
|
history
transport.c
patch
|
blob
|
history
unpack-trees.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
78d553b
)
diff --git
a/Documentation/config.txt
b/Documentation/config.txt
index cd1781498eb92d7dd0d3648a8fe188fc75a6df8c..52bbafbefa01d868cec4a533f7472cce2ad7aebc 100644
(file)
--- a/
Documentation/config.txt
+++ b/
Documentation/config.txt
@@
-1351,7
+1351,7
@@
receive.denyCurrentBranch::
receive.denyNonFastForwards::
If set to true, git-receive-pack will deny a ref update which is
receive.denyNonFastForwards::
If set to true, git-receive-pack will deny a ref update which is
- not a fast
forward. Use this to prevent such an update via a push,
+ not a fast
-
forward. Use this to prevent such an update via a push,
even if that push is forced. This configuration variable is
set when initializing a shared repository.
even if that push is forced. This configuration variable is
set when initializing a shared repository.
diff --git
a/Documentation/git-http-push.txt
b/Documentation/git-http-push.txt
index aef383e0b142bd603b77620cad720c102d70c4b7..ddf7a18dc42ef4d5f8ad44aed89ee5b17bb0e9a6 100644
(file)
--- a/
Documentation/git-http-push.txt
+++ b/
Documentation/git-http-push.txt
@@
-82,11
+82,11
@@
destination side.
Without '--force', the <src> ref is stored at the remote only if
<dst> does not exist, or <dst> is a proper subset (i.e. an
Without '--force', the <src> ref is stored at the remote only if
<dst> does not exist, or <dst> is a proper subset (i.e. an
-ancestor) of <src>. This check, known as "fast
forward check",
+ancestor) of <src>. This check, known as "fast
-
forward check",
is performed in order to avoid accidentally overwriting the
remote ref and lose other peoples' commits from there.
is performed in order to avoid accidentally overwriting the
remote ref and lose other peoples' commits from there.
-With '--force', the fast
forward check is disabled for all refs.
+With '--force', the fast
-
forward check is disabled for all refs.
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.
diff --git
a/Documentation/git-push.txt
b/Documentation/git-push.txt
index ba6a8a2fb21128fc90ca0364a0760700c4fb1658..1a9d886bb3e10338ea66743a9dec355581835f50 100644
(file)
--- a/
Documentation/git-push.txt
+++ b/
Documentation/git-push.txt
@@
-50,9
+50,9
@@
updated.
+
The object referenced by <src> is used to update the <dst> reference
on the remote side, but by default this is only allowed if the
+
The object referenced by <src> is used to update the <dst> reference
on the remote side, but by default this is only allowed if the
-update can fast
forward <dst>. By having the optional leading `{plus}`,
+update can fast
-
forward <dst>. By having the optional leading `{plus}`,
you can tell git to update the <dst> ref even when the update is not a
you can tell git to update the <dst> ref even when the update is not a
-fast
forward. This does *not* attempt to merge <src> into <dst>. See
+fast
-
forward. This does *not* attempt to merge <src> into <dst>. See
EXAMPLES below for details.
+
`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
EXAMPLES below for details.
+
`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
@@
-60,7
+60,7
@@
EXAMPLES below for details.
Pushing an empty <src> allows you to delete the <dst> ref from
the remote repository.
+
Pushing an empty <src> allows you to delete the <dst> ref from
the remote repository.
+
-The special refspec `:` (or `{plus}:` to allow non-fast
forward updates)
+The special refspec `:` (or `{plus}:` to allow non-fast
-
forward updates)
directs git to push "matching" branches: for every branch that exists on
the local side, the remote side is updated if a branch of the same name
already exists on the remote side. This is the default operation mode
directs git to push "matching" branches: for every branch that exists on
the local side, the remote side is updated if a branch of the same name
already exists on the remote side. This is the default operation mode
@@
-171,10
+171,10
@@
summary::
For a successfully pushed ref, the summary shows the old and new
values of the ref in a form suitable for using as an argument to
`git log` (this is `<old>..<new>` in most cases, and
For a successfully pushed ref, the summary shows the old and new
values of the ref in a form suitable for using as an argument to
`git log` (this is `<old>..<new>` in most cases, and
- `<old>...<new>` for forced non-fast
forward updates). For a
+ `<old>...<new>` for forced non-fast
-
forward updates). For a
failed update, more details are given for the failure.
The string `rejected` indicates that git did not try to send the
failed update, more details are given for the failure.
The string `rejected` indicates that git did not try to send the
- ref at all (typically because it is not a fast
forward). The
+ ref at all (typically because it is not a fast
-
forward). The
string `remote rejected` indicates that the remote end refused
the update; this rejection is typically caused by a hook on the
remote side. The string `remote failure` indicates that the
string `remote rejected` indicates that the remote end refused
the update; this rejection is typically caused by a hook on the
remote side. The string `remote failure` indicates that the
@@
-342,9
+342,9
@@
git push origin :experimental::
git push origin {plus}dev:master::
Update the origin repository's master branch with the dev branch,
git push origin {plus}dev:master::
Update the origin repository's master branch with the dev branch,
- allowing non-fast
forward updates. *This can leave unreferenced
+ allowing non-fast
-
forward updates. *This can leave unreferenced
commits dangling in the origin repository.* Consider the
commits dangling in the origin repository.* Consider the
- following situation, where a fast
forward is not possible:
+ following situation, where a fast
-
forward is not possible:
+
----
o---o---o---A---B origin/master
+
----
o---o---o---A---B origin/master
diff --git
a/Documentation/git-read-tree.txt
b/Documentation/git-read-tree.txt
index 4a932b08c6ed4f1de46d51fd92046d5190f831a7..a10ce4ba40cc509a0f3a8f39551310fdd9231e71 100644
(file)
--- a/
Documentation/git-read-tree.txt
+++ b/
Documentation/git-read-tree.txt
@@
-144,7
+144,7
@@
Two Tree Merge
Typically, this is invoked as `git read-tree -m $H $M`, where $H
is the head commit of the current repository, and $M is the head
of a foreign tree, which is simply ahead of $H (i.e. we are in a
Typically, this is invoked as `git read-tree -m $H $M`, where $H
is the head commit of the current repository, and $M is the head
of a foreign tree, which is simply ahead of $H (i.e. we are in a
-fast
forward situation).
+fast
-
forward situation).
When two trees are specified, the user is telling 'git-read-tree'
the following:
When two trees are specified, the user is telling 'git-read-tree'
the following:
diff --git
a/Documentation/git-receive-pack.txt
b/Documentation/git-receive-pack.txt
index 514f03c97903aa0be41a4a8f0df236ccb68280b0..cb5f4052806d81b04d4a096d3697e0230d13e8ed 100644
(file)
--- a/
Documentation/git-receive-pack.txt
+++ b/
Documentation/git-receive-pack.txt
@@
-20,7
+20,7
@@
The UI for the protocol is on the 'git-send-pack' side, and the
program pair is meant to be used to push updates to remote
repository. For pull operations, see linkgit:git-fetch-pack[1].
program pair is meant to be used to push updates to remote
repository. For pull operations, see linkgit:git-fetch-pack[1].
-The command allows for creation and fast
forwarding of sha1 refs
+The command allows for creation and fast
-
forwarding of sha1 refs
(heads/tags) on the remote end (strictly speaking, it is the
local end 'git-receive-pack' runs, but to the user who is sitting at
the send-pack end, it is updating the remote. Confused?)
(heads/tags) on the remote end (strictly speaking, it is the
local end 'git-receive-pack' runs, but to the user who is sitting at
the send-pack end, it is updating the remote. Confused?)
diff --git
a/Documentation/git-reset.txt
b/Documentation/git-reset.txt
index 469cf6dbacb8de24b5dd0dd78d63dd9ecc8fbd01..2d27e405a39c77f1a7d7507db2f063a4819bec47 100644
(file)
--- a/
Documentation/git-reset.txt
+++ b/
Documentation/git-reset.txt
@@
-150,7
+150,7
@@
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard <2>
$ git pull . topic/branch <3>
Updating from 41223... to 13134...
$ git reset --hard <2>
$ git pull . topic/branch <3>
Updating from 41223... to 13134...
-Fast
forward
+Fast
-
forward
$ git reset --hard ORIG_HEAD <4>
------------
+
$ git reset --hard ORIG_HEAD <4>
------------
+
@@
-161,7
+161,7
@@
right now, so you decide to do that later.
which is a synonym for "git reset --hard HEAD" clears the mess
from the index file and the working tree.
<3> Merge a topic branch into the current branch, which resulted
which is a synonym for "git reset --hard HEAD" clears the mess
from the index file and the working tree.
<3> Merge a topic branch into the current branch, which resulted
-in a fast
forward.
+in a fast
-
forward.
<4> But you decided that the topic branch is not ready for public
consumption yet. "pull" or "merge" always leaves the original
tip of the current branch in ORIG_HEAD, so resetting hard to it
<4> But you decided that the topic branch is not ready for public
consumption yet. "pull" or "merge" always leaves the original
tip of the current branch in ORIG_HEAD, so resetting hard to it
diff --git
a/Documentation/git-send-pack.txt
b/Documentation/git-send-pack.txt
index 399821832c2a5cd6a718a7dc37a87e6b5bc0b213..5a04c6eaf78adb8c6ccff573d873392e19640fdd 100644
(file)
--- a/
Documentation/git-send-pack.txt
+++ b/
Documentation/git-send-pack.txt
@@
-105,11
+105,11
@@
name. See linkgit:git-rev-parse[1].
Without '--force', the <src> ref is stored at the remote only if
<dst> does not exist, or <dst> is a proper subset (i.e. an
Without '--force', the <src> ref is stored at the remote only if
<dst> does not exist, or <dst> is a proper subset (i.e. an
-ancestor) of <src>. This check, known as "fast
forward check",
+ancestor) of <src>. This check, known as "fast
-
forward check",
is performed in order to avoid accidentally overwriting the
remote ref and lose other peoples' commits from there.
is performed in order to avoid accidentally overwriting the
remote ref and lose other peoples' commits from there.
-With '--force', the fast
forward check is disabled for all refs.
+With '--force', the fast
-
forward check is disabled for all refs.
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.
diff --git
a/Documentation/gitcore-tutorial.txt
b/Documentation/gitcore-tutorial.txt
index b3640c4e64494689841e598cf17741ea8620af12..253ef624eb98e202049b908f98143affa1c90014 100644
(file)
--- a/
Documentation/gitcore-tutorial.txt
+++ b/
Documentation/gitcore-tutorial.txt
@@
-993,7
+993,7
@@
would be different)
----------------
Updating from ae3a2da... to a80b4aa....
----------------
Updating from ae3a2da... to a80b4aa....
-Fast
forward (no commit created; -m option ignored)
+Fast
-
forward (no commit created; -m option ignored)
example | 1 +
hello | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
example | 1 +
hello | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
@@
-1003,7
+1003,7
@@
Because your branch did not contain anything more than what had
already been merged into the `master` branch, the merge operation did
not actually do a merge. Instead, it just updated the top of
the tree of your branch to that of the `master` branch. This is
already been merged into the `master` branch, the merge operation did
not actually do a merge. Instead, it just updated the top of
the tree of your branch to that of the `master` branch. This is
-often called 'fast
forward' merge.
+often called 'fast
-
forward' merge.
You can run `gitk \--all` again to see how the commit ancestry
looks like, or run 'show-branch', which tells you this.
You can run `gitk \--all` again to see how the commit ancestry
looks like, or run 'show-branch', which tells you this.
diff --git
a/Documentation/githooks.txt
b/Documentation/githooks.txt
index 06e0f315c3bb5bb6ef3320b8b1922b76480f9646..4cc3d1387fbdb60a2134a2e399fa46140939fe2f 100644
(file)
--- a/
Documentation/githooks.txt
+++ b/
Documentation/githooks.txt
@@
-229,7
+229,7
@@
from updating that ref.
This hook can be used to prevent 'forced' update on certain refs by
making sure that the object name is a commit object that is a
descendant of the commit object named by the old object name.
This hook can be used to prevent 'forced' update on certain refs by
making sure that the object name is a commit object that is a
descendant of the commit object named by the old object name.
-That is, to enforce a "fast
forward only" policy.
+That is, to enforce a "fast
-
forward only" policy.
It could also be used to log the old..new status. However, it
does not know the entire set of branches, so it would end up
It could also be used to log the old..new status. However, it
does not know the entire set of branches, so it would end up
diff --git
a/Documentation/glossary-content.txt
b/Documentation/glossary-content.txt
index 43d84d15e921435ba4629a7d8c18021d16f89223..1f029f8aa080c4de6323e8b4905a81fa7e8e2046 100644
(file)
--- a/
Documentation/glossary-content.txt
+++ b/
Documentation/glossary-content.txt
@@
-124,7
+124,7
@@
to point at the new commit.
An evil merge is a <<def_merge,merge>> that introduces changes that
do not appear in any <<def_parent,parent>>.
An evil merge is a <<def_merge,merge>> that introduces changes that
do not appear in any <<def_parent,parent>>.
-[[def_fast_forward]]fast
forward::
+[[def_fast_forward]]fast
-
forward::
A fast-forward is a special type of <<def_merge,merge>> where you have a
<<def_revision,revision>> and you are "merging" another
<<def_branch,branch>>'s changes that happen to be a descendant of what
A fast-forward is a special type of <<def_merge,merge>> where you have a
<<def_revision,revision>> and you are "merging" another
<<def_branch,branch>>'s changes that happen to be a descendant of what
@@
-220,7
+220,7
@@
to point at the new commit.
conflict, manual intervention may be required to complete the
merge.
+
conflict, manual intervention may be required to complete the
merge.
+
-As a noun: unless it is a <<def_fast_forward,fast
forward>>, a
+As a noun: unless it is a <<def_fast_forward,fast
-
forward>>, a
successful merge results in the creation of a new <<def_commit,commit>>
representing the result of the merge, and having as
<<def_parent,parents>> the tips of the merged <<def_branch,branches>>.
successful merge results in the creation of a new <<def_commit,commit>>
representing the result of the merge, and having as
<<def_parent,parents>> the tips of the merged <<def_branch,branches>>.
diff --git
a/Documentation/howto/maintain-git.txt
b/Documentation/howto/maintain-git.txt
index 4357e269131fad960367534ae4161fe078fee30a..d527b307707c676e82a08f18cb9fdd7d3abcb228 100644
(file)
--- a/
Documentation/howto/maintain-git.txt
+++ b/
Documentation/howto/maintain-git.txt
@@
-59,7
+59,7
@@
The policy.
not yet pass the criteria set for 'next'.
- The tips of 'master', 'maint' and 'next' branches will always
not yet pass the criteria set for 'next'.
- The tips of 'master', 'maint' and 'next' branches will always
- fast
forward, to allow people to build their own
+ fast
-
forward, to allow people to build their own
customization on top of them.
- Usually 'master' contains all of 'maint', 'next' contains all
customization on top of them.
- Usually 'master' contains all of 'maint', 'next' contains all
diff --git
a/Documentation/howto/revert-branch-rebase.txt
b/Documentation/howto/revert-branch-rebase.txt
index e70d8a31e7b05e8efc70c6a56f476324065d57a6..8c32da6deb05b5da700a5bd0a4281bf862b23f2c 100644
(file)
--- a/
Documentation/howto/revert-branch-rebase.txt
+++ b/
Documentation/howto/revert-branch-rebase.txt
@@
-85,7
+85,7
@@
Fortunately I did not have to; what I have in the current branch
------------------------------------------------
$ git checkout master
------------------------------------------------
$ git checkout master
-$ git merge revert-c99 ;# this should be a fast
forward
+$ git merge revert-c99 ;# this should be a fast
-
forward
Updating from 10d781b9caa4f71495c7b34963bef137216f86a8 to e3a693c...
cache.h | 8 ++++----
commit.c | 2 +-
Updating from 10d781b9caa4f71495c7b34963bef137216f86a8 to e3a693c...
cache.h | 8 ++++----
commit.c | 2 +-
@@
-95,7
+95,7
@@
Updating from 10d781b9caa4f71495c7b34963bef137216f86a8 to e3a693c...
5 files changed, 8 insertions(+), 8 deletions(-)
------------------------------------------------
5 files changed, 8 insertions(+), 8 deletions(-)
------------------------------------------------
-There is no need to redo the test at this point. We fast
forwarded
+There is no need to redo the test at this point. We fast
-
forwarded
and we know 'master' matches 'revert-c99' exactly. In fact:
------------------------------------------------
and we know 'master' matches 'revert-c99' exactly. In fact:
------------------------------------------------
diff --git
a/Documentation/howto/update-hook-example.txt
b/Documentation/howto/update-hook-example.txt
index 697d9188850e9a685045da5bd37844b02978752d..b7f8d416d65ca1cf17d6348e858a13f6ed72c7fe 100644
(file)
--- a/
Documentation/howto/update-hook-example.txt
+++ b/
Documentation/howto/update-hook-example.txt
@@
-76,7
+76,7
@@
case "$1" in
if expr "$2" : '0*$' >/dev/null; then
info "The branch '$1' is new..."
else
if expr "$2" : '0*$' >/dev/null; then
info "The branch '$1' is new..."
else
- # updating -- make sure it is a fast
forward
+ # updating -- make sure it is a fast
-
forward
mb=$(git-merge-base "$2" "$3")
case "$mb,$2" in
"$2,$mb") info "Update is fast-forward" ;;
mb=$(git-merge-base "$2" "$3")
case "$mb,$2" in
"$2,$mb") info "Update is fast-forward" ;;
diff --git
a/Documentation/pull-fetch-param.txt
b/Documentation/pull-fetch-param.txt
index f9811f24733bde97b76dc8e695bad82eace5586b..44d936341fffe12d74b0ae6ec005f559f1de2af7 100644
(file)
--- a/
Documentation/pull-fetch-param.txt
+++ b/
Documentation/pull-fetch-param.txt
@@
-11,9
+11,9
@@
+
The remote ref that matches <src>
is fetched, and if <dst> is not empty string, the local
+
The remote ref that matches <src>
is fetched, and if <dst> is not empty string, the local
-ref that matches it is fast
forwarded using <src>.
+ref that matches it is fast
-
forwarded using <src>.
If the optional plus `+` is used, the local ref
If the optional plus `+` is used, the local ref
-is updated even if it does not result in a fast
forward
+is updated even if it does not result in a fast
-
forward
update.
+
[NOTE]
update.
+
[NOTE]
diff --git
a/Documentation/user-manual.txt
b/Documentation/user-manual.txt
index 67ebffa568fd684afd08496281a530c658a217d9..269ec475e6a822c671af994d13693cfc89e5983f 100644
(file)
--- a/
Documentation/user-manual.txt
+++ b/
Documentation/user-manual.txt
@@
-1384,7
+1384,7
@@
were merged.
However, if the current branch is a descendant of the other--so every
commit present in the one is already contained in the other--then git
However, if the current branch is a descendant of the other--so every
commit present in the one is already contained in the other--then git
-just performs a "fast
forward"; the head of the current branch is moved
+just performs a "fast
-
forward"; the head of the current branch is moved
forward to point at the head of the merged-in branch, without any new
commits being created.
forward to point at the head of the merged-in branch, without any new
commits being created.
@@
-1719,7
+1719,7
@@
producing a default commit message documenting the branch and
repository that you pulled from.
(But note that no such commit will be created in the case of a
repository that you pulled from.
(But note that no such commit will be created in the case of a
-<<fast-forwards,fast
forward>>; instead, your branch will just be
+<<fast-forwards,fast
-
forward>>; instead, your branch will just be
updated to point to the latest commit from the upstream branch.)
The `git pull` command can also be given "." as the "remote" repository,
updated to point to the latest commit from the upstream branch.)
The `git pull` command can also be given "." as the "remote" repository,
@@
-1943,7
+1943,7
@@
$ git push ssh://yourserver.com/~you/proj.git master
-------------------------------------------------
As with `git fetch`, `git push` will complain if this does not result in a
-------------------------------------------------
As with `git fetch`, `git push` will complain if this does not result in a
-<<fast-forwards,fast
forward>>; see the following section for details on
+<<fast-forwards,fast
-
forward>>; see the following section for details on
handling this case.
Note that the target of a "push" is normally a
handling this case.
Note that the target of a "push" is normally a
@@
-1976,7
+1976,7
@@
details.
What to do when a push fails
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What to do when a push fails
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-If a push would not result in a <<fast-forwards,fast
forward>> of the
+If a push would not result in a <<fast-forwards,fast
-
forward>> of the
remote branch, then it will fail with an error like:
-------------------------------------------------
remote branch, then it will fail with an error like:
-------------------------------------------------
@@
-2115,7
+2115,7
@@
$ git checkout release && git pull
Important note! If you have any local changes in these branches, then
this merge will create a commit object in the history (with no local
Important note! If you have any local changes in these branches, then
this merge will create a commit object in the history (with no local
-changes git will simply do a "
Fast
forward" merge). Many people dislike
+changes git will simply do a "
fast-
forward" merge). Many people dislike
the "noise" that this creates in the Linux history, so you should avoid
doing this capriciously in the "release" branch, as these noisy commits
will become part of the permanent history when you ask Linus to pull
the "noise" that this creates in the Linux history, so you should avoid
doing this capriciously in the "release" branch, as these noisy commits
will become part of the permanent history when you ask Linus to pull
@@
-2729,9
+2729,9
@@
In the previous example, when updating an existing branch, "git fetch"
checks to make sure that the most recent commit on the remote
branch is a descendant of the most recent commit on your copy of the
branch before updating your copy of the branch to point at the new
checks to make sure that the most recent commit on the remote
branch is a descendant of the most recent commit on your copy of the
branch before updating your copy of the branch to point at the new
-commit. Git calls this process a <<fast-forwards,fast
forward>>.
+commit. Git calls this process a <<fast-forwards,fast
-
forward>>.
-A fast
forward looks something like this:
+A fast
-
forward looks something like this:
................................................
o--o--o--o <-- old head of the branch
................................................
o--o--o--o <-- old head of the branch
diff --git
a/builtin-fetch--tool.c
b/builtin-fetch--tool.c
index 3dbdf7a2887002f0d7a67a1db35bd3c72d7a9d30..cd10dbcbc90ee155e05cffb49e88defcf35c5a59 100644
(file)
--- a/
builtin-fetch--tool.c
+++ b/
builtin-fetch--tool.c
@@
-97,21
+97,21
@@
static int update_local_ref(const char *name,
strcpy(newh, find_unique_abbrev(sha1_new, DEFAULT_ABBREV));
if (in_merge_bases(current, &updated, 1)) {
strcpy(newh, find_unique_abbrev(sha1_new, DEFAULT_ABBREV));
if (in_merge_bases(current, &updated, 1)) {
- fprintf(stderr, "* %s: fast
forward to %s\n",
+ fprintf(stderr, "* %s: fast
-
forward to %s\n",
name, note);
fprintf(stderr, " old..new: %s..%s\n", oldh, newh);
name, note);
fprintf(stderr, " old..new: %s..%s\n", oldh, newh);
- return update_ref_env("fast
forward", name, sha1_new, sha1_old);
+ return update_ref_env("fast
-
forward", name, sha1_new, sha1_old);
}
if (!force) {
fprintf(stderr,
}
if (!force) {
fprintf(stderr,
- "* %s: not updating to non-fast
forward %s\n",
+ "* %s: not updating to non-fast
-
forward %s\n",
name, note);
fprintf(stderr,
" old...new: %s...%s\n", oldh, newh);
return 1;
}
fprintf(stderr,
name, note);
fprintf(stderr,
" old...new: %s...%s\n", oldh, newh);
return 1;
}
fprintf(stderr,
- "* %s: forcing update to non-fast
forward %s\n",
+ "* %s: forcing update to non-fast
-
forward %s\n",
name, note);
fprintf(stderr, " old...new: %s...%s\n", oldh, newh);
return update_ref_env("forced-update", name, sha1_new, sha1_old);
name, note);
fprintf(stderr, " old...new: %s...%s\n", oldh, newh);
return update_ref_env("forced-update", name, sha1_new, sha1_old);
diff --git
a/builtin-fetch.c
b/builtin-fetch.c
index cb48c57ca3e66b7ec39a98128b2cfb058c2dad15..6303aa0f581ace87381fb6a6d425ea8031915c21 100644
(file)
--- a/
builtin-fetch.c
+++ b/
builtin-fetch.c
@@
-269,7
+269,7
@@
static int update_local_ref(struct ref *ref,
strcpy(quickref, find_unique_abbrev(current->object.sha1, DEFAULT_ABBREV));
strcat(quickref, "..");
strcat(quickref, find_unique_abbrev(ref->new_sha1, DEFAULT_ABBREV));
strcpy(quickref, find_unique_abbrev(current->object.sha1, DEFAULT_ABBREV));
strcat(quickref, "..");
strcat(quickref, find_unique_abbrev(ref->new_sha1, DEFAULT_ABBREV));
- r = s_update_ref("fast
forward", ref, 1);
+ r = s_update_ref("fast
-
forward", ref, 1);
sprintf(display, "%c %-*s %-*s -> %s%s", r ? '!' : ' ',
SUMMARY_WIDTH, quickref, REFCOL_WIDTH, remote,
pretty_ref, r ? " (unable to update local ref)" : "");
sprintf(display, "%c %-*s %-*s -> %s%s", r ? '!' : ' ',
SUMMARY_WIDTH, quickref, REFCOL_WIDTH, remote,
pretty_ref, r ? " (unable to update local ref)" : "");
@@
-287,7
+287,7
@@
static int update_local_ref(struct ref *ref,
r ? "unable to update local ref" : "forced update");
return r;
} else {
r ? "unable to update local ref" : "forced update");
return r;
} else {
- sprintf(display, "! %-*s %-*s -> %s (non
fast
forward)",
+ sprintf(display, "! %-*s %-*s -> %s (non
-fast-
forward)",
SUMMARY_WIDTH, "[rejected]", REFCOL_WIDTH, remote,
pretty_ref);
return 1;
SUMMARY_WIDTH, "[rejected]", REFCOL_WIDTH, remote,
pretty_ref);
return 1;
diff --git
a/builtin-merge.c
b/builtin-merge.c
index b6b84286b26a4317dfd5185ae83fd861c6f9fa7d..a595b8b47b5eebae08ac02775679e066265552bd 100644
(file)
--- a/
builtin-merge.c
+++ b/
builtin-merge.c
@@
-166,7
+166,7
@@
static struct option builtin_merge_options[] = {
OPT_BOOLEAN(0, "commit", &option_commit,
"perform a commit if the merge succeeds (default)"),
OPT_BOOLEAN(0, "ff", &allow_fast_forward,
OPT_BOOLEAN(0, "commit", &option_commit,
"perform a commit if the merge succeeds (default)"),
OPT_BOOLEAN(0, "ff", &allow_fast_forward,
- "allow fast
forward (default)"),
+ "allow fast
-
forward (default)"),
OPT_CALLBACK('s', "strategy", &use_strategies, "strategy",
"merge strategy to use", option_parse_strategy),
OPT_CALLBACK('m', "message", &merge_msg, "message",
OPT_CALLBACK('s', "strategy", &use_strategies, "strategy",
"merge strategy to use", option_parse_strategy),
OPT_CALLBACK('m', "message", &merge_msg, "message",
@@
-1013,7
+1013,7
@@
int cmd_merge(int argc, const char **argv, const char *prefix)
hex,
find_unique_abbrev(remoteheads->item->object.sha1,
DEFAULT_ABBREV));
hex,
find_unique_abbrev(remoteheads->item->object.sha1,
DEFAULT_ABBREV));
- strbuf_addstr(&msg, "Fast
forward");
+ strbuf_addstr(&msg, "Fast
-
forward");
if (have_message)
strbuf_addstr(&msg,
" (no commit created; -m option ignored)");
if (have_message)
strbuf_addstr(&msg,
" (no commit created; -m option ignored)");
@@
-1031,12
+1031,12
@@
int cmd_merge(int argc, const char **argv, const char *prefix)
} else if (!remoteheads->next && common->next)
;
/*
} else if (!remoteheads->next && common->next)
;
/*
- * We are not doing octopus and not fast
forward. Need
+ * We are not doing octopus and not fast
-
forward. Need
* a real merge.
*/
else if (!remoteheads->next && !common->next && option_commit) {
/*
* a real merge.
*/
else if (!remoteheads->next && !common->next && option_commit) {
/*
- * We are not doing octopus, not fast
forward, and have
+ * We are not doing octopus, not fast
-
forward, and have
* only one common.
*/
refresh_cache(REFRESH_QUIET);
* only one common.
*/
refresh_cache(REFRESH_QUIET);
diff --git
a/builtin-push.c
b/builtin-push.c
index 3cb1ee46d1da898c2be5666a93002ca43df80093..e883574f0330989b8f192387d5aea4f4b8db9261 100644
(file)
--- a/
builtin-push.c
+++ b/
builtin-push.c
@@
-159,7
+159,7
@@
static int do_push(const char *repo, int flags)
error("failed to push some refs to '%s'", url[i]);
if (nonfastforward && advice_push_nonfastforward) {
printf("To prevent you from losing history, non-fast-forward updates were rejected\n"
error("failed to push some refs to '%s'", url[i]);
if (nonfastforward && advice_push_nonfastforward) {
printf("To prevent you from losing history, non-fast-forward updates were rejected\n"
- "Merge the remote changes before pushing again. See the 'non-fast
forward'\n"
+ "Merge the remote changes before pushing again. See the 'non-fast
-
forward'\n"
"section of 'git push --help' for details.\n");
}
errs++;
"section of 'git push --help' for details.\n");
}
errs++;
diff --git
a/builtin-receive-pack.c
b/builtin-receive-pack.c
index b771fe9b20f4c4d6e19289f428442d489aba6896..fea8fcdd8aa27e3210bf08d48cb2e9275f4def97 100644
(file)
--- a/
builtin-receive-pack.c
+++ b/
builtin-receive-pack.c
@@
-329,9
+329,9
@@
static const char *update(struct command *cmd)
break;
free_commit_list(bases);
if (!ent) {
break;
free_commit_list(bases);
if (!ent) {
- error("denying non-fast
forward %s"
+ error("denying non-fast
-
forward %s"
" (you should pull first)", name);
" (you should pull first)", name);
- return "non-fast
forward";
+ return "non-fast
-
forward";
}
}
if (run_update_hook(cmd)) {
}
}
if (run_update_hook(cmd)) {
diff --git
a/builtin-remote.c
b/builtin-remote.c
index 0777dd719b41ec4c545b336bc5144a73d34001d7..9aafc19c4d20dd223002feb480980d5610b0b5f7 100644
(file)
--- a/
builtin-remote.c
+++ b/
builtin-remote.c
@@
-953,7
+953,7
@@
static int show_push_info_item(struct string_list_item *item, void *cb_data)
status = "up to date";
break;
case PUSH_STATUS_FASTFORWARD:
status = "up to date";
break;
case PUSH_STATUS_FASTFORWARD:
- status = "fast
forwardable";
+ status = "fast
-
forwardable";
break;
case PUSH_STATUS_OUTOFDATE:
status = "local out of date";
break;
case PUSH_STATUS_OUTOFDATE:
status = "local out of date";
diff --git
a/builtin-send-pack.c
b/builtin-send-pack.c
index 37e528e28364fbde5a5ba31316aa7bf66d43586b..37acad5ac190b7e203c61de475c15a0b86b8548a 100644
(file)
--- a/
builtin-send-pack.c
+++ b/
builtin-send-pack.c
@@
-246,7
+246,7
@@
static int print_one_push_status(struct ref *ref, const char *dest, int count)
break;
case REF_STATUS_REJECT_NONFASTFORWARD:
print_ref_status('!', "[rejected]", ref, ref->peer_ref,
break;
case REF_STATUS_REJECT_NONFASTFORWARD:
print_ref_status('!', "[rejected]", ref, ref->peer_ref,
- "non-fast
forward");
+ "non-fast
-
forward");
break;
case REF_STATUS_REMOTE_REJECT:
print_ref_status('!', "[remote rejected]", ref,
break;
case REF_STATUS_REMOTE_REJECT:
print_ref_status('!', "[remote rejected]", ref,
diff --git
a/contrib/examples/git-merge.sh
b/contrib/examples/git-merge.sh
index e9588eec33ba5b64d186ff048bb040c18c57e6bc..500635fe4bb5a8f60bc76502ef15cd97bd273f74 100755
(executable)
--- a/
contrib/examples/git-merge.sh
+++ b/
contrib/examples/git-merge.sh
@@
-14,7
+14,7
@@
summary (synonym to --stat)
log add list of one-line log to merge commit message
squash create a single commit instead of doing a merge
commit perform a commit if the merge succeeds (default)
log add list of one-line log to merge commit message
squash create a single commit instead of doing a merge
commit perform a commit if the merge succeeds (default)
-ff allow fast
forward (default)
+ff allow fast
-
forward (default)
s,strategy= merge strategy to use
m,message= message to be used for the merge commit (if any)
"
s,strategy= merge strategy to use
m,message= message to be used for the merge commit (if any)
"
@@
-353,7
+353,7
@@
t,1,"$head",*)
# Again the most common case of merging one remote.
echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $1)"
git update-index --refresh 2>/dev/null
# Again the most common case of merging one remote.
echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $1)"
git update-index --refresh 2>/dev/null
- msg="Fast
forward"
+ msg="Fast
-
forward"
if test -n "$have_message"
then
msg="$msg (no commit created; -m option ignored)"
if test -n "$have_message"
then
msg="$msg (no commit created; -m option ignored)"
@@
-365,11
+365,11
@@
t,1,"$head",*)
exit 0
;;
?,1,?*"$LF"?*,*)
exit 0
;;
?,1,?*"$LF"?*,*)
- # We are not doing octopus and not fast
forward. Need a
+ # We are not doing octopus and not fast
-
forward. Need a
# real merge.
;;
?,1,*,)
# real merge.
;;
?,1,*,)
- # We are not doing octopus, not fast
forward, and have only
+ # We are not doing octopus, not fast
-
forward, and have only
# one common.
git update-index --refresh 2>/dev/null
case "$allow_trivial_merge" in
# one common.
git update-index --refresh 2>/dev/null
case "$allow_trivial_merge" in
diff --git
a/contrib/examples/git-resolve.sh
b/contrib/examples/git-resolve.sh
index 0ee1bd898ecbb725d13385408b4ed4bcb413f503..8f98142f77b5d6eda44b301082da20604a893db0 100755
(executable)
--- a/
contrib/examples/git-resolve.sh
+++ b/
contrib/examples/git-resolve.sh
@@
-48,7
+48,7
@@
case "$common" in
"$head")
echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $merge)"
git read-tree -u -m $head $merge || exit 1
"$head")
echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $merge)"
git read-tree -u -m $head $merge || exit 1
- git update-ref -m "resolve $merge_name: Fast
forward" \
+ git update-ref -m "resolve $merge_name: Fast
-
forward" \
HEAD "$merge" "$head"
git diff-tree -p $head $merge | git apply --stat
dropheads
HEAD "$merge" "$head"
git diff-tree -p $head $merge | git apply --stat
dropheads
diff --git
a/contrib/hooks/post-receive-email
b/contrib/hooks/post-receive-email
index 2a66063e44e2ca8e1742b59e046b3702721086cb..58a35c82870c54f844fd1154a82237891655f38f 100755
(executable)
--- a/
contrib/hooks/post-receive-email
+++ b/
contrib/hooks/post-receive-email
@@
-315,8
+315,8
@@
generate_update_branch_email()
# "remotes/" will be ignored as well.
# List all of the revisions that were removed by this update, in a
# "remotes/" will be ignored as well.
# List all of the revisions that were removed by this update, in a
- # fast
forward update, this list will be empty, because rev-list O
- # ^N is empty. For a non
fast
forward, O ^N is the list of removed
+ # fast
-
forward update, this list will be empty, because rev-list O
+ # ^N is empty. For a non
-fast-
forward, O ^N is the list of removed
# revisions
fast_forward=""
rev=""
# revisions
fast_forward=""
rev=""
@@
-411,7
+411,7
@@
generate_update_branch_email()
# revision because the base is effectively a random revision at this
# point - the user will be interested in what this revision changed
# - including the undoing of previous revisions in the case of
# revision because the base is effectively a random revision at this
# point - the user will be interested in what this revision changed
# - including the undoing of previous revisions in the case of
- # non-fast
forward updates.
+ # non-fast
-
forward updates.
echo ""
echo "Summary of changes:"
git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev
echo ""
echo "Summary of changes:"
git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev
diff --git
a/git-merge-octopus.sh
b/git-merge-octopus.sh
index 1dadbb49666c6d796df76babbfd291a2de4357e4..825c52c2436d15edb12a2ce7850437e0e531e0e3 100755
(executable)
--- a/
git-merge-octopus.sh
+++ b/
git-merge-octopus.sh
@@
-81,7
+81,7
@@
do
# tree as the intermediate result of the merge.
# We still need to count this as part of the parent set.
# tree as the intermediate result of the merge.
# We still need to count this as part of the parent set.
- echo "Fast
forwarding to: $SHA1"
+ echo "Fast
-
forwarding to: $SHA1"
git read-tree -u -m $head $SHA1 || exit
MRC=$SHA1 MRT=$(git write-tree)
continue
git read-tree -u -m $head $SHA1 || exit
MRC=$SHA1 MRT=$(git write-tree)
continue
diff --git
a/git-pull.sh
b/git-pull.sh
index fc78592ae04283db2af633ec080f99c6404ceda7..f36eb3e39736620a4f47d95c795f792bddd0d0e3 100755
(executable)
--- a/
git-pull.sh
+++ b/
git-pull.sh
@@
-171,7
+171,7
@@
then
# First update the working tree to match $curr_head.
echo >&2 "Warning: fetch updated the current branch head."
# First update the working tree to match $curr_head.
echo >&2 "Warning: fetch updated the current branch head."
- echo >&2 "Warning: fast
forwarding your working tree from"
+ echo >&2 "Warning: fast
-
forwarding your working tree from"
echo >&2 "Warning: commit $orig_head."
git update-index -q --refresh
git read-tree -u -m "$orig_head" "$curr_head" ||
echo >&2 "Warning: commit $orig_head."
git update-index -q --refresh
git read-tree -u -m "$orig_head" "$curr_head" ||
diff --git
a/git-rebase--interactive.sh
b/git-rebase--interactive.sh
index 23ded48322bf795b06aa40e4684bc710c8232549..c8987887f22d844679055c086c0b9ed7dd6d46dd 100755
(executable)
--- a/
git-rebase--interactive.sh
+++ b/
git-rebase--interactive.sh
@@
-168,7
+168,7
@@
pick_one () {
output git reset --hard $sha1
test "a$1" = a-n && output git reset --soft $current_sha1
sha1=$(git rev-parse --short $sha1)
output git reset --hard $sha1
test "a$1" = a-n && output git reset --soft $current_sha1
sha1=$(git rev-parse --short $sha1)
- output warn Fast
forward to $sha1
+ output warn Fast
-
forward to $sha1
else
output git cherry-pick "$@"
fi
else
output git cherry-pick "$@"
fi
@@
-248,9
+248,9
@@
pick_one_preserving_merges () {
done
case $fast_forward in
t)
done
case $fast_forward in
t)
- output warn "Fast
forward to $sha1"
+ output warn "Fast
-
forward to $sha1"
output git reset --hard $sha1 ||
output git reset --hard $sha1 ||
- die "Cannot fast
forward to $sha1"
+ die "Cannot fast
-
forward to $sha1"
;;
f)
first_parent=$(expr "$new_parents" : ' \([^ ]*\)')
;;
f)
first_parent=$(expr "$new_parents" : ' \([^ ]*\)')
diff --git
a/git-rebase.sh
b/git-rebase.sh
index 6ec155cf03c98f2e075f298039037d0e099311b1..6830e1627d67c59407885a3cfa44e83a802613bc 100755
(executable)
--- a/
git-rebase.sh
+++ b/
git-rebase.sh
@@
-496,7
+496,7
@@
then
fi
# If the $onto is a proper descendant of the tip of the branch, then
fi
# If the $onto is a proper descendant of the tip of the branch, then
-# we just fast
forwarded.
+# we just fast
-
forwarded.
if test "$mb" = "$branch"
then
say "Fast-forwarded $branch_name to $onto_name."
if test "$mb" = "$branch"
then
say "Fast-forwarded $branch_name to $onto_name."
diff --git
a/t/t1001-read-tree-m-2way.sh
b/t/t1001-read-tree-m-2way.sh
index 271bc4e17f0c12cda550ffa4f54f1ad7555b3bed..c2d408b46120ef9d962272b652a68a83ba0852a5 100755
(executable)
--- a/
t/t1001-read-tree-m-2way.sh
+++ b/
t/t1001-read-tree-m-2way.sh
@@
-5,7
+5,7
@@
test_description='Two way merge with read-tree -m $H $M
test_description='Two way merge with read-tree -m $H $M
-This test tries two-way merge (aka fast
forward with carry forward).
+This test tries two-way merge (aka fast
-
forward with carry forward).
There is the head (called H) and another commit (called M), which is
simply ahead of H. The index and the work tree contains a state that
There is the head (called H) and another commit (called M), which is
simply ahead of H. The index and the work tree contains a state that
@@
-51,7
+51,7
@@
check_cache_at () {
}
cat >bozbar-old <<\EOF
}
cat >bozbar-old <<\EOF
-This is a sample file used in two-way fast
forward merge
+This is a sample file used in two-way fast
-
forward merge
tests. Its second line ends with a magic word bozbar
which will be modified by the merged head to gnusto.
It has some extra lines so that external tools can
tests. Its second line ends with a magic word bozbar
which will be modified by the merged head to gnusto.
It has some extra lines so that external tools can
@@
-300,7
+300,7
@@
test_expect_success \
echo gnusto gnusto >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
echo gnusto gnusto >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
-# This fails with straight two-way fast
forward.
+# This fails with straight two-way fast
-
forward.
test_expect_success \
'22 - local change cache updated.' \
'rm -f .git/index &&
test_expect_success \
'22 - local change cache updated.' \
'rm -f .git/index &&
diff --git
a/t/t5505-remote.sh
b/t/t5505-remote.sh
index 852ccb5d7d649a71eeab25eadce6940b9c2a6f63..220b6a341377fadfef34208dd7316bbb7e39e12d 100755
(executable)
--- a/
t/t5505-remote.sh
+++ b/
t/t5505-remote.sh
@@
-158,7
+158,7
@@
cat > test/expect << EOF
another
master
Local refs configured for 'git push':
another
master
Local refs configured for 'git push':
- ahead forces to master (fast
forwardable)
+ ahead forces to master (fast
-
forwardable)
master pushes to another (up to date)
EOF
master pushes to another (up to date)
EOF
diff --git
a/t/t5518-fetch-exit-status.sh
b/t/t5518-fetch-exit-status.sh
index c6bc65faa06adeaced0733064fb09eb82add585e..c2060bb870f35a3819fabb19c97e921e0ae43349 100755
(executable)
--- a/
t/t5518-fetch-exit-status.sh
+++ b/
t/t5518-fetch-exit-status.sh
@@
-22,7
+22,7
@@
test_expect_success setup '
git commit -a -m next
'
git commit -a -m next
'
-test_expect_success 'non
fast
forward fetch' '
+test_expect_success 'non
-fast-
forward fetch' '
test_must_fail git fetch . master:side
test_must_fail git fetch . master:side
diff --git
a/t/t6028-merge-up-to-date.sh
b/t/t6028-merge-up-to-date.sh
index f8f3e3ff2c00df468f5703a4e0ac31f52e42e06d..a91644e3b2ac3490cfe49d5e67c9736197cd56a1 100755
(executable)
--- a/
t/t6028-merge-up-to-date.sh
+++ b/
t/t6028-merge-up-to-date.sh
@@
-1,6
+1,6
@@
#!/bin/sh
#!/bin/sh
-test_description='merge fast
forward and up to date'
+test_description='merge fast
-
forward and up to date'
. ./test-lib.sh
. ./test-lib.sh
diff --git
a/transport.c
b/transport.c
index 644a30a0b200b339d291f4cc3d35b2268d12facd..d81a42aec4fc2e3ab5dfd1fcbb1d6af3372eaf77 100644
(file)
--- a/
transport.c
+++ b/
transport.c
@@
-668,7
+668,7
@@
static int print_one_push_status(struct ref *ref, const char *dest, int count, i
break;
case REF_STATUS_REJECT_NONFASTFORWARD:
print_ref_status('!', "[rejected]", ref, ref->peer_ref,
break;
case REF_STATUS_REJECT_NONFASTFORWARD:
print_ref_status('!', "[rejected]", ref, ref->peer_ref,
- "non-fast
forward", porcelain);
+ "non-fast
-
forward", porcelain);
break;
case REF_STATUS_REMOTE_REJECT:
print_ref_status('!', "[remote rejected]", ref,
break;
case REF_STATUS_REMOTE_REJECT:
print_ref_status('!', "[remote rejected]", ref,
diff --git
a/unpack-trees.c
b/unpack-trees.c
index 720f7a161651126872b7357173c10d69d1db7636..157d5d001fe3014def96e3660df7ee5b1b98c275 100644
(file)
--- a/
unpack-trees.c
+++ b/
unpack-trees.c
@@
-895,7
+895,7
@@
int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o)
* Two-way merge.
*
* The rule is to "carry forward" what is in the index without losing
* Two-way merge.
*
* The rule is to "carry forward" what is in the index without losing
- * information across a "fast
forward", favoring a successful merge
+ * information across a "fast
-
forward", favoring a successful merge
* over a merge failure when it makes sense. For details of the
* "carry forward" rule, please see <Documentation/git-read-tree.txt>.
*
* over a merge failure when it makes sense. For details of the
* "carry forward" rule, please see <Documentation/git-read-tree.txt>.
*