Re: [PATCH 1/3] t6423: test directory renames causing rename-to-self
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Jun 29, 2021, 12:50 UTC
- Message-ID
- <c088028d-3045-70ce-19e9-f3ffc9c57c98@gmail.com>
- In-Reply-To
- <d3572e8bc85e4c7a33094f5da71957c2e59fd7f4.1624727121.git.gitgitgadget@gmail.com>
On 6/26/2021 1:05 PM, Elijah Newren via GitGitGadget wrote:
Show 12 quoted lines
> From: Elijah Newren <newren@gmail.com> > > Directory rename detection can cause transitive renames, e.g. if the two > different sides of history each do one half of: > A/file -> B/file > B/ -> C/ > then directory rename detection transitively renames to give us C/file. > Since the default for merge.directoryRenames is conflict, this results > in an error message saying it is unclear whether the file should be > placed at B/file or C/file. > > What if C/ is A/, though?
This case seems interesting, but somehow missing from the test cases below. Each of those cases include renaming up or down the directory hierarchy instead of doing a sideways rename.
Show 6 quoted lines
> +# Testcase 12i, Directory rename causes rename-to-self
> +# Commit O: source/{subdir/foo, bar, baz_1}
> +# Commit A: source/{foo, bar, baz_1}
> +# Commit B: source/{subdir/{foo, bar}, baz_2}
> +# Expected: source/{foo, bar, baz_2}, with conflicts on
> +# source/bar vs. source/subdir/barThis test goes deeper.
Show 5 quoted lines
> +# Testcase 12j, Directory rename to root causes rename-to-self
> +# Commit O: {subdir/foo, bar, baz_1}
> +# Commit A: {foo, bar, baz_1}
> +# Commit B: {subdir/{foo, bar}, baz_2}
> +# Expected: {foo, bar, baz_2}, with conflicts on bar vs. subdir/barThis test goes higher.
Does the problematic case not hit when going out to the side, such as "with conflicts on subdir/bar vs otherdir/bar"?
If so, then _maybe_ the commit message could indicate this is an omission on purpose. If not, then maybe a third test should be added?
Thanks, -Stolee