> > The patch id isn't a hash of the patch, but a hash of the patch
> > metadata.  As far as I know, this gains none of the benefits of
> > hash-based identification but suffers all of the costs and then
> > some.
> 
> Interesting, and a bit peculiar ;)  Though I suppose since the 
> datetime and the author are hashed as part of the metadata, that 
> pretty much guarantees a unique identifier in normal usage.

I wish.  If you are using darcs in an automated fashion, being driven by
scripts or events, it is not hard to make for colliding patch ids.  I've done
this myself twice.  If you get a colliding patch id then (if I recall
correctly), you get a corrupted repo.

This is a pet peeve of mine.  I've argued on mailing lists about it for years.
I've persuaded David Roundy to agree that it would be good to add some bytes of
real randomness in there somewhere (he suggested in the least significant bits
of the timestamp, e.g. in the femtoseconds).  However, nobody has actually gone
and done it.  It would make "convergence by means of generating bitwise
identical patches" harder.  (Not impossible, by using PRNG.)

Alternately, one could hash the actual contents of the patch, which raises
different issues...

Regards,

Zooko

_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://www.abridgegame.org/mailman/listinfo/darcs-users

Reply via email to