diff options
author | Thomas Gummerer <t.gummerer@gmail.com> | 2018-04-24 23:56:34 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-30 02:06:34 +0200 |
commit | 6427f87186e53d9d4319d43e4efbe46bb93b7440 (patch) | |
tree | 432fe08364b7f22980e05bc0e243b499236edecd /builtin/worktree.c | |
parent | worktree: improve message when creating a new worktree (diff) | |
download | git-6427f87186e53d9d4319d43e4efbe46bb93b7440.tar.xz git-6427f87186e53d9d4319d43e4efbe46bb93b7440.zip |
worktree: factor out dwim_branch function
Factor out a dwim_branch function, which takes care of the dwim'ery in
'git worktree add <path>'. It's not too much code currently, but we're
adding a new kind of dwim in a subsequent patch, at which point it makes
more sense to have it as a separate function.
Factor it out now to reduce the patch noise in the next patch.
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>
Diffstat (limited to 'builtin/worktree.c')
-rw-r--r-- | builtin/worktree.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/builtin/worktree.c b/builtin/worktree.c index 39bf1ea865..6bd32b6090 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -387,6 +387,21 @@ static void print_preparing_worktree_line(int detach, } } +static const char *dwim_branch(const char *path, const char **new_branch) +{ + int n; + const char *s = worktree_basename(path, &n); + *new_branch = xstrndup(s, n); + UNLEAK(*new_branch); + if (guess_remote) { + struct object_id oid; + const char *remote = + unique_tracking_name(*new_branch, &oid); + return remote; + } + return NULL; +} + static int add(int ac, const char **av, const char *prefix) { struct add_opts opts; @@ -439,17 +454,9 @@ static int add(int ac, const char **av, const char *prefix) } if (ac < 2 && !new_branch && !opts.detach) { - int n; - const char *s = worktree_basename(path, &n); - new_branch = xstrndup(s, n); - UNLEAK(new_branch); - if (guess_remote) { - struct object_id oid; - const char *remote = - unique_tracking_name(new_branch, &oid); - if (remote) - branch = remote; - } + const char *s = dwim_branch(path, &new_branch); + if (s) + branch = s; } if (ac == 2 && !new_branch && !opts.detach) { |