trap 'exit 1' INT
trap 'rm -rf "$tmpdir"' EXIT
+
+use_magnet_to_acquire_checksum_faster()
+# ___________________
+# ,--'' ~~~~~~~^^^~._ '.
+# ,.-' ~~~~~~~~~~^^^^^~~~._._ \
+# | /^^^^^| /^^^^^^^^\\ \ \
+# ,/___ < o> < (OO) > _ \
+# /'/, |- . ----.\
+# |(|-'^^;,- ,| __ ^~~^^^^^^^; |\
+# \\` | <;_ __ |`--- ..-^^/- | ||
+# \`-|Oq-.____`________~='^^|__,/ ' //
+# \ || | | | | \ ..-;| / '/
+# | ||#|#|the|==|game!|'^` |/' /'
+# | \\\\^\***|***| \ ,,;' /
+# | `-=\_\__\___\__..-' ,.- - ,/
+# | . `-_ ------ _,-'^-'^,-'
+# | `-._________..--''^,-''^
+# \ ,...-'^
+# `----------'^ PROBLEM?
+{
+ magnet=`GIT_DIR="$git_src_repo/.git" git ls-files -s "$1"`
+ if [ -n "$magnet" ]; then
+ magnet=${magnet#* }
+ magnet=${magnet%% *}
+ sum=$sum$magnet
+ else
+ sum=$sum`git hash-object "$1"`
+ fi
+}
+
lastinfiles=
lastinfileshash=
cached()
esac
done
if [ -n "$git_src_repo" ] && ! $evil; then
- sum=`( cd "$git_src_repo"; git ls-files -s "${infile1#./}" | cut -d ' ' -f 2 | grep . ) || { echo >&2 "git-ls-files failed on $infile1"; git hash-object "$infile1"; }`
+ sum=
+ use_magnet_to_acquire_checksum_faster "${infile1#./}"
if [ -n "$infile2" ]; then
- sum=$sum`( cd "$git_src_repo"; git ls-files -s "${infile2#./}" | cut -d ' ' -f 2 | grep . ) || { echo >&2 "git-ls-files failed on $infile2"; git hash-object "$infile2"; }`
+ use_magnet_to_acquire_checksum_faster "${infile2#./}"
fi
else
sum=`git hash-object "$infile1"`