[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