refuseOptionLikeRevision function
Raises GitUnknownRevisionException when expression names no revision
because git would read it as an option: it starts with the - marker.
Every operation that takes a revision expression and maps git's refusal
of an unknown name to GitUnknownRevisionException runs this gate before
its first command, so an expression like --output=x can never reach git
as an option argument.
Implementation
void refuseOptionLikeRevision(String expression) {
if (readsAsOption(expression)) {
throw GitUnknownRevisionException(expression: expression);
}
}