diff options
| author | Patrick Steinhardt <ps@pks.im> | 2017-03-15 15:29:29 +0100 |
|---|---|---|
| committer | Patrick Steinhardt <ps@pks.im> | 2017-03-17 09:27:55 +0100 |
| commit | 20a368e2d72e65b6401f18a440c24df0dd9683ae (patch) | |
| tree | e04e2eca7adcddfe49a457dd772631330c789bbe /src/worktree.c | |
| parent | 3017ba94a33a5dae07521afd96a94e21afb07b8c (diff) | |
| download | libgit2-20a368e2d72e65b6401f18a440c24df0dd9683ae.tar.gz | |
worktree: parent path should point to the working dir
The working tree's parent path should not point to the parent's gitdir,
but to the parent's working directory. Pointing to the gitdir would not
make any sense, as the parent's working directory is actually equal to
both repository's common directory.
Fix the issue.
Diffstat (limited to 'src/worktree.c')
| -rw-r--r-- | src/worktree.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/worktree.c b/src/worktree.c index 783b183b7..13113f846 100644 --- a/src/worktree.c +++ b/src/worktree.c @@ -174,7 +174,7 @@ int git_worktree_lookup(git_worktree **out, git_repository *repo, const char *na if ((error = git_buf_printf(&path, "%s/worktrees/%s", repo->commondir, name)) < 0) goto out; - if ((error = (open_worktree_dir(out, git_repository_path(repo), path.ptr, name))) < 0) + if ((error = (open_worktree_dir(out, git_repository_workdir(repo), path.ptr, name))) < 0) goto out; out: @@ -202,7 +202,7 @@ int git_worktree_open_from_repository(git_worktree **out, git_repository *repo) gitdir = git_repository_path(repo); commondir = git_repository_commondir(repo); - if ((error = git_path_prettify_dir(&parent, commondir, NULL)) < 0) + if ((error = git_path_prettify_dir(&parent, "..", commondir)) < 0) goto out; /* The name is defined by the last component in '.git/worktree/%s' */ @@ -457,7 +457,7 @@ int git_worktree_prune(git_worktree *wt, unsigned flags) } /* Delete gitdir in parent repository */ - if ((err = git_buf_printf(&path, "%s/worktrees/%s", wt->parent_path, wt->name)) < 0) + if ((err = git_buf_printf(&path, "%s/worktrees/%s", wt->commondir_path, wt->name)) < 0) goto out; if (!git_path_exists(path.ptr)) { |
