Do you envisage some way of doing a binary chop based on that reference?
Bisect? No.
First of all this is for estimating where are reporter is at. (at least the tag + number)
Someone tells me his IDE about says svn rev 34009 => I ask where he was the last 10 years.
Same for "trunk-0_9_30-200-HASH"
Assume this branch, with a merge
/ - A - B - C \
tag - E - F
\ - D - /
A and D both are "tag + 1"
E is at "tag + 5" (all 4 commits are seen before it)
And there wont be a tag on every little merge branch. (Even though merges will be for features, pull requests ... otherwise we hopefully keep it linear)
However similar issues in svn. You look at r300. You do not know if r301 is in a different branch.
lazarus_2_0_8-144-g532537c6c4
Git has no function that takes the "lazarus_2_0_8-144" part and computes a commit (it can't / svn can, but you may still end in a diff branch). You can compute it for git, by getting the list of all commits between the start and end point, and then get the element from the list, but that is not what you want?
To see the commit, you need the hash part, that is why it is included.
If you have the HASH, you can go n parents towards the root.
g532537c6c4~1
g532537c6c4~2
g532537c6c4~3
But you cannot walk children towards the current most recent commit.
git rev-list g532537c6c4..HEAD
gives you a list of all commits from (exclusive) g532537c6c4 to (inclusive) head. (current)
git rev-list --bisect g532537c6c4..HEAD
(not tested) gets you the one in the middle
git log --oneline g532537c6c4..HEAD
gets you the log to look on
before I go into more.
Describe more closely how you bisect in svn.
Because either you use all commits (and hope no numbers in that range are in a branch) => and then you do (r1 + r2) div 2 => but then you can do git bisect. (or rev-list --bisect)
Or you do something else (pre-select commits), but the svn rev numbers are just from a list with gaps, no longer contineous, and all math is gone.
If there are gaps in your svn list, how to you get the commit + 60 ?
Yes, the svn numbers are easier to copy. You look at them, and you can memorize them just until you typed them.
The git hashes => copy and paste.