Re: Deciding between Git/Mercurial
- From
Andreas Ericsson <ae@op5.se>
- Date
- Sep 30, 2009, 09:17 UTC
- Message-ID
- <4AC3222A.2040305@op5.se>
- In-Reply-To
- <ee2a733e0909291749s71801b29ufa827cab715d0abb@mail.gmail.com>
On 09/30/2009 02:49 AM, Leo Razoumov wrote:
Show 39 quoted lines
> On 2009-09-29, Jakub Narebski<jnareb@gmail.com> wrote: >> On Tue, 29 Sep 2009, Leo Razoumov wrote: >> > On 2009-09-28, Jakub Narebski<jnareb@gmail.com> wrote: >> > > [..snip..] >> > > Besides with nonlinear history with >> > > revision numbers such as 12678 and 12687 you know that 12678 is older >> > > than 12687 if and only if 12678 and 12687 are on the same line of >> > > development. >> > >> > The statement above is incorrect!! In a Mercurial repo local revision >> > numbers are strictly ordered in commit time. 12678< 12687 means that >> > 12678 was committed prior to 12687. But these two commits could belong >> > to two completely unrelated lines of development. >> >> >> This is impossible with distributed development. If the second branch >> comes from other repository, with commits _created_ (in that repository) >> earlier than commits in current repository, but commits in first >> branch (from current repository) were created earlier than _fetching_ >> those commits in second branch: >> >> .---.---.---.---x---1---2---3---M---. >> \ / >> \-A---B---C-/<-- from repository B >> >> >> Either you would have to change commits numbers, and therefore they would >> be not stable, or you would have to change commit time to mean 'time this >> commit got into current repository', which would kill performance for sure. >> > > Jakub, > in Mercurial sequential commit numbers are local to a repo and are not > unique between the clones. Unique ID is SHA1 as in git. So mercurial > commit 127:aaf123453dfgdfgddd... > means commit number 127 in this repo with SHA1 "aaf123453dfgdfgddd..." > In another clone commit 127 might mean completely different thing. > Sequential commit numbers are strictly for "local convenience". >
Personally I much prefer the "commit'ish-backward" notation of git, where HEAD~4 means "the commit 4 commits back from HEAD".
You'd get awfully tired of writing the six-digit "shorthand" numbers of large projects fairly quickly, I imagine.
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 Considering the successes of the wars on alcohol, poverty, drugs and terror, I think we should give some serious thought to declaring war on peace.