summaryrefslogtreecommitdiff
path: root/merge-ort.c
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2021-01-19 19:53:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-01-21 06:18:55 (GMT)
commit112e11126b963923d84f90f12dae9b96271ccedb (patch)
tree6f7468dc67a0f8de591d8a9f12e71d85b81d5fee /merge-ort.c
parenteb3e3e1ddffa1348532a6b8d741c235e4c73017c (diff)
downloadgit-112e11126b963923d84f90f12dae9b96271ccedb.zip
git-112e11126b963923d84f90f12dae9b96271ccedb.tar.gz
git-112e11126b963923d84f90f12dae9b96271ccedb.tar.bz2
merge-ort: add outline for computing directory renames
Port some directory rename handling changes from merge-recursive.c's detect_and_process_renames() to the same-named function of merge-ort.c. This does not yet add any use or handling of directory renames, just the outline for where we start to compute them. Thus, a future patch will add port additional changes to merge-ort's detect_and_process_renames(). Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-ort.c')
-rw-r--r--merge-ort.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/merge-ort.c b/merge-ort.c
index 999a7c9..b4c1fe2 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -721,6 +721,18 @@ static int handle_content_merge(struct merge_options *opt,
/*** Function Grouping: functions related to directory rename detection ***/
+static void get_provisional_directory_renames(struct merge_options *opt,
+ unsigned side,
+ int *clean)
+{
+ die("Not yet implemented!");
+}
+
+static void handle_directory_level_conflicts(struct merge_options *opt)
+{
+ die("Not yet implemented!");
+}
+
/*** Function Grouping: functions related to regular rename detection ***/
static int process_renames(struct merge_options *opt,
@@ -1086,13 +1098,24 @@ static int detect_and_process_renames(struct merge_options *opt,
{
struct diff_queue_struct combined;
struct rename_info *renames = &opt->priv->renames;
- int s, clean = 1;
+ int need_dir_renames, s, clean = 1;
memset(&combined, 0, sizeof(combined));
detect_regular_renames(opt, merge_base, side1, MERGE_SIDE1);
detect_regular_renames(opt, merge_base, side2, MERGE_SIDE2);
+ need_dir_renames =
+ !opt->priv->call_depth &&
+ (opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_TRUE ||
+ opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_CONFLICT);
+
+ if (need_dir_renames) {
+ get_provisional_directory_renames(opt, MERGE_SIDE1, &clean);
+ get_provisional_directory_renames(opt, MERGE_SIDE2, &clean);
+ handle_directory_level_conflicts(opt);
+ }
+
ALLOC_GROW(combined.queue,
renames->pairs[1].nr + renames->pairs[2].nr,
combined.alloc);