D Programming Language source (dmd, phobos,etc.) has moved to github

Don nospam at nospam.com
Thu Jan 27 11:48:28 PST 2011


Vladimir Panteleev wrote:
> On Wed, 26 Jan 2011 23:22:34 +0200, Don <nospam at nospam.com> wrote:
> 
>> Vladimir Panteleev wrote:
>>> On Wed, 26 Jan 2011 06:33:35 +0200, Don <nospam at nospam.com> wrote:
>>>
>>>> I think this is a fallacy. It only applies if you
>>>> (1) *completely disallow* any centralisation -- which I don't think 
>>>> ever happens in practice!
>>>  What about the Linux kernel? There's Linus's git repo, and lots of 
>>> repos maintained by others (e.g. Linux distros). The other distros 
>>> are not a superset of Linus's repo, they have their own branches with 
>>> various project-specific patches and backports. Git was written for 
>>> this specifically.
>>
>> Yes, but each distro has a trunk, in which all commits are ordered by 
>> time. There's always an official version of every branch.
> 
> Ordered by time of what? Time of merging into the branch? That's not 
> very useful, is it? They can't be ordered by time of authorship, for 
> certain.
> 
> "Official" is technically meaningless in a DVCS, because no repository 
> is holy by design (otherwise it wouldn't be really distributed).

Yes, in theory that's true. In practice, I don't believe it.
Just because you're using a DVCS doesn't mean you have no project 
organisation whatsoever. There's always going to be a repository that 
the release is made from.

> If the 
> maintainer of a repository becomes MIA, anyone can take over without any 
> problems.
> 
>>>> and (2) demand that cloning a repository be an entirely read-only 
>>>> operation (so that the repository doesn't know how many times it has 
>>>> been cloned)
>>>> and (3) demand that the revision numbers behave exactly as they do 
>>>> in svn.
>>>  Then you're suggesting that the commit identifiers basically contain 
>>> the clone history?
>>
>> Yes, I think it could be done that way. Identifier would be composed 
>> of clonenumber+commitnumber. Where it is the location of the original 
>> change. Yes, there are difficulties with this scheme, but I think they 
>> are the same challenges as for implementing merges on a centralised 
>> VCS such as Subversion. I don't think there's anything insurmountable.
> 
> Then a clone of a clone of a clone of a clone needs four clone numbers, 
> plus a revision number. It'd look something like 5:1:2:1:1056.

No. Just one repository number, and one revision number. You just need 
to be sensible in how the clone numbers are assigned. That's easy.
Basically every repository has a number of clone numbers it can assign.
Every clone gets a subset of that range. Dealing with the situation when 
the range has run out is a bit complicated, but quite doable, and there 
are steps you can take to make it a very rare occurence.

I'm not have almost zero interest in this stuff, so I won't say any 
more. I'm really just commenting that it's not difficult to envisage an 
algorithm which makes exposing a random hash unnecessary.








More information about the Digitalmars-d-announce mailing list