No clear API/Error message to validate a "revision object" using git rev-parse
- From
- Ντέντος Σταύρος <stdedos@gmail.com>
- Date
- Jan 29, 2019, 09:25 UTC
- Message-ID
- <CAHMHMxWpqTDyCQPXPY6WPeMBHFzYGE=Z0Q8pSL=9TecwuP9fwg@mail.gmail.com>
Hello there everyone,
Minor bug report: I have a utility script to find "reference points" that contain a commit (git-x-in-y)
The script needs to accept "any valid reference point", that includes e.g. tags as well. I validate said input by passing whatever argument through git rev-parse.
If the tag name is invalid, say: $ git rev-parse version.3 version.3 fatal: ambiguous argument 'version.3': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
So, I follow the recommendation to add '--', since I know that I won't be adding any paths:
$ git rev-parse version.3 -- fatal: bad revision 'version.3'
However, what happens with the correct tags is, I get the trailing double dash in: $ git rev-parse version-0.false -- d43292476ea9ab8c3d32940352b680549b64e8d8 -- $
A further leading argument, e.g. '' makes the situation worse: $ git rev-parse version-0.false -- '' d43292476ea9ab8c3d32940352b680549b64e8d8 --
$
`--verify`s error message is even more cryptic: $ git rev-parse --verify version.3 fatal: Needed a single revision $ git rev-parse --verify version-0.false 80f20b100cca5166b22cbcc1f4a6ac1eae64a0d0
Further attempts do not help either: $ git rev-parse --revs-only version-3 ; echo $? 0 $
Am I writing the command wrong, or is there some part of it I don't understand?
Ntentos Stavros