On Tue, Jan 9, 2018 at 12:12 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Stefan Beller <sbeller@xxxxxxxxxx> writes: > >> And in that light, I'd like to propose a new naming scheme: >> >> (a) assume that we "tag" HEAD at the start of the rebase >> (b) any abbreviation must be given as committish anchored to said ref: >> >> pick REBASE_HEAD~1 commit subject >> pick REBASE_HEAD~2 distak the gostim >> pick REBASE_HEAD~3 Document foo >> pick REBASE_HEAD~4 Testing the star-gazer >> >> And as we have the full descriptiveness of the committishs there, >> each commit can be described in a unique way using the graph relationship. >> I am just throwing the name REBASE_HEAD out there to trigger some associations >> ("similar to FETCH_HEAD"), but I dislike the name. >> >> (c) this would not solve the problem of mergy history, yet. For that we'd need >> to introduce more keywords, that allow us to move around in the DAG, >> such that we can reset to a specific revision or name revisions on the fly. >> So maybe all we need is "reset", "name" (== short lived tag), >> "merge" (rewrite parents of HEAD) to be expressive enough, but still keep >> the line oriented interface? > > It is correct to say that (c) is an issue that is not solved by (b), > but with the current scheme, the commits are internally referenced > by full object names, and just before it is presented to the end > users, these names are abbreviated down to unique prefix. The > machinery expands these abbreviated names back to the full names > before going forward, so it is not an issue that we are creating new > commits during the rebase. > > Does it make it easier to read if we used ~$n notation based on a > fixed point, instead of shortened unique object names? What > improvement is (b) trying to achieve? > Johannes wrote: > I think a better alternative would be to introduce a new abbreviation mode > that is *intended* to stop caring about unique abbreviations. > > In web interfaces, for example, it makes tons of sense to show, say, 8 > digits in link texts and have the full name in the actual link URL. And that is what (b) would solve, as it is shorter than the full hash and yet exact. (c) was mostly speculation on top of (b) if we can take it any further.