Item2957

RcsLite has been creating topics on Unix with damaged version histories since it was first written.

The problem arose when a revision ends in a blank line; for example, say you edit a topic and delete line 123, replacing it with
Fred


Note the blank line. Then you delete the next line (old line 124, new line 125). This was stored in the revision history by the broken RcsLite as
d123 1
a123 2
Fred
d 125 1
which is clearly wrong. The problem arose because there was an unwritten assumption in RcsLite that the platform is Win32, which uses CRLF line terminations. I fixed this bug under the auspices of Item2957, but there is probably a legacy of topics that have the problem on any sites that have used RcsLite on Unix. AFAICT there is only one user affected by this.

The problem is that there is no simple way to fix topics "on the fly". I thought at first that reading the topic and saving it again would work, but it doesn't. The best approach is to write a side script that analyses affected files and fixes them under user control.

Marking as Actioning as the analysis is clear.

CC

Regrading as low as there is no evidence of anyone being affected by this.

CC

The handling of topics ending in blank lines is regularly updated, status of this Item might have changed since May.

-- TWiki:Main.SteffenPoulsen - 17 Sep 2007

Raised to Urgent, because I have a site that is crippled by this. Added repair script; tools/repair_rcs_lite.pl; see Item3212

-- CrawfordCurrie - 16 Jun 2009

ItemTemplate edit

Summary Rcs Lite can't recover from damaged version histories
ReportedBy TWiki:Main.CrawfordCurrie
Codebase
SVN Range TWiki-4.1, Tue, 28 Nov 2006, build 12081
AppliesTo Engine
Component
Priority Urgent
CurrentState Closed
WaitingFor
Checkins Foswikirev:4163 Foswikirev:12091
TargetRelease patch
ReleasedIn 1.0.6
Topic revision: r11 - 22 Jun 2009, KennethLavrsen
 
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. see CopyrightStatement. Creative Commons License