فهرست منبع

Save cache for clean merges

Willy-JL 1 سال پیش
والد
کامیت
b481757d00
1فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 6 1
      .utils/.subtree-subdir-helper.sh

+ 6 - 1
.utils/.subtree-subdir-helper.sh

@@ -49,8 +49,13 @@ else
         prevhead="$(git rev-parse HEAD)"
         prevhead="$(git rev-parse HEAD)"
         exec {capture}>&1
         exec {capture}>&1
         result="$(git subtree "${action}" -P "${path}" "${split}" -m "${action^} ${path} from ${repo}" 2>&1 | tee /proc/self/fd/$capture)"
         result="$(git subtree "${action}" -P "${path}" "${split}" -m "${action^} ${path} from ${repo}" 2>&1 | tee /proc/self/fd/$capture)"
+        cleanmerge=false
+        if git diff --quiet && git diff --cached --quiet && git merge HEAD &> /dev/null; then
+            cleanmerge=true
+        fi
         bash .utils/.check-merge.sh "${path}" "${repo}" "${result}"
         bash .utils/.check-merge.sh "${path}" "${repo}" "${result}"
-        if [ "${prevhead}" = "$(git rev-parse HEAD)" ]; then
+        if [ "${prevhead}" = "$(git rev-parse HEAD)" ] && ! $cleanmerge; then
+            # Not a clean merge, and merge was aborted, don't save cache
             ok=false
             ok=false
         fi
         fi
     fi
     fi