diff --git a/merge-performance/pirate-hex-words b/merge-performance/pirate-hex-words index 816c6b6..21133a0 100644 --- a/merge-performance/pirate-hex-words +++ b/merge-performance/pirate-hex-words @@ -16,20 +16,20 @@ b100d blood acc057 accost af10a7 afloat -a70115 atolls +a70115 atolls !5 ba771e battle -befa11 befall -b1ade5 blades +befa11 befall !3 +b1ade5 blades !2 b1a575 blasts b1eed5 bleeds b0771e bottle -c0a575 coasts +c0a575 coasts !1 deface deface -defea7 defeat / -fab1ed fabled -fea575 feasts / +defea7 defeat . +fab1ed fabled !6 +fea575 feasts . f1ee75 fleets . -1007ed looted (!) +1007ed looted !4 ab5ce55 abscess acc0575 accosts @@ -52,9 +52,9 @@ acc057ed accosted b0a710ad boatload c01055a1 colossal decea5ed deceased -0b57ac1e obstacle . -5caff01d scaffold . -5eac0a57 seacoast . +0b57ac1e obstacle X +5caff01d scaffold X +5eac0a57 seacoast X ab5ce55ed abscessed ab5ce55e5 abscesses diff --git a/merge-performance/principles-to-cover.txt b/merge-performance/principles-to-cover.txt index 3e7bbcf..ce81f27 100644 --- a/merge-performance/principles-to-cover.txt +++ b/merge-performance/principles-to-cover.txt @@ -19,22 +19,22 @@ Cleanups: Savings: * Avoiding rework based on understanding the algorithm: - * hash comparison for exact renames (and not throwing away that work) - * remove source file from comparisons if other side didn't modify - * use file basename to avoid exhaustive O(N^2) comparison + X hash comparison for exact renames (and not throwing away that work) + X remove source file from comparisons if other side didn't modify + X use file basename to avoid exhaustive O(N^2) comparison * re-use rename information while rebasing or cherry-picking * trivial tree merges (all match) and partial merges (side match) * avoid (dir) rename detection when traversal paths shows it's unnecessary (no directory removed, or none added: no dir rename) * avoid updating the index or working tree if not needed (esp. in rebase) * Brute force avoid unnecessary work or rework: - * tree traversals (old: {unpack:1(3), unique:2, diff:2(4), + X tree traversals (old: {unpack:1(3), unique:2, diff:2(4), get_tree_entry:3*2*#renames}, new: {basic:1(3-partial), unpack:1(2)}) - * repeatedly drop & reload cache (sometimes not necessary at all) + X repeatedly drop & reload cache (sometimes not necessary at all) * avoid re-comparing hashes (unpack_trees did it once, then we repeated) * memoize not-found results from previous runs of check_dir_renamed() (store dir_renames + non-renames in a strmap) * Avoid O(N^2): - * The idea behind remove_marked_cache_entries(); not used by merge-recursive - * string_list_insert (see NOTE in string-list.h) + X The idea behind remove_marked_cache_entries(); not used by merge-recursive + X string_list_insert (see NOTE in string-list.h)