- From: <edgar@edgarschwarz.de>
- Date: Sat, 26 Aug 2006 00:27:03 +0200 (MEST)
- To: w3c-dist-auth@w3.org
- Cc: edgar@edgarschwarz.de
Lisa asked for my delta format recently. FWIW here the spec of my delta format. This is from es.VCSBase.Mod. A WebDAV/DeltaV contribution package to the Native Oberon system of Niklaus Wirth and Juerg Gutknecht of ETH Zuerich. Succeeeded by Bluebottle now (http://bluebottle.ethz.ch) Please keep in mind that this is from the last millenium and wasn't meant to be scrutinized by "RFC professionals". It was written as a quick and dirty reminder for me to remember the format of my delta files. >From es.VCSBase.Mod: $ 1, Edgar.Schwarz@z.zgs.de, 31 Jan 99, 1:7:28 $ first version for new format (** new delta file format description (ci) = compressed integer in Oberon style (d) = data as array of bytes tags = numbers coded as a byte --------- DeltaFile = # newest revision of file + deltas FormatName Flags Text 1{ Diff } . FormatName = "dsfantf1" . Flags = SET{31..1,MakroBit}. Text = TextTag TextLen(ci) Text(d) . Diff = # newer before older diffs DiffTag DiffLen(ci) OldTextLen(ci) Versiontag Version(ci) DateTag DateLen(ci) Date(d) AuthorTag AuthorLen(ci) Author(d) LogTextTag LogTextLen(ci) LogText(d) { DeltaAddTag AddLen(ci) AddData(d) | DeltaCopyTag CopyLen(ci) CopyOffset(ci) } [ AttachmentTag AttachmentLen(ci) Attachment(d) ] . *) So perhaps some remarks are useful: - The email address given probably doesn't work anymore. - (ci) is a number which uses as many bytes as necessary. 7 bits of a byte. The msb is used to show that another byte follows. Niklaus Wirth used such numbers in parts of his Native Oberon system. - The new resource is created by: - Add: n bytes from delta. - Copy: n bytes from source. Referenced by an offset to a source file rider. Offset can be negative. So you can get some stretch repeatedly or move parts of source around. - Attachment: add some miscellaneous data to a version. E.g. WebDAV properties. Not further specified yet. That's all :-) Some trivial extensions (For perhaps "dsfantf2") are (Not checked for sanity. Just brainstorming): - Use bit 7 of the tag byte to work with an additional source rider on the newly created resource for copy. - Use bit 6 of the tag byte to specify absolute positioning instead of the moving rider offset. - DeltaCallTag CallLen(ci) CallOffset(ci) could be used to define a sort of "functions" in the delta. "DeltaCallTag 0 offset" will skip a "function" definition. - Use another target rider to patch the original resource for further copy/call tricks. The "call" and targer rider stuff just came to my mind when I thought about possible extensions of the format. Could give some tricky ways to "compress" data with patterns. Now if anybody thinks that "dsfantf1" could be a simple mandatory delta format for binary files with a PATCH I wouldn't mind. I would be surprised if you find something similar enough to give IPR problems anywhere. But OTOH you never know. Cheers, Edgar
Received on Friday, 25 August 2006 22:27:23 UTC