Jens Lehmann [off-list ref] writes:
+ rm -rf sub1 &&
+ git checkout -f "$1" &&
+ git status -u -s >actual &&
+ test_must_be_empty actual &&
+ sha1=$(git rev-parse HEAD:sub1 || true) &&
$ xx=; xx=$(git rev-parse HEAD:no-such-path || true) ; echo $? ; echo "<$xx>"
fatal: Path 'no-such-path' does not exist in 'HEAD'
0
<HEAD:no-such-path>
Perhaps you want --verify (or --revs-only) there, i.e.
sha1=$(git rev-parse --verify HEAD:sub1 || :) &&
or
sha1=$(git rev-parse --revs-only HEAD:sub1) &&
+ if test -n "$sha1" &&
...
+ sha1=$(git rev-parse "$commit:$submodule") &&
And here too.
+ if test -z "$sha1"