I don't know either, but when I tried flfmt with a vac score as an
experiment, I got this:
ole@ole-TECRA-R940 ~/Desktop/plan9 $ bin/fossil/flfmt -h 192.168.0.101 -v
f648dbae0075eb73bc394ad6cd4c059e655e127c fossil.dat
fs header block already exists; are you sure? [y/n]: y
fs file is mounted via devmnt (is not a kernel device); are you sure?
[y/n]: y
0xfb1e734c
0x1d1feaf1
c85978546e4048fce83120d3992cfc2f57ff2f8c
bin/fossil/flfmt: bad root: no qidSpace
/*
* Maximum qid is recorded in root's msource, entry #2 (conveniently in
e).
*/
ventiRead(e.score, VtDataType);
if(!mbUnpack(&mb, buf, bsize))
sysfatal("bad root: mbUnpack");
meUnpack(&me, &mb, 0);
if(!deUnpack(&de, &me))
sysfatal("bad root: dirUnpack");
if(!de.qidSpace)
sysfatal("bad root: no qidSpace");
qid = de.qidMax;
It seems that the vac archive does not contain the max qid that
flfmt needs. This seems strange to me, as vac -a should need this info just
as much as fossil needs it. Maybe it's tucked away somewhere else. Guess I
need to look some more at the code.
Digging further, I found the comment in file.c, but did not pursue the matter:
* Fossil generates slightly different vac files, due to a now
* impossible-to-change bug, which contain a VtEntry
* for just one venti file, that itself contains the expected
* three directory entries. Sigh.
*/
VacFile*
_vacfileroot(VacFs *fs, VtFile *r)
On Wed, Dec 13, 2017 at 11:00 AM, Steve Simon <[email protected]> wrote:
> I don't think there is any difference between vac and what fossil uses,
> just where it appears in the hierarchy (though maybe I am wrong).
>
> Fossil adds a fixed upper layer of hierarchy
>
> active
> dump
> <year>
> <month><mday>
> snap
> <year>
> <month><mday>
> <hour><min>
>
> The difficulty is how to convince fossil to install a score into its
> hierarchy as though
> its one that it created.
>
> I am pretty sure this is doable, it just needs a rather deep understanding
> of how fossil
> works and when I tried to do it I discovered fossil is really rather
> complex.
>
> -Steve
>
>