]> git.ipfire.org Git - thirdparty/git.git/commitdiff
merge-ort: add basic data structures for handling renames
authorElijah Newren <newren@gmail.com>
Mon, 14 Dec 2020 16:21:30 +0000 (16:21 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 14 Dec 2020 16:45:58 +0000 (08:45 -0800)
This will grow later, but we only need a few fields for basic rename
handling.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-ort.c

index 414e7b7eeac087b7a9f435117f49d20cc1ae71a3..1c1a7fa4bf115c594ba146b809523f11e9c0801e 100644 (file)
@@ -46,6 +46,25 @@ enum merge_side {
        MERGE_SIDE2 = 2
 };
 
+struct rename_info {
+       /*
+        * pairs: pairing of filenames from diffcore_rename()
+        *
+        * Index 1 and 2 correspond to sides 1 & 2 as used in
+        * conflict_info.stages.  Index 0 unused.
+        */
+       struct diff_queue_struct pairs[3];
+
+       /*
+        * needed_limit: value needed for inexact rename detection to run
+        *
+        * If the current rename limit wasn't high enough for inexact
+        * rename detection to run, this records the limit needed.  Otherwise,
+        * this value remains 0.
+        */
+       int needed_limit;
+};
+
 struct merge_options_internal {
        /*
         * paths: primary data structure in all of merge ort.
@@ -113,6 +132,11 @@ struct merge_options_internal {
         */
        struct strmap output;
 
+       /*
+        * renames: various data relating to rename detection
+        */
+       struct rename_info renames;
+
        /*
         * current_dir_name: temporary var used in collect_merge_info_callback()
         *