unsigned match_mask:3;
};
+/*** Function Grouping: various utility functions ***/
+
/*
* For the next three macros, see warning for conflict_info.merged.
*
return -1;
}
+/*** Function Grouping: functions related to collect_merge_info() ***/
+
static void setup_path_info(struct merge_options *opt,
struct string_list_item *result,
const char *current_dir_name,
return ret;
}
+/*** Function Grouping: functions related to threeway content merges ***/
+
+/*** Function Grouping: functions related to detect_and_process_renames(), ***
+ *** which are split into directory and regular rename detection sections. ***/
+
+/*** Function Grouping: functions related to directory rename detection ***/
+
+/*** Function Grouping: functions related to regular rename detection ***/
+
static int detect_and_process_renames(struct merge_options *opt,
struct tree *merge_base,
struct tree *side1,
return clean;
}
+/*** Function Grouping: functions related to process_entries() ***/
+
static int string_list_df_name_compare(const char *one, const char *two)
{
int onelen = strlen(one);
string_list_clear(&dir_metadata.offsets, 0);
}
+/*** Function Grouping: functions related to merge_switch_to_result() ***/
+
static int checkout(struct merge_options *opt,
struct tree *prev,
struct tree *next)
FREE_AND_NULL(opti);
}
+/*** Function Grouping: helper functions for merge_incore_*() ***/
+
static void merge_start(struct merge_options *opt, struct merge_result *result)
{
/* Sanity checks on opt */
string_list_init(&opt->priv->paths_to_free, 0);
}
+/*** Function Grouping: merge_incore_*() and their internal variants ***/
+
/*
* Originally from merge_trees_internal(); heavily adapted, though.
*/