diff options
Diffstat (limited to 'src/worktree.c')
| -rw-r--r-- | src/worktree.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/worktree.c b/src/worktree.c index 6e797f362..b9ed75991 100644 --- a/src/worktree.c +++ b/src/worktree.c @@ -318,6 +318,21 @@ int git_worktree_add(git_worktree **out, git_repository *repo, if ((err = git_path_prettify_dir(&wddir, worktree, NULL)) < 0) goto out; + if (wtopts.lock) { + int fd; + + if ((err = git_buf_joinpath(&buf, gitdir.ptr, "locked")) < 0) + goto out; + + if ((fd = p_creat(buf.ptr, 0644)) < 0) { + err = fd; + goto out; + } + + p_close(fd); + git_buf_clear(&buf); + } + /* Create worktree .git file */ if ((err = git_buf_printf(&buf, "gitdir: %s\n", gitdir.ptr)) < 0) goto out; |
