diff options
author | Levente Polyak <anthraxx@archlinux.org> | 2023-05-27 01:43:33 +0200 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2023-05-27 01:53:45 +0200 |
commit | 3283b2ca59b06198118d5313a4b19e6119468b86 (patch) | |
tree | f26cdc3ec2766357d2d6d263773e175dbafbbf6a | |
parent | 71cb9e97bb584bcb7142abde715237fb8d0fa69e (diff) | |
download | devtools-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.in | 4 |
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 |