summaryrefslogtreecommitdiff
path: root/tests/worktree/open.c
Commit message (Collapse)AuthorAgeFilesLines
* worktree: implement `git_worktree_open_from_repository`Patrick Steinhardt2017-03-171-0/+26
| | | | | | | | | While we already provide functionality to look up a worktree from a repository, we cannot do so the other way round. That is given a repository, we want to look up its worktree if it actually exists. Getting the worktree of a repository is useful when we want to get certain meta information like the parent's location, getting the locked status, etc.
* tests: worktree: unify init/cleanup in open testsPatrick Steinhardt2017-03-151-26/+14
|
* tests: worktree: move submodule tests into own suitePatrick Steinhardt2017-03-151-65/+0
|
* worktree: test opening worktree via gitlink, gitdir and worktreePatrick Steinhardt2017-02-131-4/+77
|
* worktree: test opening discovered submodule worktreesPatrick Steinhardt2017-02-131-0/+27
|
* worktree: compute workdir for worktrees opened via their gitdirPatrick Steinhardt2017-02-131-5/+28
| | | | | | | | | | | | | | | | | | | | | When opening a worktree via the gitdir of its parent repository we fail to correctly set up the worktree's working directory. The problem here is two-fold: we first fail to see that the gitdir actually is a gitdir of a working tree and then subsequently fail to determine the working tree location from the gitdir. The first problem of not noticing a gitdir belongs to a worktree can be solved by checking for the existence of a `gitdir` file in the gitdir. This file points back to the gitlink file located in the working tree's working directory. As this file only exists for worktrees, it should be sufficient indication of the gitdir belonging to a worktree. The second problem, that is determining the location of the worktree's working directory, can then be solved by reading the `gitdir` file in the working directory's gitdir. When we now resolve relative paths and strip the final `.git` component, we have the actual worktree's working directory location.
* repository: introduce is_worktree variablePatrick Steinhardt2017-02-131-0/+11
|
* repository: introduce commondir variablePatrick Steinhardt2017-02-131-0/+60
The commondir variable stores the path to the common directory. The common directory is used to store objects and references shared across multiple repositories. A current use case is the newly introduced `git worktree` feature, which sets up a separate working copy, where the backing git object store and references are pointed to by the common directory.