[-- Attachment #1: Type: text/plain, Size: 777 bytes --]
There is a new pull request by sgn against master on the void-packages repository
https://github.com/sgn/void-packages travis-speed-up-changed-template-script
https://github.com/void-linux/void-packages/pull/22228
travis/changed_templates: filter by git itself
- Use plumbing git-diff-tree(1) instead of porcelain git-diff(1)
- Disable rename detection, gains some speed up and fix missing template
with name-status Renamed and Copied.
- Use "--diff-filter" to filter by Git itself.
- Tell Git to only check 'srcpkgs/*/template', this glob will only look
into template file inside direct sub-directory of srcpkgs
- With all of those options, we don't need a grep and a pipe
A patch file from https://github.com/void-linux/void-packages/pull/22228.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-travis-speed-up-changed-template-script-22228.patch --]
[-- Type: text/x-diff, Size: 1409 bytes --]
From a27e958cb1de16dbace2df0ce7a594d9300e1081 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Sat, 23 May 2020 20:40:09 +0700
Subject: [PATCH] travis/changed_templates: filter by git itself
- Use plumbing git-diff-tree(1) instead of porcelain git-diff(1)
- Disable rename detection, gains some speed up and fix missing template
with name-status Renamed and Copied.
- Use "--diff-filter" to filter by Git itself.
- Tell Git to only check 'srcpkgs/*/template', this glob will only look
into template file inside direct sub-directory of srcpkgs
- With all of those options, we don't need a grep and a pipe
---
common/travis/changed_templates.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/common/travis/changed_templates.sh b/common/travis/changed_templates.sh
index 2f29c35cdfe..d6a66107bf3 100755
--- a/common/travis/changed_templates.sh
+++ b/common/travis/changed_templates.sh
@@ -9,4 +9,7 @@ elif command -v git >/dev/null 2>&1; then
fi
/bin/echo -e '\x1b[32mChanged packages:\x1b[0m'
-$GIT_CMD diff --name-status FETCH_HEAD...HEAD | grep "^[AM].*srcpkgs/[^/]*/template$" | cut -d/ -f 2 | tee /tmp/templates | sed "s/^/ /" >&2
+$GIT_CMD diff-tree -r --no-renames --name-only --diff-filter=AM FETCH_HEAD HEAD -- 'srcpkgs/*/template' |
+ cut -d/ -f 2 |
+ tee /tmp/templates |
+ sed "s/^/ /" >&2