t3427: add a clarifying comment

The flow of this test script is outright confusing, and to start the endeavor to address that, let's describe what this test is all about, and how it tries to do it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Jul 31, 2019 at 08:18 UTC 8c1e24048a0a159329743a8e76251412c0f727d9
1 file changed +28
t/t3427-rebase-subtree.sh
+28
@@ -11,6 +11,34 @@ commit_message() {
11 git log --pretty=format:%s -1 "$1"
12 }
13
14 +# There are a few bugs in the rebase with regards to the subtree strategy, and
15 +# this test script tries to document them. First, the following commit history
16 +# is generated (the onelines are shown, time flows from left to right):
17 +#
18 +# master1 - master2 - master3
19 +# \
20 +# README ---------------------- Add subproject master - master4 - files_subtree/master5
21 +#
22 +# Where the merge moves the files master[123].t into the subdirectory
23 +# files_subtree/ and master4 as well as files_subtree/master5 add files to that
24 +# directory directly.
25 +#
26 +# Then, in subsequent test cases, `git filter-branch` is used to distill just
27 +# the commits that touch files_subtree/. To give it a final pre-rebase touch,
28 +# an empty commit is added on top. The pre-rebase commit history looks like
29 +# this:
30 +#
31 +# Add subproject master - master4 - files_subtree/master5 - Empty commit
32 +#
33 +# where the root commit adds three files: master1.t, master2.t and master3.t.
34 +#
35 +# This commit history is then rebased onto `master3` with the
36 +# `-Xsubtree=files_subtree` option in three different ways:
37 +#
38 +# 1. using `--preserve-merges`
39 +# 2. using `--preserve-merges` and --keep-empty
40 +# 3. without specifying a rebase backend
41 +
42 test_expect_success 'setup' '
43 test_commit README &&
44 mkdir files &&