The public tree and its history contain only the listed paths. Earlier projection history remains preserved internally. Source-Sha: 913fde029b935671833254797f0f20f1eb9fabba Policy-Sha: 913fde029b935671833254797f0f20f1eb9fabba Tree-Digest: 180ae530c1058a2a5c89837bdce2d323ae83e669e38590ca72e75b8d92b7262f
25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
# Publication provenance
|
|
|
|
This branch is a constructed public projection. Its commit trailers identify
|
|
the internal source commit and the policy used to admit the projected tree.
|
|
Admission means the tree is eligible for disclosure; it neither authorizes nor
|
|
implies external publication.
|
|
|
|
`.publication/paths.txt` is the exact path authority. Every file in a candidate
|
|
must be listed, and every listed file must exist. Parent directories grant no
|
|
recursive authority. `.publication/surface_gate.py` can also write the exact
|
|
mode, blob ID, size, and path inventory for one immutable candidate with
|
|
`--inventory-out`.
|
|
|
|
Path authority covers every reachable commit, including files deleted before
|
|
the tip. Removing a path from disclosure therefore requires history that does
|
|
not contain it; a deletion commit alone is insufficient. Shallow history fails
|
|
closed. Internal development history is preserved separately.
|
|
|
|
Reproduce the tree digest from a checked-out public commit with:
|
|
|
|
```sh
|
|
LC_ALL=C git ls-tree -r --full-tree HEAD^{tree} | LC_ALL=C sort | sha256sum
|
|
```
|
|
|
|
The result must equal the commit's `Tree-Digest` trailer.
|