Re: [PATCH v2 1/6] archive: optionally add "virtual" files
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 11, 2022, 21:27 UTC
- Message-ID
- <xmqqk0e19jrp.fsf@gitster.g>
- In-Reply-To
- <f83ed995-6dff-bc41-8782-48ac9f1a2651@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 7 quoted lines
>> Or if people do not _exclude_ tracked files from the archive, then >> the verifier who has a tarball and a Git tree object can consult the >> tree object to see which ones are added untracked cruft. > > True, but if you have the tree objects then you probably also have the > blobs and don't need the archive? Or is this some kind of sparse > checkout scenario?
My phrasing was too loose. This is a "how to verify a distro tarball" (without having a copy of the project repository, but with some common tools like "git") scenario.
The verifier has a tarball. In addition, the verifier knows the object name of the Git tree object the tarball was taken from, and somehow trusts that the object name is genuine. We can do either "untar + git-add . && git write-tree" or its equivalent to see how the contents hashes to the expected tree (or not).
How the verifier trusts the object name is out of scope (it may come from a copy of a signed tag object and a copy of the commit object that the tag points at and the contents of signed tag object, with its known format, would allow you to write a stand alone tool to verify the PGP signature).
Line-end normalization and smudge filter rules may get in the way, if we truly did "untar" to the filesystem, but I thought "git archive" didn't do smudge conversion and core.crlf handling when creating the archive?