@@ -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);
+}
We want to re-use most of cmd_merge() for a new command. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- builtin/merge.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)