Fossil SCM
branch/ci-link-formpost
The ci-link-forumpost branch is an experiment in linking forum posts to check-ins and tickets. There are at least two approaches which may be feasible, without requiring any new infrastructure, by making use of tags:
-
Create one tag per link. The tag's name is
forumpost/FORUM_POST_HASHand the linking tagxref.value field is NULL. This approach is trivial to implement but results in one distinct tag table entry for each forumpost which is linked to and one tagxref table entry per link. -
Create a shared tag named "forumpost" and store the hash of that post in the tagxref.value field of a tagxref entry which tags the target check-in or ticket. This approach results in a single shared tag table entry plus one tagxref entry per link.
The initial checkin on this branch prototypes the first option, but the second may yet prove to be the better approach. Exploring those alternatives is what this branch is about.
Which approach is more performant, for purposes of finding such links (e.g. in the /info view for checkins), is unclear.
One important consideration is that any given logical forumpost may be made up of any number of forumpost artifacts in a chain of edits. That is, a post which has been edited 5 times is modeled as a series 6 artifacts, with the P-card of the first and subsequent edits referring to the previous version of that post. That may (it has not yet been proven) be decisive in determining which of the above approaches is better suited for linking forum posts. Generally speaking, because of how forumposts are referenced and rendered, it would suffice to always create links based on the first (and only the first) version of a given post, and use that post's hash for all linking purposes. See the forumpost-locking branch for more details about/thoughts on that point.