summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevente Polyak <anthraxx@archlinux.org>2023-05-27 01:43:33 +0200
committerLevente Polyak <anthraxx@archlinux.org>2023-05-27 01:53:45 +0200
commit3283b2ca59b06198118d5313a4b19e6119468b86 (patch)
treef26cdc3ec2766357d2d6d263773e175dbafbbf6a
parent71cb9e97bb584bcb7142abde715237fb8d0fa69e (diff)
downloaddevtools-3283b2ca59b06198118d5313a4b19e6119468b86.tar.xz
fix(commitpkg): only force existing files to be under version control
Before porting commitpkg to Git, the code has checked the SVN status for none commited files. During the port this has changed by straight checking for any passed files if they were under version control or not. In general the whole logic is very brittle as variables are searched by regex and directly passed to eval while ignoring any function scoping. This leads to missing files when they reference the $pkgname inside a package function but also provide wrong ones when eval simply returns the first $pkgname while ignoring and function scopes. In the future this should completely be replaces by .SRCINFO processing. Fixes #145 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
-rw-r--r--src/commitpkg.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/commitpkg.in b/src/commitpkg.in
index c52e4fa..8a8087a 100644
--- a/src/commitpkg.in
+++ b/src/commitpkg.in
@@ -129,6 +129,10 @@ done
# assert that they really are controlled by git
if (( ${#needsversioning[*]} )); then
for file in "${needsversioning[@]}"; do
+ # skip none existing files
+ if [[ ! -f "${file}" ]]; then
+ continue
+ fi
if ! git ls-files --error-unmatch "$file"; then
die "%s is not under version control" "$file"
fi