git-commit-vandalism/Documentation/technical
Elijah Newren c64432aacd t6423: more involved rules for renaming directories into each other
Testcases 12b and 12c were both slightly weird; they were marked as
having a weird resolution, but with the note that even straightforward
simple rules can give weird results when the input is bizarre.

However, during optimization work for merge-ort, I discovered a
significant speedup that is possible if we add one more fairly
straightforward rule: we don't bother doing directory rename detection
if there are no new files added to the directory on the other side of
the history to be affected by the directory rename.  This seems like an
obvious and straightforward rule, but there was one funny corner case
where directory rename detection could affect only existing files: the
funny corner case where two directories are renamed into each other on
opposite sides of history.  In other words, it only results in a
different output for testcases 12b and 12c.

Since we already thought testcases 12b and 12c were weird anyway, and
because the optimization often has a significant effect on common cases
(but is entirely prevented if we can't change how 12b and 12c function),
let's add the additional rule and tweak how 12b and 12c work.  Split
both testcases into two (one where we add no new files, and one where
the side that doesn't rename a given directory will add files to it),
and mark them with the new expectation.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-10-16 12:29:28 -07:00
..
.gitignore
api-error-handling.txt
api-index-skel.txt
api-index.sh
api-merge.txt merge: move doc to ll-merge.h 2019-11-18 15:21:28 +09:00
api-parse-options.txt strvec: update documention to avoid argv_array 2020-07-28 15:02:18 -07:00
api-trace2.txt trace2: teach Git to log environment variables 2020-03-23 13:14:53 -07:00
bitmap-format.txt
bundle-format.txt bundle: add new version for use with SHA-256 2020-07-30 09:16:48 -07:00
commit-graph-format.txt Merge branch 'tb/bloom-improvements' 2020-09-29 14:01:20 -07:00
commit-graph.txt docs: commit-graph: fix some whitespace in the diagram 2020-08-13 11:06:04 -07:00
directory-rename-detection.txt t6423: more involved rules for renaming directories into each other 2020-10-16 12:29:28 -07:00
hash-function-transition.txt docs: fix step in transition plan 2020-08-13 18:09:55 -07:00
http-protocol.txt http-protocol.txt: document SHA-256 "want"/"have" format 2020-08-17 10:35:12 -07:00
index-format.txt index-format.txt: document SHA-256 index format 2020-08-17 10:35:12 -07:00
long-running-process-protocol.txt
multi-pack-index.txt Merge branch 'jb/doc-multi-pack-idx-fix' 2020-01-08 12:44:12 -08:00
pack-format.txt Merge branch 'ds/sha256-leftover-bits' 2020-08-19 16:14:53 -07:00
pack-heuristics.txt
pack-protocol.txt Merge branch 'jx/proc-receive-hook' 2020-09-25 15:25:39 -07:00
packfile-uri.txt Documentation: add Packfile URIs design doc 2020-06-10 18:06:34 -07:00
partial-clone.txt promisor-remote: lazy-fetch objects in subprocess 2020-08-18 16:46:53 -07:00
protocol-capabilities.txt Merge branch 'jx/proc-receive-hook' 2020-09-25 15:25:39 -07:00
protocol-common.txt
protocol-v2.txt Merge branch 'bc/sha-256-part-2' 2020-07-06 22:09:13 -07:00
racy-git.txt doc: replace LKML link with lore.kernel.org 2019-12-04 10:26:52 -08:00
reftable.txt reftable: define version 2 of the spec to accomodate SHA256 2020-06-09 13:48:36 -07:00
repository-version.txt doc: move extensions.worktreeConfig to the right place 2018-11-16 14:10:31 +09:00
rerere.txt Documentation: fix a bunch of typos, both old and new 2019-11-07 13:42:00 +09:00
send-pack-pipeline.txt
shallow.txt shallow.txt: document SHA-256 shallow format 2020-08-17 10:35:13 -07:00
signature-format.txt
trivial-merge.txt