Compare commits
1 commit
main
...
jtojnar/fr
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d3041dbd47 |
|
@ -77,12 +77,14 @@ let
|
||||||
# Try to clean the source tree by using fetchGit, if this source
|
# Try to clean the source tree by using fetchGit, if this source
|
||||||
# tree is a valid git repository.
|
# tree is a valid git repository.
|
||||||
tryFetchGit = src:
|
tryFetchGit = src:
|
||||||
if isGit && !isShallow
|
if isGit && !isShallow && hasBranch
|
||||||
then builtins.fetchGit src
|
then builtins.fetchGit src
|
||||||
else { outPath = src; };
|
else { outPath = src; };
|
||||||
# NB git worktrees have a file for .git, so we don't check the type of .git
|
# NB git worktrees have a file for .git, so we don't check the type of .git
|
||||||
isGit = builtins.pathExists (src + "/.git");
|
isGit = builtins.pathExists (src + "/.git");
|
||||||
isShallow = builtins.pathExists (src + "/.git/shallow");
|
isShallow = builtins.pathExists (src + "/.git/shallow");
|
||||||
|
# Repos without commits do not have any heads.
|
||||||
|
hasBranch = builtins.pathExists (src + "/.git/refs/heads") && builtins.readDir (src + "/.git/refs/heads") != { };
|
||||||
|
|
||||||
in
|
in
|
||||||
(if src ? outPath then src else tryFetchGit src)
|
(if src ? outPath then src else tryFetchGit src)
|
||||||
|
|
Loading…
Reference in a new issue