Re: [PATCH v10 32/36] t6046: testcases checking whether updates can be skipped in a merge

2018-04-19 Thread Elijah Newren
On Thu, Apr 19, 2018 at 1:26 PM, SZEDER Gábor  wrote:
> Just a couple of minor things:

Sweet, thanks for taking a look; will get these all fixed up.


Re: [PATCH v10 32/36] t6046: testcases checking whether updates can be skipped in a merge

2018-04-19 Thread SZEDER Gábor
Just a couple of minor things:

> +###
> +# SECTION 1: Cases involving no renames (one side has subset of changes of
> +#the other side)
> +###
> +
> +# Testcase 1a, Changes on A, subset of changes on B
> +#   Commit O: b_1
> +#   Commit A: b_2
> +#   Commit B: b_3
> +#   Expected: b_2
> +
> +test_expect_success '1a-setup: Modify(A)/Modify(B), change on B subset of A' 
> '
> + test_create_repo 1a &&
> + (
> + cd 1a &&
> +
> + test_write_lines 1 2 3 4 5 6 7 8 9 10 >b

Broken && chain.

<...>

> +###
> +# SECTION 2: Cases involving basic renames
> +###
> +
> +# Testcase 2a, Changes on A, rename on B
> +#   Commit O: b_1
> +#   Commit A: b_2
> +#   Commit B: c_1
> +#   Expected: c_2
> +
> +test_expect_success '2a-setup: Modify(A)/rename(B)' '
> + test_create_repo 2a &&
> + (
> + cd 2a &&
> +
> + test_seq 1 10 >b

Broken && chain.

> + git add b &&
> + test_tick &&
> + git commit -m "O" &&
> +
> + git branch O &&
> + git branch A &&
> + git branch B &&
> +
> + git checkout A &&
> + test_seq 1 11 > b &&

Nit: space between redirection operator and filename.

<...>

> +# Testcase 2b, Changed and renamed on A, subset of changes on B
> +#   Commit O: b_1
> +#   Commit A: c_2
> +#   Commit B: b_3
> +#   Expected: c_2
> +
> +test_expect_success '2b-setup: Rename+Mod(A)/Mod(B), B mods subset of A' '
> + test_create_repo 2b &&
> + (
> + cd 2b &&
> +
> + test_write_lines 1 2 3 4 5 6 7 8 9 10 >b

Broken && chain.

<...>

> +# Testcase 2c, Changes on A, rename on B
> +#   Commit O: b_1
> +#   Commit A: b_2, c_3
> +#   Commit B: c_1
> +#   Expected: rename/add conflict c_2 vs c_3
> +#
> +#   NOTE: Since A modified b_1->b_2, and B renamed b_1->c_1, the threeway
> +# merge of those files should result in c_2.  We then should have a
> +# rename/add conflict between c_2 and c_3.  However, if we note in
> +# merge_content() that A had the right contents (b_2 has same
> +# contents as c_2, just at a different name), and that A had the
> +# right path present (c_3 existed) and thus decides that it can
> +# skip the update, then we're in trouble.  This test verifies we do
> +# not make that particular mistake.
> +
> +test_expect_success '2c-setup: Modify b & add c VS rename b->c' '
> + test_create_repo 2c &&
> + (
> + cd 2c &&
> +
> + test_seq 1 10 >b

Broken && chain.

<...>

> +###
> +# SECTION 3: Cases involving directory renames
> +#
> +# NOTE:
> +#   Directory renames only apply when one side renames a directory, and the
> +#   other side adds or renames a path into that directory.  Applying the
> +#   directory rename to that new path creates a new pathname that didn't
> +#   exist on either side of history.  Thus, it is impossible for the
> +#   merge contents to already be at the right path, so all of these checks
> +#   exist just to make sure that updates are not skipped.
> +###
> +
> +# Testcase 3a, Change + rename into dir foo on A, dir rename foo->bar on B
> +#   Commit O: bq_1, foo/whatever
> +#   Commit A: foo/{bq_2, whatever}
> +#   Commit B: bq_1, bar/whatever
> +#   Expected: bar/{bq_2, whatever}
> +
> +test_expect_success '3a-setup: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
> + test_create_repo 3a &&
> + (
> + cd 3a &&
> +
> + mkdir foo &&
> + test_seq 1 10 >bq &&
> + test_write_lines a b c d e f g h i j k >foo/whatever &&
> + git add bq foo/whatever &&
> + test_tick &&
> + git commit -m "O" &&
> +
> + git branch O &&
> + git branch A &&
> + git branch B &&
> +
> + git checkout A &&
> + test_seq 1 11 > bq &&

Space between redirection operator and filename.

<...>

> +# Testcase 3b, rename into dir foo on A, dir rename foo->bar + change on B
> +#   Commit O: bq_1, foo/whatever
> +#   Commit A: foo/{bq_1, whatever}
> +#   Commit B: bq_2, bar/whatever
> +#   Expected: bar/{bq_2, whatever}
> +
> +test_expect_success '3b-setup: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
> + test_create_repo 3b &&
> + (
> + cd 3b &&
> +
> + mkdir foo &&
> + test_seq 1 10 >bq &&
> + test_write_lines a b c d e f g h i j k >foo/whatever &&
> + git add bq foo/whatever &&
> + test_tick &&
> +