Check whether we are inside the worktree (#651)
Some git commands require to be run from inside the worktree (as opposed to the git dir, although it's usually in .git). This commit adds a function git_is_worktree to check this. It is used for the commands that need the worktree instead of git_is_repo. An alternative solution might have been to find the git worktree in the parent of the git directory, but this doesn't work for all cases. Generally it's impossible to detect the location of the worktree (plus it's not unique). Co-authored-by: Pablo Aguiar <scorphus@gmail.com>pull/652/head
parent
e7a8e74f19
commit
b1b10c333d
@ -1,3 +1,3 @@
|
||||
function git_is_dirty -d "Check if there are changes to tracked files"
|
||||
git_is_repo; and not command git diff --no-ext-diff --quiet --exit-code
|
||||
git_is_worktree; and not command git diff --no-ext-diff --quiet --exit-code
|
||||
end
|
||||
|
@ -0,0 +1,4 @@
|
||||
function git_is_worktree -d "Check if directory is inside the worktree of a repository"
|
||||
git_is_repo
|
||||
and test (command git rev-parse --is-inside-git-dir) = false
|
||||
end
|
@ -1,5 +1,5 @@
|
||||
function git_untracked -d "Print list of untracked files"
|
||||
git_is_repo; and begin
|
||||
git_is_worktree; and begin
|
||||
command git ls-files --other --exclude-standard
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue