git-sync: Only push when there's something to push

This commit is contained in:
Geoffrey Preud'homme 2024-01-25 13:03:30 +01:00
parent dfc8d68495
commit 5b3c887b41
No known key found for this signature in database
GPG key ID: A8F1DA9A7F67BECA

View file

@ -14,9 +14,10 @@
else
(
cd "${r.path}"
${pkgs.git}/bin/git diff --quiet || echo "Repository is dirty!"
${pkgs.git}/bin/git --no-optional-locks diff --quiet || echo "Repository is dirty!"
${pkgs.git}/bin/git pull || true
${pkgs.git}/bin/git push || true
# Only push if there's something to push. Also prevents from trying to push on repos where we don't have rights.
(${pkgs.git}/bin/git --no-optional-locks status --porcelain -b --ignore-submodules | grep ' \[ahead [0-9]\+\]' && ${pkgs.git}/bin/git push) || true
)
fi
'')