Re: Verifiable git archives?
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 9, 2014, 20:11 UTC
- Message-ID
- <xmqqsiswapav.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <CALCETrU88evB6VQrE8=8vrc+HYXAX8_Zx7TsYZp6YXeE4dZdvg@mail.gmail.com>
Andy Lutomirski <luto@amacapital.net> writes:
Show 11 quoted lines
> It's possible, in principle, to shove enough metadata into the output > of 'git archive' to allow anyone to verify (without cloning the repo) > to verify that the archive is a correct copy of a given commit. Would > this be considered a useful feature? > > Presumably there would be a 'git untar' command that would report > failure if it fails to verify the archive contents. > > This could be as simple as including copies of the commit object and > all relevant tree objects and checking all of the hashes when > untarring.
You only need the object name of the top-level tree. After "untar" the archive into an empty directory, make it a new repository and "git add . && git write-tree"---the result should match the top-level tree the archive was supposed to contain.
Of course, you can write "git verify-archive" that does the same computation all in-core, without actually extracting the archive into an empty directory.