summaryrefslogtreecommitdiff
path: root/quote.h
diff options
context:
space:
mode:
authorLibravatar Miklos Vajna <vmiklos@frugalware.org>2008-10-03 14:04:47 +0200
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2008-10-03 08:18:45 -0700
commitcf10f9fdd5e673a163847f0e931ce9731507e03b (patch)
tree16f66fce8188e900ae2c995ea62412e8671a3dd7 /quote.h
parenttests: add a testcase for "git submodule sync" (diff)
downloadtgif-cf10f9fdd5e673a163847f0e931ce9731507e03b.tar.xz
builtin-commit: use reduce_heads() only when appropriate
Since commit 6bb6b034 (builtin-commit: use commit_tree(), 2008-09-10), builtin-commit performs a reduce_heads() unconditionally. However, it's not always needed, and in some cases even harmful. reduce_heads() is not needed for the initial commit or for an "ordinary" commit, because they don't have any or have only one parent, respectively. reduce_heads() must be avoided when 'git commit' is run after a 'git merge --no-ff --no-commit', otherwise it will turn the non-fast-forward merge into fast-forward. For the same reason, reduce_heads() must be avoided when amending such a merge commit. To resolve this issue, 'git merge' will write info about whether fast-forward is allowed or not to $GIT_DIR/MERGE_MODE. Based on this info, 'git commit' will only perform reduce_heads() when it's committing a merge and fast-forward is enabled. Also add test cases to ensure that non-fast-forward merges are committed and amended properly. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'quote.h')
0 files changed, 0 insertions, 0 deletions