forked from lix-project/lix
Clarify the description of StorePath construction
This commit is contained in:
parent
01572c2198
commit
132d6f2c24
|
@ -69,7 +69,7 @@ string storePathToHash(const Path & path)
|
||||||
|
|
||||||
/* Store paths have the following form:
|
/* Store paths have the following form:
|
||||||
|
|
||||||
<store>/<h>-<name>
|
<realized-path> = <store>/<h>-<name>
|
||||||
|
|
||||||
where
|
where
|
||||||
|
|
||||||
|
@ -93,11 +93,14 @@ string storePathToHash(const Path & path)
|
||||||
<type> = one of:
|
<type> = one of:
|
||||||
"text:<r1>:<r2>:...<rN>"
|
"text:<r1>:<r2>:...<rN>"
|
||||||
for plain text files written to the store using
|
for plain text files written to the store using
|
||||||
addTextToStore(); <r1> ... <rN> are the references of the
|
addTextToStore(); <r1> ... <rN> are the store paths referenced
|
||||||
path.
|
by this path, in the form described by <realized-path>
|
||||||
"source"
|
"source:<r1>:<r2>:...:<rN>:self"
|
||||||
for paths copied to the store using addToStore() when recursive
|
for paths copied to the store using addToStore() when recursive
|
||||||
= true and hashAlgo = "sha256"
|
= true and hashAlgo = "sha256". Just like in the text case, we
|
||||||
|
can have the store paths referenced by the path.
|
||||||
|
Additionally, we can have an optional :self label to denote self
|
||||||
|
reference.
|
||||||
"output:<id>"
|
"output:<id>"
|
||||||
for either the outputs created by derivations, OR paths copied
|
for either the outputs created by derivations, OR paths copied
|
||||||
to the store using addToStore() with recursive != true or
|
to the store using addToStore() with recursive != true or
|
||||||
|
@ -125,6 +128,12 @@ string storePathToHash(const Path & path)
|
||||||
the contents of the path (or expected contents of the
|
the contents of the path (or expected contents of the
|
||||||
path for fixed-output derivations)
|
path for fixed-output derivations)
|
||||||
|
|
||||||
|
Note that since an output derivation has always type output, while
|
||||||
|
something added by addToStore can have type output or source depending
|
||||||
|
on the hash, this means that the same input can be hashed differently
|
||||||
|
if added to the store via addToStore or via a derivation, in the sha256
|
||||||
|
recursive case.
|
||||||
|
|
||||||
It would have been nicer to handle fixed-output derivations under
|
It would have been nicer to handle fixed-output derivations under
|
||||||
"source", e.g. have something like "source:<rec><algo>", but we're
|
"source", e.g. have something like "source:<rec><algo>", but we're
|
||||||
stuck with this for now...
|
stuck with this for now...
|
||||||
|
|
Loading…
Reference in a new issue