Duy Nguyen <pclouds@xxxxxxxxx> writes: >> * nd/worktree-add-lock (2017-04-15) 2 commits >> - SQUASH??? >> - worktree add: add --lock option >> > > Allow to lock a workktree immediately after it's created. This helps > prevent a race between "git worktree add; git worktree lock" and "git > worktree prune". Thanks. Also thanks for "we at least need to ensure the lock file is there" comment, which led to this: -- >8 -- From: Junio C Hamano <gitster@xxxxxxxxx> Date: Sat, 15 Apr 2017 00:36:31 -0700 Subject: [PATCH] SQUASH??? --- builtin/worktree.c | 16 +++++++--------- t/t2025-worktree-add.sh | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/builtin/worktree.c b/builtin/worktree.c index 3dab07c829..5ebdcce793 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -243,7 +243,10 @@ static int add_worktree(const char *path, const char *refname, * after the preparation is over. */ strbuf_addf(&sb, "%s/locked", sb_repo.buf); - write_file(sb.buf, "initializing"); + if (!opts->keep_locked) + write_file(sb.buf, "initializing"); + else + write_file(sb.buf, "added with --lock"); strbuf_addf(&sb_git, "%s/.git", path); if (safe_create_leading_directories_const(sb_git.buf)) @@ -306,15 +309,10 @@ static int add_worktree(const char *path, const char *refname, done: strbuf_reset(&sb); strbuf_addf(&sb, "%s/locked", sb_repo.buf); - if (!ret && opts->keep_locked) { - /* - * Don't keep the confusing "initializing" message - * after it's already over. - */ - truncate(sb.buf, 0); - } else { + if (!ret && opts->keep_locked) + ; + else unlink_or_warn(sb.buf); - } argv_array_clear(&child_env); strbuf_release(&sb); strbuf_release(&symref); diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh index 6dce920c03..b5c47ac602 100755 --- a/t/t2025-worktree-add.sh +++ b/t/t2025-worktree-add.sh @@ -66,7 +66,7 @@ test_expect_success '"add" worktree' ' test_expect_success '"add" worktree with lock' ' git rev-parse HEAD >expect && git worktree add --detach --lock here-with-lock master && - test_must_be_empty .git/worktrees/here-with-lock/locked + test -f .git/worktrees/here-with-lock/locked ' test_expect_success '"add" worktree from a subdir' ' -- 2.12.2-820-g9f56312714