summaryrefslogtreecommitdiff
path: root/t/t4215-log-skewed-merges.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t4215-log-skewed-merges.sh')
-rwxr-xr-xt/t4215-log-skewed-merges.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/t/t4215-log-skewed-merges.sh b/t/t4215-log-skewed-merges.sh
new file mode 100755
index 0000000..4582ba0
--- /dev/null
+++ b/t/t4215-log-skewed-merges.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+test_description='git log --graph of skewed merges'
+
+. ./test-lib.sh
+
+test_expect_success 'log --graph with merge fusing with its left and right neighbors' '
+ cat >expect <<-\EOF &&
+ * H
+ |\
+ | * G
+ | |\
+ | | * F
+ | | |
+ | | \
+ | *-. \ E
+ | |\ \ \
+ |/ / / /
+ | | | /
+ | | |/
+ | | * D
+ | * | C
+ | |/
+ * | B
+ |/
+ * A
+ EOF
+
+ git checkout --orphan _p &&
+ test_commit A &&
+ test_commit B &&
+ git checkout -b _q @^ && test_commit C &&
+ git checkout -b _r @^ && test_commit D &&
+ git checkout _p && git merge --no-ff _q _r -m E &&
+ git checkout _r && test_commit F &&
+ git checkout _p && git merge --no-ff _r -m G &&
+ git checkout @^^ && git merge --no-ff _p -m H &&
+
+ git log --graph --pretty=tformat:%s | sed "s/ *$//" >actual &&
+ test_cmp expect actual
+'
+
+test_done