One of the great strengths of Foswiki is that it stores topics in plain text files. This feature has proven its worth time and again, as Foswiki is able to quickly adapt to organisational change, easily support external processes that write to topics, and is quickly accessible for emergency measures. For an admin who has login access to the server, it's very easy to use the command-line to make bulk changes to many topics simultaneously.

In Foswiki 1.1.4 we addressed a nasty bug that was inherited from the very earliest days of TWiki. This bug could result in serious history errors such as the wrong username being attributed to edits, incorrect revision numbers, and broken revision histories. Unfortunately there was a side-effect of this fix that anyone who modifies topics on the server needs to be aware of, and take action on.

Any process (or person) that changes a .txt file on the server must make sure that the corresponding .txt,v file is left with a file date that is equal to or more recent than the .txt file.

If you don't do this, Foswiki will be forced to constantly re-read the .txt,v for the correct revision history, which can affect performance. Also, when such a topic is edited, Foswiki will create a new revision attributed to the "UnknownUser" to record that the topic was changed outside of Foswiki's control. This is the correct behaviour in the general case, and will save less experienced users a lot of pain. However more experienced users may know that their changes are 'safe' and that no change to the topic history is required. In this case, it is trivial to update the file date on the .txt,v file. In summary,
  • After making any manual change to a .txt file on the server make sure that the corresponding .txt,v is 'touched' (use the UNIX 'touch' command, or simply text-edit and save the file)
  • Scripts that make bulk changes to files - and external processes that write .txt files - should be modified to 'touch' the .txt,v files after writing.
  • If you have already made such a change but can't remember which files you changed, you can use the following linux command line to 'touch' all .txt,v files (this is perfectly safe)
find /path/to/foswiki/data -name '*.txt,v' -exec touch {} ;

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License
This page was cached on 23 Apr 2017 - 17:42.