Re: Pet names, true names, and nicknames Bill Frantz (frantz@netcom.com)
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.

Communities.com (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.
frantz@netcom.com | hard disk.                 | Los Gatos, CA 95032, USA