Hi, devs,

The question: would it be theoretically possible to implement a partial
rebuild, e.g.:

fossil rebuild tickets

to just rebuild ticket-related data?

The reason for the question: libfossil doesn't yet support tickets because
of their close ties to th1 (i don't want to tie any specific scripting
language to it, if at all avoidable). While building this support, it will
often be necessary for me to rebuild the repo to ensure that fossil(1) can
swallow what fossil(3) is writing. Such rebuilds will need to be done using
fossil, as libfossil won't have a rebuild feature until tickets can be
fully crosslinked, and it's my current thinking that [fossil rebuild
tickets] would be pretty useful for me (and implementing it in fossil would
help me in understanding tickets better for future work in libfossil).

If my understanding is correct (which it may not be), rebuilding only the
tickets would essentially mean doing the following:

BEGIN;
- collect the list of tickets from the event table, store them in a temp
table.
- delete all event table entries (where objid IN the_ticket_list).
- clear out the ticket metadata tables.
- crosslink all ticket manifests, getting their UUDs from the list we
stashed in the first step.
COMMIT;

(If we add an SQL binding for manifest_crosslink(RID), the above could
probably be implemented in plain SQL?)

Or are there other considerations which would need to be made?

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
_______________________________________________
fossil-dev mailing list
fossil-dev@lists.fossil-scm.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to