Delta compression hooks

2017-05-04 Thread Soni L.
Can we get delta compression hooks? I'm working with voxel data as my 
source code (it's a long story...) and git doesn't handle changing lines 
of voxels very well.


Example, I have something from position (0,0,0) to position (0,10,0) and 
I replace it with something else. Git doesn't handle this difference 
very well if the file is encoded in XYZ order (it'd handle it 
exceptionally well if the file was in YXZ or YZX order), and Z-order 
curves aren't much better. It's even worse if the file is compressed.


The hooks/plugins would be required on the sending end and on the 
receiving end, but bare repos wouldn't need to know about them (github 
could show "unknown diff" or something). This is good because such 
plugins would effectively be machine code, so you don't want bare repos 
running them.


Other source-y things that would benefit from this:

- 2D image source code http://esolangs.org/wiki/Piet
- photoshop files
- database files (well uh, I guess this is more "data" than "source"... 
I'm sure someone out there is storing source code in a database, tho)


Re: Delta compression hooks

2017-05-04 Thread Soni L.



On 2017-05-04 07:57 PM, Stefan Beller wrote:

On Thu, May 4, 2017 at 3:48 PM, Soni L.  wrote:

Can we get delta compression hooks? I'm working with voxel data as my source
code (it's a long story...) and git doesn't handle changing lines of voxels
very well.

Example, I have something from position (0,0,0) to position (0,10,0) and I
replace it with something else. Git doesn't handle this difference very well
if the file is encoded in XYZ order (it'd handle it exceptionally well if
the file was in YXZ or YZX order), and Z-order curves aren't much better.
It's even worse if the file is compressed.

Maybe look into smudge filters to store the data in a different format
inside Git
than what is in the working tree.

https://git-scm.com/docs/gitattributes


Those can only do so much. The best it can do is re-encode voxel data 
into Z-order curves, or recompress files into pseudo-compressed format 
(valid gzip file but every block is of type "uncompressed data").


I want something that can say "this file is 3D and we change a line of 
voxels here".