worktree move: accept destination as directory
Similar to "mv a b/", which is actually "mv a b/a", we extract basename of source worktree and create a directory of the same name at destination if dst path is a directory. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
9f792bb472
commit
c64a8d200f
@ -631,8 +631,17 @@ static int move_worktree(int ac, const char **av, const char *prefix)
|
||||
die(_("'%s' is not a working tree"), av[0]);
|
||||
if (is_main_worktree(wt))
|
||||
die(_("'%s' is a main working tree"), av[0]);
|
||||
if (is_directory(dst.buf)) {
|
||||
const char *sep = find_last_dir_sep(wt->path);
|
||||
|
||||
if (!sep)
|
||||
die(_("could not figure out destination name from '%s'"),
|
||||
wt->path);
|
||||
strbuf_trim_trailing_dir_sep(&dst);
|
||||
strbuf_addstr(&dst, sep);
|
||||
}
|
||||
if (file_exists(dst.buf))
|
||||
die(_("target '%s' already exists"), av[1]);
|
||||
die(_("target '%s' already exists"), dst.buf);
|
||||
|
||||
reason = is_worktree_locked(wt);
|
||||
if (reason) {
|
||||
|
||||
Reference in New Issue
Block a user