From ecc173230584327d74ea2d8899fec30d6ce6340c Mon Sep 17 00:00:00 2001 From: Alad Wenter 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