{"thread":{"id":"45870","subject":"Delta compression hooks","startedAt":"2017-05-04T22:48:39Z","lastAt":"2017-05-04T23:40:33Z","messageCount":3,"participants":["Soni L.","Stefan Beller"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"318812","messageId":"b8f1dab4-896f-c9ad-7a89-87aacb2c3e61@gmail.com","threadId":"45870","inReplyTo":null,"subject":"Delta compression hooks","fromName":"Soni L.","fromEmail":"fakedme+git@gmail.com","sentAt":"2017-05-04T22:48:29Z","receivedAt":"2017-05-04T22:48:39Z","isPatch":false,"sender":{"key":"fakedme+git@gmail.com","avatar":null},"body":"Can we get delta compression hooks? I'm working with voxel data as my \nsource code (it's a long story...) and git doesn't handle changing lines \nof voxels very well.\n\nExample, I have something from position (0,0,0) to position (0,10,0) and \nI replace it with something else. Git doesn't handle this difference \nvery well if the file is encoded in XYZ order (it'd handle it \nexceptionally well if the file was in YXZ or YZX order), and Z-order \ncurves aren't much better. It's even worse if the file is compressed.\n\nThe hooks/plugins would be required on the sending end and on the \nreceiving end, but bare repos wouldn't need to know about them (github \ncould show \"unknown diff\" or something). This is good because such \nplugins would effectively be machine code, so you don't want bare repos \nrunning them.\n\nOther source-y things that would benefit from this:\n\n- 2D image source code http://esolangs.org/wiki/Piet\n- photoshop files\n- database files (well uh, I guess this is more \"data\" than \"source\"... \nI'm sure someone out there is storing source code in a database, tho)\n"},{"id":"318813","messageId":"CAGZ79ka66czcGpNGWFEQ=2Qf7OJgH7A-O+R860P=usiFWV4RBA@mail.gmail.com","threadId":"45870","inReplyTo":"b8f1dab4-896f-c9ad-7a89-87aacb2c3e61@gmail.com","subject":"Re: Delta compression hooks","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-05-04T22:57:29Z","receivedAt":"2017-05-04T22:57:36Z","isPatch":false,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Thu, May 4, 2017 at 3:48 PM, Soni L. <fakedme+git@gmail.com> wrote:\n> Can we get delta compression hooks? I'm working with voxel data as my source\n> code (it's a long story...) and git doesn't handle changing lines of voxels\n> very well.\n>\n> Example, I have something from position (0,0,0) to position (0,10,0) and I\n> replace it with something else. Git doesn't handle this difference very well\n> if the file is encoded in XYZ order (it'd handle it exceptionally well if\n> the file was in YXZ or YZX order), and Z-order curves aren't much better.\n> It's even worse if the file is compressed.\n\nMaybe look into smudge filters to store the data in a different format\ninside Git\nthan what is in the working tree.\n\nhttps://git-scm.com/docs/gitattributes\n"},{"id":"318814","messageId":"6e5b70c3-cf80-d26a-1c7e-14c2a00a778b@gmail.com","threadId":"45870","inReplyTo":"CAGZ79ka66czcGpNGWFEQ=2Qf7OJgH7A-O+R860P=usiFWV4RBA@mail.gmail.com","subject":"Re: Delta compression hooks","fromName":"Soni L.","fromEmail":"fakedme+git@gmail.com","sentAt":"2017-05-04T23:40:22Z","receivedAt":"2017-05-04T23:40:33Z","isPatch":false,"sender":{"key":"fakedme+git@gmail.com","avatar":null},"body":"\n\nOn 2017-05-04 07:57 PM, Stefan Beller wrote:\n> On Thu, May 4, 2017 at 3:48 PM, Soni L. <fakedme+git@gmail.com> wrote:\n>> Can we get delta compression hooks? I'm working with voxel data as my source\n>> code (it's a long story...) and git doesn't handle changing lines of voxels\n>> very well.\n>>\n>> Example, I have something from position (0,0,0) to position (0,10,0) and I\n>> replace it with something else. Git doesn't handle this difference very well\n>> if the file is encoded in XYZ order (it'd handle it exceptionally well if\n>> the file was in YXZ or YZX order), and Z-order curves aren't much better.\n>> It's even worse if the file is compressed.\n> Maybe look into smudge filters to store the data in a different format\n> inside Git\n> than what is in the working tree.\n>\n> https://git-scm.com/docs/gitattributes\n\nThose can only do so much. The best it can do is re-encode voxel data \ninto Z-order curves, or recompress files into pseudo-compressed format \n(valid gzip file but every block is of type \"uncompressed data\").\n\nI want something that can say \"this file is 3D and we change a line of \nvoxels here\".\n"}]}