From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 0/6] nd/worktree-move update
Date: Thu, 20 Apr 2017 17:10:18 +0700 [thread overview]
Message-ID: <20170420101024.7593-1-pclouds@gmail.com> (raw)
This
- squashes in Johannes' fix (that's already on jch/nd/worktree-move)
- fixes the compile problem on latest master (because prefix_filename
takes one argument less)
- fixes the test failure because real_path() is called twice (the
first one hidden in read_gitfile_gently) but the output is not
duplicated.
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 74fc8578fc..b5afba1646 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -561,9 +561,7 @@ static int move_worktree(int ac, const char **av, const char *prefix)
if (ac != 2)
usage_with_options(worktree_usage, options);
- strbuf_addstr(&dst, prefix_filename(prefix,
- strlen(prefix),
- av[1]));
+ strbuf_addstr(&dst, prefix_filename(prefix, av[1]));
if (is_directory(dst.buf))
/*
* keep going, dst will be appended after we get the
diff --git a/worktree.c b/worktree.c
index 85bf481cec..c695dcf982 100644
--- a/worktree.c
+++ b/worktree.c
@@ -311,8 +311,8 @@ static int report(int quiet, const char *fmt, ...)
int validate_worktree(const struct worktree *wt, int quiet)
{
struct strbuf sb = STRBUF_INIT;
- const char *path;
- int err;
+ char *path;
+ int err, ret;
if (is_main_worktree(wt)) {
/*
@@ -344,14 +344,17 @@ int validate_worktree(const struct worktree *wt, int quiet)
return report(quiet, _("'%s/.git' does not exist"), wt->path);
}
- path = read_gitfile_gently(sb.buf, &err);
+ path = xstrdup_or_null(read_gitfile_gently(sb.buf, &err));
strbuf_release(&sb);
if (!path)
return report(quiet, _("'%s/.git' is not a .git file, error code %d"),
wt->path, err);
- if (fspathcmp(path, real_path(git_common_path("worktrees/%s", wt->id))))
- return report(quiet, _("'%s' does not point back to"),
+ ret = fspathcmp(path, real_path(git_common_path("worktrees/%s", wt->id)));
+ free(path);
+
+ if (ret)
+ return report(quiet, _("'%s' does not point back to '%s'"),
wt->path, git_common_path("worktrees/%s", wt->id));
return 0;
Nguyễn Thái Ngọc Duy (6):
worktree.c: add validate_worktree()
worktree.c: add update_worktree_location()
worktree move: new command
worktree move: accept destination as directory
worktree move: refuse to move worktrees with submodules
worktree remove: new command
Documentation/git-worktree.txt | 28 +++---
builtin/worktree.c | 160 +++++++++++++++++++++++++++++++++
contrib/completion/git-completion.bash | 5 +-
t/t2028-worktree-move.sh | 57 ++++++++++++
worktree.c | 87 ++++++++++++++++++
worktree.h | 11 +++
6 files changed, 337 insertions(+), 11 deletions(-)
--
2.11.0.157.gd943d85
next reply other threads:[~2017-04-20 10:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-20 10:10 Nguyễn Thái Ngọc Duy [this message]
2017-04-20 10:10 ` [PATCH 1/6] worktree.c: add validate_worktree() Nguyễn Thái Ngọc Duy
2017-04-21 2:16 ` Junio C Hamano
2017-04-24 11:13 ` Duy Nguyen
2017-04-20 10:10 ` [PATCH 2/6] worktree.c: add update_worktree_location() Nguyễn Thái Ngọc Duy
2017-04-21 2:22 ` Junio C Hamano
2017-04-20 10:10 ` [PATCH 3/6] worktree move: new command Nguyễn Thái Ngọc Duy
2017-04-21 2:39 ` Junio C Hamano
2017-04-20 10:10 ` [PATCH 4/6] worktree move: accept destination as directory Nguyễn Thái Ngọc Duy
2017-04-21 2:44 ` Junio C Hamano
2017-04-20 10:10 ` [PATCH 5/6] worktree move: refuse to move worktrees with submodules Nguyễn Thái Ngọc Duy
2017-04-21 2:47 ` Junio C Hamano
2017-04-20 10:10 ` [PATCH 6/6] worktree remove: new command Nguyễn Thái Ngọc Duy
2017-04-21 3:33 ` Junio C Hamano
2017-04-21 14:59 ` [PATCH 0/6] nd/worktree-move update Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170420101024.7593-1-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.