From 78ec2268aca28653157a72bbebe42069f2fc903f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 16 Sep 2008 19:17:31 +0000 Subject: [PATCH] Autogenerated HTML docs for v1.6.0.2-249-g97d7f --- git-read-tree.html | 13 +++++++++++-- git-read-tree.txt | 11 ++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/git-read-tree.html b/git-read-tree.html index 31d8eed02..5582b864f 100644 --- a/git-read-tree.html +++ b/git-read-tree.html @@ -537,7 +537,10 @@ Here are the "carry forward" rules:

0 nothing nothing nothing (does not happen) 1 nothing nothing exists use M 2 nothing exists nothing remove path from index -3 nothing exists exists use M +3 nothing exists exists, use M if "initial checkout" + H == M keep index otherwise + exists fail + H != M
@@ -592,6 +595,12 @@ you picked it up via e-mail in a patch form), git diff-index --cached $H would have told you about the change before this merge, but it would not show in git diff-index --cached $M output after two-tree merge.

+

Case #3 is slightly tricky and needs explanation. The result from this +rule logically should be to remove the path if the user staged the removal +of the path and then swiching to a new branch. That however will prevent +the initial checkout from happening, so the rule is modified to use M (new +tree) only when the contents of the index is empty. Otherwise the removal +of the path is kept as long as $H and $M are the same.

3-Way Merge

Each "index" entry has two bits worth of "stage" state. stage 0 is the normal one, and is the only one you'd see in any kind of normal use.

@@ -767,7 +776,7 @@ have finished your work-in-progress), attempt the merge again.

diff --git a/git-read-tree.txt b/git-read-tree.txt index 6f4b9b017..309deac23 100644 --- a/git-read-tree.txt +++ b/git-read-tree.txt @@ -160,7 +160,10 @@ Here are the "carry forward" rules: 0 nothing nothing nothing (does not happen) 1 nothing nothing exists use M 2 nothing exists nothing remove path from index - 3 nothing exists exists use M + 3 nothing exists exists, use M if "initial checkout" + H == M keep index otherwise + exists fail + H != M clean I==H I==M ------------------ @@ -207,6 +210,12 @@ you picked it up via e-mail in a patch form), `git diff-index merge, but it would not show in `git diff-index --cached $M` output after two-tree merge. +Case #3 is slightly tricky and needs explanation. The result from this +rule logically should be to remove the path if the user staged the removal +of the path and then swiching to a new branch. That however will prevent +the initial checkout from happening, so the rule is modified to use M (new +tree) only when the contents of the index is empty. Otherwise the removal +of the path is kept as long as $H and $M are the same. 3-Way Merge ~~~~~~~~~~~ -- 2.26.2