From 54eb1c89cf66ab882427c0d714f5c9a498687326 Mon Sep 17 00:00:00 2001 From: Enno Lohmeier Date: Thu, 2 Jul 2020 09:27:55 +0200 Subject: add `shallow` option to git source type --- pkgs/populate/default.nix | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'pkgs') diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix index 40c37e3..bac1432 100644 --- a/pkgs/populate/default.nix +++ b/pkgs/populate/default.nix @@ -53,7 +53,11 @@ let pop.git = target: source: runShell target /* sh */ '' set -efu if ! test -e ${quote target.path}; then - git clone --recurse-submodules ${quote source.url} ${quote target.path} + ${if source.shallow then /* sh */ '' + git init ${quote target.path} + '' else /* sh */ '' + git clone --recurse-submodules ${quote source.url} ${quote target.path} + ''} fi cd ${quote target.path} if ! url=$(git config remote.origin.url); then @@ -67,10 +71,18 @@ let if ! test "$(git log --format=%H -1)" = "$hash"; then ${if source.fetchAlways then /* sh */ '' - git fetch origin + ${if source.shallow then /* sh */ '' + git fetch --depth=1 origin "$hash" + '' else /* sh */ '' + git fetch origin + ''} '' else /* sh */ '' if ! git log -1 "$hash" >/dev/null 2>&1; then - git fetch origin + ${if source.shallow then /* sh */ '' + git fetch --depth=1 origin "$hash" + '' else /* sh */ '' + git fetch origin + ''} fi ''} git reset --hard "$hash" >&2 -- cgit v1.2.3