worktree: remove extra members from struct add_opts
There are two members of 'struct add_opts', which are only used inside the 'add()' function, but being part of 'struct add_opts' they are needlessly also passed to the 'add_worktree' function. Make them local to the 'add()' function to make it clearer where they are used. Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5be1f00a9a
commit
d861d34a6e
@ -27,8 +27,6 @@ struct add_opts {
|
|||||||
int detach;
|
int detach;
|
||||||
int checkout;
|
int checkout;
|
||||||
int keep_locked;
|
int keep_locked;
|
||||||
const char *new_branch;
|
|
||||||
int force_new_branch;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int show_only;
|
static int show_only;
|
||||||
@ -363,10 +361,11 @@ static int add(int ac, const char **av, const char *prefix)
|
|||||||
const char *new_branch_force = NULL;
|
const char *new_branch_force = NULL;
|
||||||
char *path;
|
char *path;
|
||||||
const char *branch;
|
const char *branch;
|
||||||
|
const char *new_branch = NULL;
|
||||||
const char *opt_track = NULL;
|
const char *opt_track = NULL;
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
OPT__FORCE(&opts.force, N_("checkout <branch> even if already checked out in other worktree")),
|
OPT__FORCE(&opts.force, N_("checkout <branch> even if already checked out in other worktree")),
|
||||||
OPT_STRING('b', NULL, &opts.new_branch, N_("branch"),
|
OPT_STRING('b', NULL, &new_branch, N_("branch"),
|
||||||
N_("create a new branch")),
|
N_("create a new branch")),
|
||||||
OPT_STRING('B', NULL, &new_branch_force, N_("branch"),
|
OPT_STRING('B', NULL, &new_branch_force, N_("branch"),
|
||||||
N_("create or reset a branch")),
|
N_("create or reset a branch")),
|
||||||
@ -384,7 +383,7 @@ static int add(int ac, const char **av, const char *prefix)
|
|||||||
memset(&opts, 0, sizeof(opts));
|
memset(&opts, 0, sizeof(opts));
|
||||||
opts.checkout = 1;
|
opts.checkout = 1;
|
||||||
ac = parse_options(ac, av, prefix, options, worktree_usage, 0);
|
ac = parse_options(ac, av, prefix, options, worktree_usage, 0);
|
||||||
if (!!opts.detach + !!opts.new_branch + !!new_branch_force > 1)
|
if (!!opts.detach + !!new_branch + !!new_branch_force > 1)
|
||||||
die(_("-b, -B, and --detach are mutually exclusive"));
|
die(_("-b, -B, and --detach are mutually exclusive"));
|
||||||
if (ac < 1 || ac > 2)
|
if (ac < 1 || ac > 2)
|
||||||
usage_with_options(worktree_usage, options);
|
usage_with_options(worktree_usage, options);
|
||||||
@ -395,33 +394,33 @@ static int add(int ac, const char **av, const char *prefix)
|
|||||||
if (!strcmp(branch, "-"))
|
if (!strcmp(branch, "-"))
|
||||||
branch = "@{-1}";
|
branch = "@{-1}";
|
||||||
|
|
||||||
opts.force_new_branch = !!new_branch_force;
|
if (new_branch_force) {
|
||||||
if (opts.force_new_branch) {
|
|
||||||
struct strbuf symref = STRBUF_INIT;
|
struct strbuf symref = STRBUF_INIT;
|
||||||
|
|
||||||
opts.new_branch = new_branch_force;
|
new_branch = new_branch_force;
|
||||||
|
|
||||||
if (!opts.force &&
|
if (!opts.force &&
|
||||||
!strbuf_check_branch_ref(&symref, opts.new_branch) &&
|
!strbuf_check_branch_ref(&symref, new_branch) &&
|
||||||
ref_exists(symref.buf))
|
ref_exists(symref.buf))
|
||||||
die_if_checked_out(symref.buf, 0);
|
die_if_checked_out(symref.buf, 0);
|
||||||
strbuf_release(&symref);
|
strbuf_release(&symref);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ac < 2 && !opts.new_branch && !opts.detach) {
|
if (ac < 2 && !new_branch && !opts.detach) {
|
||||||
int n;
|
int n;
|
||||||
const char *s = worktree_basename(path, &n);
|
const char *s = worktree_basename(path, &n);
|
||||||
opts.new_branch = xstrndup(s, n);
|
new_branch = xstrndup(s, n);
|
||||||
|
UNLEAK(new_branch);
|
||||||
if (guess_remote) {
|
if (guess_remote) {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
const char *remote =
|
const char *remote =
|
||||||
unique_tracking_name(opts.new_branch, &oid);
|
unique_tracking_name(new_branch, &oid);
|
||||||
if (remote)
|
if (remote)
|
||||||
branch = remote;
|
branch = remote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ac == 2 && !opts.new_branch && !opts.detach) {
|
if (ac == 2 && !new_branch && !opts.detach) {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
struct commit *commit;
|
struct commit *commit;
|
||||||
const char *remote;
|
const char *remote;
|
||||||
@ -430,25 +429,25 @@ static int add(int ac, const char **av, const char *prefix)
|
|||||||
if (!commit) {
|
if (!commit) {
|
||||||
remote = unique_tracking_name(branch, &oid);
|
remote = unique_tracking_name(branch, &oid);
|
||||||
if (remote) {
|
if (remote) {
|
||||||
opts.new_branch = branch;
|
new_branch = branch;
|
||||||
branch = remote;
|
branch = remote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.new_branch) {
|
if (new_branch) {
|
||||||
struct child_process cp = CHILD_PROCESS_INIT;
|
struct child_process cp = CHILD_PROCESS_INIT;
|
||||||
cp.git_cmd = 1;
|
cp.git_cmd = 1;
|
||||||
argv_array_push(&cp.args, "branch");
|
argv_array_push(&cp.args, "branch");
|
||||||
if (opts.force_new_branch)
|
if (new_branch_force)
|
||||||
argv_array_push(&cp.args, "--force");
|
argv_array_push(&cp.args, "--force");
|
||||||
argv_array_push(&cp.args, opts.new_branch);
|
argv_array_push(&cp.args, new_branch);
|
||||||
argv_array_push(&cp.args, branch);
|
argv_array_push(&cp.args, branch);
|
||||||
if (opt_track)
|
if (opt_track)
|
||||||
argv_array_push(&cp.args, opt_track);
|
argv_array_push(&cp.args, opt_track);
|
||||||
if (run_command(&cp))
|
if (run_command(&cp))
|
||||||
return -1;
|
return -1;
|
||||||
branch = opts.new_branch;
|
branch = new_branch;
|
||||||
} else if (opt_track) {
|
} else if (opt_track) {
|
||||||
die(_("--[no-]track can only be used if a new branch is created"));
|
die(_("--[no-]track can only be used if a new branch is created"));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user