Pro Git
Pro Git Git construye la cabecera comenzando por el tipo de objeto, en este caso un objeto binario grande (blob). Después añade un espacio, seguido del tamaño del contenido y termina con un byte nulo:
>> header = "blob #{content.length}\0" => "blob 16\u0000"Git concatena la cabecera y el contenido original, para calcular la suma de control SHA-1 conjunta. En Ruby, para calcular el valor SHA-1 de una cadena de texto has de incluir la libreria de generación SHA1 con el comando require y llamar luego a la orden Digest::SHA1.hexdigest():
>> store = header + content => "blob 16\u0000what is up, doc?" >> require 'digest/sha1' => true >> sha1 = Digest::SHA1.hexdigest(store) => "bd9dbf5aae1a3862dd1526723246b20206e5fc37"Git comprime todo el contenido con zlib, lo cual puedes hacer en Ruby con la libreria zlib. Primero has de incluir la libreria y luego lanzar la orden Zlib::Deflate.deflate() sobre el contenido: