`grep -q` exits as soon as it finds a matching line, potentially
sending a SIGPIPE to git-ls-tree. We have pipefail turned on, so that
can make the whole pipeline exit nonzero, which is wrong when grep did
in fact find a match.
This solution is more readable than disabling pipefail just for this
line (as is done elsewhere in git-debpush).
Closes: #940588
Reported-by: Andrej Shadura <andrewsh@debian.org>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
get_file_from_ref () {
local path=$1
+ # redirect to /dev/null instead of using `grep -Eq` to avoid grep
+ # SIGPIPEing git-ls-tree
if git ls-tree --name-only -r "$branch" \
- | grep -Eq "^$path$"; then
+ | grep -E "^$path$" >/dev/null; then
git cat-file blob $branch:$path
fi
}