Add support for direct IOVs from filenames
with this change we can replace the special (obscure) IOVs
file with a convention on the filenames.
So instead of
- path/to/cond/IOVs
- path/to/cond/a
- path/to/cond/b
- path/to/cond/c
with IOVs
looking like
1234 b
2000 a
2350 c
We can use something like:
- path/to/cond/.condition
- path/to/cond/1234
- path/to/cond/2000
- path/to/cond/2350
where .condition
is a special flag file (empty) used to mark cond
as a condition, instead of a plain directory (with conditions inside).
The special .condition
file is needed because currently if a directory does not contain an IOVs
file it is converted to a string formatted from the list of files and directories contained, so we need a flag to state that the lookup in the directory is special.
With the direct IOVs feature, deduplication of payloads can be achieved by means of symlinks, like in
- path/to/cond/.pool/value1
- path/to/cond/.pool/value2
- path/to/cond/1234 -> .pool/value1
- path/to/cond/2000 -> .pool/value2
- path/to/cond/2350 -> .pool/value1
Note that this is mostly useful to reduce excessive disk usage in checked out copies, because the Git database has deduplication built in.
Closes #10 (closed)