: included from t2016 and others source ./test-lib.sh proc set_state { echo $3 > "$1" && git add $1 && echo $2 > "$1" } proc save_state { setglobal noslash = $[echo $1 | tr / _] && cat $1 > _worktree_"$noslash" && git show :"$1" > _index_"$noslash" } proc set_and_save_state { set_state @ARGV && save_state $1 } proc verify_state { test $[cat $1] = $2 && test $[git show :"$1] = $3 } proc verify_saved_state { setglobal noslash = $[echo $1 | tr / _] && verify_state $1 $[cat _worktree_"$noslash] $[cat _index_"$noslash] } proc save_head { git rev-parse HEAD > _head } proc verify_saved_head { test $[cat _head] = $[git rev-parse HEAD] }