зеркало из https://github.com/microsoft/git.git
Merge branch 'sb/maint-octopus' into maint
* sb/maint-octopus: octopus: remove dead code octopus: reenable fast-forward merges octopus: make merge process simpler to follow Conflicts: git-merge-octopus.sh
This commit is contained in:
Коммит
ce67b3eed8
|
@ -44,9 +44,8 @@ esac
|
|||
# MRC is the current "merge reference commit"
|
||||
# MRT is the current "merge result tree"
|
||||
|
||||
MRC=$head MSG= PARENT="-p $head"
|
||||
MRC=$(git rev-parse --verify -q $head)
|
||||
MRT=$(git write-tree)
|
||||
CNT=1 ;# counting our head
|
||||
NON_FF_MERGE=0
|
||||
OCTOPUS_FAILURE=0
|
||||
for SHA1 in $remotes
|
||||
|
@ -61,19 +60,17 @@ do
|
|||
exit 2
|
||||
esac
|
||||
|
||||
eval pretty_name=\${GITHEAD_$SHA1:-$SHA1}
|
||||
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
|
||||
*"$LF$SHA1$LF"*)
|
||||
echo "Already up-to-date with $SHA1"
|
||||
echo "Already up-to-date with $pretty_name"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
CNT=`expr $CNT + 1`
|
||||
PARENT="$PARENT -p $SHA1"
|
||||
|
||||
if test "$common,$NON_FF_MERGE" = "$MRC,0"
|
||||
then
|
||||
# The first head being merged was a fast-forward.
|
||||
|
@ -81,7 +78,7 @@ do
|
|||
# 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: $pretty_name"
|
||||
git read-tree -u -m $head $SHA1 || exit
|
||||
MRC=$SHA1 MRT=$(git write-tree)
|
||||
continue
|
||||
|
@ -89,7 +86,7 @@ do
|
|||
|
||||
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
|
||||
next=$(git write-tree 2>/dev/null)
|
||||
if test $? -ne 0
|
||||
|
|
|
@ -49,4 +49,55 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' '
|
|||
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
|
||||
'
|
||||
|
||||
cat >expected <<\EOF
|
||||
Fast-forwarding to: c1
|
||||
Trying simple merge with c2
|
||||
Merge made by octopus.
|
||||
c1.c | 1 +
|
||||
c2.c | 1 +
|
||||
2 files changed, 2 insertions(+), 0 deletions(-)
|
||||
create mode 100644 c1.c
|
||||
create mode 100644 c2.c
|
||||
EOF
|
||||
|
||||
test_expect_success 'merge fast-forward output uses pretty names' '
|
||||
git reset --hard c0 &&
|
||||
git merge c1 c2 >actual &&
|
||||
test_cmp actual expected
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче