[pmwiki-devel] Versioning and Tagging
John Rankin
john.rankin at affinity.co.nz
Wed Oct 10 16:02:15 CDT 2007
On Tuesday, 9 October 2007 9:24 PM, Dominique Faure <dominique.faure at gmail.com> wrote:
>On 10/8/07, Kathryn Andersen <kat_lists at katspace.homelinux.org> wrote:
>> Would it be possible to add a tagging system to PmWiki, like one has
>> with cvs and subversion?
>>
>> That is:
>> 1) for a page, any version of that page can have a tag added to it (for
>> example, FOO1)
>> 2) when tag=FOO1 is present, then the current action will apply to that
>> version of the page. For example,
>> http://www.example.com/wiki/Main/Thing1?action=browse&tag=FOO1
>> would show the version of the page with the FOO1 tag, and
>> http://www.example.com/wiki/Main/Thing1?action=print&tag=FOO1
>> would would give the print skin showing the version of the page with the
>> FOO1 tag, and
>> http://www.example.com/wiki/Main/Thing1?action=somenewaction&tag=FOO1
>> would apply the new action "somenewaction" to the version of the page
>> with the FOO1 tag.
>> 3) Tags are unique to a page; if one adds FOO1 to another version of the
>> page, then the old FOO1 tag will be taken off the original version of
>> the page it was attached to (similar to the way tagging works in CVS).
>> 4) One should be able to add tags to multiple pages at once, for the
>> current version of the page. Ideally, one should be able to select the
>> pages it's added to, but even being able to add a tag to the "whole wiki
>> as of right now" would be helpful, I think.
>> 5) As with CVS, a given version of a page can have multiple tags on it,
>> since one will probably want to be able to tag a group of pages with the
>> same tag, and PageA may have changed, but PageB hasn't changed since the
>> last tag, but one still wants that version of PageB to have the new tag.
>>
>> Is this possible? How could it be done?
>>
>
>Following your tags description, I could easily see them implemented
>as a set of page properties (fields stored within the wiki page file),
>acting as aliases on some of the page history timestamps.
>
>--
>Dominique
>
A couple of observations, which may help (or not):
- a "lightweight" start to investigate the concept further might be
to take the special case of "wiki at a point in time" -- that is,
for a given date/time stamp, all actions on the wiki take place on
the page versions current at that point
- so in this case, once you set a date/time stamp, clicking around
the wiki always displays the last modified version before that
point
- a variation on this is to "dial through time" for a page --
next version / previous version links to display the past and
(for a point in time) future page version; ideally with the
specific changes highlighted (the way something like TextWrangler
can compare 2 text files and show the differences)
- if I view a page as at a point in time and click edit, does
the revised version become the new current version, or does the
page "fork" in some way?
- at least in principle, one can define a "release" of wiki pages
where one maps a "tag" to a set of pages, perhaps with different
as-at dates and times; conceptually, this treats a FOO1 tag more
like a trail than like a category, with the ability to define a
stop on the trail "as at" a point in time
- for example:
Page.FOO1 (:comment trail page:)
:as at:yyyymmdd (:comment set a default as at stamp:)
* PageA:
* PageB: yyyymmdd (:comment use a different stamp for PageB:)
- I don't have an opinion on whether for this application tags
or trails would be better; I can see merit and issues for both
approaches
--
JR
--
John Rankin
\_
\)
\,\__/7
/ /
( c'
\ /
/, /_/
| & * Wellington
) /
/ /,
/ (
| /
\__/
V
More information about the pmwiki-devel
mailing list