We want to re-use most of cmd_merge() for a new command. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- builtin/merge.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/builtin/merge.c b/builtin/merge.c index 05e631229d..9c944f5f0f 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1259,7 +1259,8 @@ static int merging_a_throwaway_tag(struct commit *commit) return is_throwaway_tag; } -int cmd_merge(int argc, const char **argv, const char *prefix) +static int merge_common(int argc, const char **argv, const char *prefix, + const struct option *options, const char * const usage[]) { struct object_id result_tree, stash, head_oid; struct commit *head_commit; @@ -1273,7 +1274,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) int orig_argc = argc; if (argc == 2 && !strcmp(argv[1], "-h")) - usage_with_options(builtin_merge_usage, builtin_merge_options); + usage_with_options(usage, options); /* * Check if we are _not_ on a detached HEAD, i.e. if there is a @@ -1299,8 +1300,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) if (branch_mergeoptions) parse_branch_merge_options(branch_mergeoptions); - argc = parse_options(argc, argv, prefix, builtin_merge_options, - builtin_merge_usage, 0); + argc = parse_options(argc, argv, prefix, options, usage, 0); if (shortlog_len < 0) shortlog_len = (merge_log_config > 0) ? merge_log_config : 0; @@ -1314,7 +1314,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) if (orig_argc != 2) usage_msg_opt(_("--abort expects no arguments"), - builtin_merge_usage, builtin_merge_options); + usage, options); if (!file_exists(git_path_merge_head(the_repository))) die(_("There is no merge to abort (MERGE_HEAD missing).")); @@ -1336,8 +1336,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) if (quit_current_merge) { if (orig_argc != 2) usage_msg_opt(_("--quit expects no arguments"), - builtin_merge_usage, - builtin_merge_options); + usage, options); remove_merge_branch_state(the_repository); goto done; @@ -1349,7 +1348,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) if (orig_argc != 2) usage_msg_opt(_("--continue expects no arguments"), - builtin_merge_usage, builtin_merge_options); + usage, options); if (!file_exists(git_path_merge_head(the_repository))) die(_("There is no merge in progress (MERGE_HEAD missing).")); @@ -1416,8 +1415,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) } if (!argc) - usage_with_options(builtin_merge_usage, - builtin_merge_options); + usage_with_options(usage, options); if (!head_commit) { /* @@ -1458,8 +1456,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) argc, argv, &merge_msg); if (!head_commit || !argc) - usage_with_options(builtin_merge_usage, - builtin_merge_options); + usage_with_options(usage, options); if (verify_signatures) { for (p = remoteheads; p; p = p->next) { @@ -1738,3 +1735,8 @@ int cmd_merge(int argc, const char **argv, const char *prefix) free(branch_to_free); return ret; } + +int cmd_merge(int argc, const char **argv, const char *prefix) +{ + return merge_common(argc, argv, prefix, builtin_merge_options, builtin_merge_usage); +} -- 2.32.0.36.g70aac2b1aa