octopus: make merge process simpler to follow

Its not very easy to understand what heads are being merged given
the current output of an octopus merge. Fix this by replacing the
sha1 with the (usually) better description in GITHEAD_<SHA1>.

Suggested-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Stephen Boyd 2009-12-11 16:38:57 -08:00 committed by Junio C Hamano
parent 9861b644e0
commit 81334502ee
2 changed files with 38 additions and 4 deletions

View File

@ -61,12 +61,13 @@ do
exit 2 exit 2
esac esac
eval pretty_name=\${GITHEAD_$SHA1:-$SHA1}
common=$(git merge-base --all $SHA1 $MRC) || common=$(git merge-base --all $SHA1 $MRC) ||
die "Unable to find common commit with $SHA1" die "Unable to find common commit with $pretty_name"
case "$LF$common$LF" in case "$LF$common$LF" in
*"$LF$SHA1$LF"*) *"$LF$SHA1$LF"*)
echo "Already up-to-date with $SHA1" echo "Already up-to-date with $pretty_name"
continue continue
;; ;;
esac esac
@ -81,7 +82,7 @@ do
# tree as the intermediate result of the merge. # tree as the intermediate result of the merge.
# We still need to count this as part of the parent set. # We still need to count this as part of the parent set.
echo "Fast forwarding to: $SHA1" echo "Fast-forwarding to: $pretty_name"
git read-tree -u -m $head $SHA1 || exit git read-tree -u -m $head $SHA1 || exit
MRC=$SHA1 MRT=$(git write-tree) MRC=$SHA1 MRT=$(git write-tree)
continue continue
@ -89,7 +90,7 @@ do
NON_FF_MERGE=1 NON_FF_MERGE=1
echo "Trying simple merge with $SHA1" echo "Trying simple merge with $pretty_name"
git read-tree -u -m --aggressive $common $MRT $SHA1 || exit 2 git read-tree -u -m --aggressive $common $MRT $SHA1 || exit 2
next=$(git write-tree 2>/dev/null) next=$(git write-tree 2>/dev/null)
if test $? -ne 0 if test $? -ne 0

View File

@ -49,4 +49,37 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' '
done done
' '
cat >expected <<\EOF
Trying simple merge with c2
Trying simple merge with c3
Trying simple merge with c4
Merge made by octopus.
c2.c | 1 +
c3.c | 1 +
c4.c | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
create mode 100644 c2.c
create mode 100644 c3.c
create mode 100644 c4.c
EOF
test_expect_success 'merge output uses pretty names' '
git reset --hard c1 &&
git merge c2 c3 c4 >actual &&
test_cmp actual expected
'
cat >expected <<\EOF
Already up-to-date with c4
Trying simple merge with c5
Merge made by octopus.
c5.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 c5.c
EOF
test_expect_success 'merge up-to-date output uses pretty names' '
git merge c4 c5 >actual &&
test_cmp actual expected
'
test_done test_done