Pushing after merge considered harmful

Óscar Fuentes ofv at wanadoo.es
Mon Mar 1 19:23:45 GMT 2010


Eli Zaretskii <eliz at gnu.org> writes:

[snip]

>> Some basic concepts that you are omitting are: 
>> 
>> * The `D' in `DVCS' is all about exchanging revisions.
>> 
>> * For doing this on a sane manner, each revision must be uniquely
>>   identifiable.
>> 
>> * The parent(s) of a revision are components of its identity, so the
>>   unique ID of a revision implicitly defines all the history that
>>   precedes it.
>
> I think these are not important for describing the history
> representation (they were absent from the original document), but if
> you think they _are_ important in this context, please tell why.

It's clear that I didn't realized the philosophy and intention of the
document. That said, staying away from DAGs and Unique IDs just because
they are CS concepts is doing little justice to the intelligence of the
average reader, IMHO. This is not about stating theorems aboug DAGs, nor
is even necessary to write "DAG" once. The DAG concept is very easy to
grasp intuitively, and the UID concept is something that everybody is
familiar with. Just displaying two or three graphs showing how history
grows, stating that each revision has a "plate number" that is
calculated taking into accoung everything contained on the revision
(including the references to the parent's IDS), and then it is easy to
explain how DVCSs know what's already merged and what's not, what
diverged branches are, etc.

IMHO, trying to give an idea about how a DVCS system works without
bringing in the DAG is like trying to explain what a camel is without
mentioning humps.

It will be interesting to read the result :-)




More information about the bazaar mailing list