arch-ppa/src/aurutils/0004-aurfetch-specify-git-w...

54 lines
1.8 KiB
Diff

From ecc173230584327d74ea2d8899fec30d6ce6340c Mon Sep 17 00:00:00 2001
From: Alad Wenter <AladW@users.noreply.github.com>
Date: Mon, 22 Jan 2018 16:16:16 +0100
Subject: [PATCH 4/7] aurfetch: specify git work-tree/git-dir (#274)
Avoid "Stopping at filesystem boundary" issues with different file
systems.
---
bin/aurfetch | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/bin/aurfetch b/bin/aurfetch
index 95c49c3..0a79287 100755
--- a/bin/aurfetch
+++ b/bin/aurfetch
@@ -8,24 +8,25 @@ declare -i aurball=0
declare logdir=/dev/null
clone() {
- declare -r logdir=$1 startdir=$PWD
+ declare -r logdir=$1
while IFS= read -r; do
+ # Avoid issues with exotic file system layouts (#274)
+ git_wrap() { git --work-tree="$REPLY" --git-dir="$REPLY"/.git "$@"; }
+
if [[ -d $REPLY/.git ]]; then
- cd_safe "$REPLY"
+ # returns 0 even if nothing was fetched
+ git_wrap fetch -v
- git fetch -v # returns 0 even if nothing was fetched
-
- if [[ $(git rev-parse HEAD) != $(git rev-parse '@{upstream}') ]]; then
+ if [[ $(git_wrap rev-parse HEAD) != $(git_wrap rev-parse '@{upstream}') ]]; then
if [[ -d $logdir ]]; then
- git --no-pager log --patch --stat '..@{upstream}' >> "$logdir/$REPLY".patch
+ git_wrap --no-pager log --patch --stat '..@{upstream}' \
+ >> "$logdir/$REPLY".patch
fi
- git reset --hard HEAD
- git merge
+ git_wrap reset --hard HEAD
+ git_wrap merge
fi
-
- cd_safe "$startdir"
else
git clone "$aurweb/$REPLY".git
fi
--
2.11.0