On Thu, Apr 20, 2017 at 04:59:21PM +0700, Duy Nguyen wrote:
> On Wed, Apr 19, 2017 at 10:37:21PM -0700, Junio C Hamano wrote:
> > * nd/worktree-add-lock (2017-04-16) 2 commits
> > - SQUASH???
> > - worktree add: add --lock option
> >
> > Allow to lock a worktree immediately after it's created. This helps
> > prevent a race between "git worktree add; git worktree lock" and
> > "git worktree prune".
> >
> > Waiting for a response to SQUASH???
>
> Looking good. I would add some comment, lest ';' feel lonely. But it's
> really personal taste.
>
> -- 8< --
> diff --git a/builtin/worktree.c b/builtin/worktree.c
> index 5ebdcce793..bc75676bf3 100644
> --- a/builtin/worktree.c
> +++ b/builtin/worktree.c
> @@ -310,7 +310,7 @@ static int add_worktree(const char *path, const char
> *refname,
> strbuf_reset(&sb);
> strbuf_addf(&sb, "%s/locked", sb_repo.buf);
> if (!ret && opts->keep_locked)
> - ;
> + ; /* --lock wants to keep "locked" file */
> else
> unlink_or_warn(sb.buf);
I know this is just a drive-by comment, but given that the "else" is the
only thing that does anything, would it be simpler to flip the
conditional? The strbuf manipulation above also could go inside it.
E.g.:
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 5ebdcce79..05ade547c 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -307,12 +307,11 @@ static int add_worktree(const char *path, const char
*refname,
junk_git_dir = NULL;
done:
- strbuf_reset(&sb);
- strbuf_addf(&sb, "%s/locked", sb_repo.buf);
- if (!ret && opts->keep_locked)
- ;
- else
+ if (ret || !opts->keep_locked) {
+ strbuf_reset(&sb);
+ strbuf_addf(&sb, "%s/locked", sb_repo.buf);
unlink_or_warn(sb.buf);
+ }
argv_array_clear(&child_env);
strbuf_release(&sb);
strbuf_release(&symref);
(Since it's in its own block I'd also consider just introducing a new
variable for the path, but I guess reusing "sb" for each path is already
a pattern in the function).
-Peff