diff options
author | Elijah Newren <newren@gmail.com> | 2021-05-20 06:09:33 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-05-20 15:40:39 +0900 |
commit | a22099f552d5e67dc71c2bd92c4b711387e9695f (patch) | |
tree | 58adc9b923d41459fc98f4eb281d88e45a8e6255 /Documentation/technical | |
parent | fast-rebase: write conflict state to working tree, index, and HEAD (diff) | |
download | tgif-a22099f552d5e67dc71c2bd92c4b711387e9695f.tar.xz |
t6429: testcases for remembering renames
We will soon be adding an optimization that caches (in memory only,
never written to disk) upstream renames during a sequence of merges such
as occurs during a cherry-pick or rebase operation. Add several tests
meant to stress such an implementation to ensure it does the right
thing, and include a test whose outcome we will later change due to this
optimization as well.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/technical')
-rw-r--r-- | Documentation/technical/remembering-renames.txt | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/Documentation/technical/remembering-renames.txt b/Documentation/technical/remembering-renames.txt index 251ce477e0..2fd5cc88e0 100644 --- a/Documentation/technical/remembering-renames.txt +++ b/Documentation/technical/remembering-renames.txt @@ -214,12 +214,14 @@ in-memory cache of renames and thus doesn't need to be considered further. In the special case that E->A does rename the file but also renames it to newfile, then there is no conflict from the renaming and the merge can succeed. In this special case, the rename is not valid to cache because -the second merge will find A:newfile in the MERGE_BASE. So a -rename/rename(1to1) needs to be specially handled by pruning renames from -the cache and decrementing the dir_rename_counts in the current and leading -directories associated with those renames. Or, since these are really -rare, one could just take the easy way out and disable the remembering -renames optimization when a rename/rename(1to1) happens. +the second merge will find A:newfile in the MERGE_BASE (see also the new +testcases in t6429 with "rename same file identically" in their +description). So a rename/rename(1to1) needs to be specially handled by +pruning renames from the cache and decrementing the dir_rename_counts in +the current and leading directories associated with those renames. Or, +since these are really rare, one could just take the easy way out and +disable the remembering renames optimization when a rename/rename(1to1) +happens. The previous paragraph handled the cases for E->A renaming oldfile, let's continue assuming that oldfile is not renamed in A. |