Re: On git 1.6 (novice's opinion)
- From
- Ulrich Windl <ulrich.windl@rz.uni-regensburg.de>
- Date
- Apr 1, 2009, 09:38 UTC
- Message-ID
- <49D35254.4137.CB56FE@Ulrich.Windl.rkdvmks1.ngate.uni-regensburg.de>
- In-Reply-To
- <vpq63horepl.fsf@bauges.imag.fr>
On 1 Apr 2009 at 9:54, Matthieu Moy wrote:
Show 19 quoted lines
> "Ulrich Windl" <ulrich.windl@rz.uni-regensburg.de> writes: > > >> Not to mention that you can have multiple roots (multiple commits with > >> no parent) in git repository; besides independent branches (like > >> 'man', 'html' or 'todo') it is usually result of absorbing or > >> subtree-merging other projects. In 'master' branch there are 5 roots > >> or more: joined 'git-tools' (mailinfo / mailsplit), absorbed gitweb, > >> and subtree-merged gitk and git-gui. And here you would again have > >> multiple commits with the same number... > > > > Which would not harm, because it would be version N from committer X. Any if > > committer X merges from anything else, the next number would be > N. I did not > > claim that my method makes a total ordering of commits and merges possible. > > Neither does it make the numbers unique for committer X. > > If commiter X commits a successor to commit N, it's labeled N+1. If > later, he creates another branch from commit N, and commit, the new, > other commit will be labeled N+1.
Correct: They live in a parallel universe. But on the long term they will either vanish or be merged in which case the number will be "> N+1" (on the main branch). So we have a branch plus a sequence number all the time.
> > This means even within a repository, you cannot say things like > "commit number N", so, OK, you have numerical IDs, but you can't use > them.
I never wanted to have such a thing (using those numbers for commit).
Show 5 quoted lines
>
> What can be interesting is that a commit takes
> max{all commits in repository}+1, not just max{parents} + 1. Then, you
> have local revision numbers, but they're not stable. Indeed, that's
> precisely what Mercurial does.That would be a (temporary) total ordering, which I did not want, exactly for that reason.
[I did not intend the following use case]
Ulrich
Show 21 quoted lines
> > But I'm not sure how much simplicity it adds compared to the confusion > it adds. Newbies will see Mercurial identifiers as > > changeset: 2:699b81a5851b > changeset: 1:fd4b6597548f > changeset: 0:58cff172192e > > And think "OK, the revision numbers are 0, 1, 2, and the hexadecimal > stuff beside is useless". And one day, he'll send a mail, post a > bugreport, or whatever, saying "I have a problem with revision number > 42", and no one else but him will know which revision is called "42". > > > I truly believe in unique IDs, but they are just not handy in every situation. > > Usually, people find Git IDs to be non-handy until the find out they > can cut-and-paste only the first few digits in most cases, like > 442dd42 instead of 442dd42d6d4903640b0dc5561481a77c88dcea90 ;-). > > -- > Matthieu