git cmd --options -- rev -- pathspec
would be the fully specified revspec and pathspec git cmd --option -- rev --
would be just the revspec, excluding accidental options, without a pathspec git cmd --option revspec -- pathspec
and the single "--" would work as it currently does.