Binary storage Delta

I am looking for a binary delta storage solution for large binary version files (digital audio file files)

When working with DAW files, most of the changes, especially towards the end of the mix, are very small compared to the huge amount of data used to store raw data (waves).

It would be great to have a version control system for our DAW files, which would allow us to revert to older versions.

The system will save the difference between the binary files (diff) of each version. This will give us a list of instructions for moving from the current version to the previous version without saving the complete file for each individual version.

Are there any existing version control systems? I read that SVN uses binary difference to save space in the repo ... But I also read that it actually doesn’t only do text files for binary files ... Not sure. Any ideas?

My plan of action at the moment is to continue research in pre-interacting tools, and if there are none, it will become comfortable to read binary data from c / C ++ and create the tool myself.

+5
source share
4 answers

, ( , ). , ( ).

, , . , , /. Subversion (, ), . (.85 ) . (2,2 ) , b-, "" . 4000 , , .

/ subversion :

file1    851,271,675  
file2  2,205,798,400 

1,892,512,437 bytes in 32 files and 32 dirs

:

file1    851,287,155  
file2  2,207,569,920  

1,894,211,472 bytes in 34 files and 32 dirs

:

file1    851,308,845  
file2  2,210,174,976  

1,897,510,389 bytes in 36 files and 32 dirs

. , , , , , 10 . , 5 . , . , , , . , , ( ).

+5

Subversion , . / , , 1 .

+2

Subversion , . Subversion .

+2

git (, git gc ) , , :

$ git init
$ dd if=/dev/urandom of=largefile bs=1M count=100
$ git add largefile
$ git commit -m 'first commit'
[master (root-commit) e474841] first commit
 1 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 largefile
$ du -sh .
201M    .
$ for i in $(seq 20); do date >> largefile; git commit -m "$i" -a; git gc; done
$ du -sh .
201M    .
-1

All Articles