Re: Pet names, true names, and nicknames Bill Frantz (
Tue, 11 Apr 2000 21:47:58 -0800

At 6:53 PM -0800 4/11/00, Jonathan S. Shapiro wrote:
>The idea described here is due to Mark Miller and others while at Electric
>Communities. (nee Electric Communities) is about to release software which uses these concepts. I'll tell you when it is available, and give you directions on how to see the "true names".

>To preserve ease of replication, all entities (objects) stored in a DCMS
>repository have a "true name", which is (currently) a cryptographic hash of
>their content. At the moment, I am using the SHA-1 hash, because it is
>slightly better than MD5, but any good cryptographic hash will do.
>In my current implementation, the "true name" of an object is the string
>that results from concatenating
> "MXsha-" + modified-base64(sha(<<file content>>))
>Where modified-base64() computes the base64 encoding of the sha per the MIME
>standard, but substituting '$' for '/' in the encoding because '/' is not
>permitted to appear in file names. [I'm not stuck on using '$' if
there is a
>better choice.]

Unfortunately, for source files we must fact up to the line end issue. (I deeply wish one system had won. Even the one I most dislike.) My suggestion is to define a canonical line ending convention, and convert all incoming source files to that convention.

There may be a need to support binary files as well. An example might be project files for some of the popular IDEs.

Cheers - Bill

Bill Frantz       | Microsoft Outlook, the     | Periwinkle -- Consulting
(408)356-8506     | hacker's path to your      | 16345 Englewood Ave. | hard disk.                 | Los Gatos, CA 95032, USA