Skip to topic | Skip to bottom
APS Sahaja Yoga
You are here: APS Sahaja Yoga > TWiki Web > TWikiMerge3DotPm r1 - 11 Dec 2005 - 12:07 - TWikiGuest


Start of topic | Skip to actions

Package TWiki::Merge

Support for 3-way merging of strings. Similar to Merge.pm, except that: a) it's considers the ancestor revision of the string, and b) it works. :-P

StaticMethod merge ($a,$b,$c,$arev,$brev,$crev,$sep,

$writeConflict, @info )

Perform a merge of two versions (b and c) of the same text, using HTML tags to mark conflicts. a is the common ancestor.

The granularity of the merge depends on the setting of $sep. For example, if it is "\\r?\\n", a line-by-line merge will be done.

Where conflicts exist, they are labeled using the provided revision numbers. If a $writeConflict method is passed, then that's called to override the built-in conflict formatting. Non-conflicting content is not labeled.

Here's a little picture of a 3-way merge:

a <- ancestor / b c <- revisions \ / d <- merged result, returned.

call it like this:

my ( $ancestorMeta, $ancestorText ) = $store->readTopic( undef, $webName, $topic, $originalrev ); $newText = TWiki::Merge3::merge( $ancestorText, $prevText, $newText, $originalrev, $rev, "new", '\r?\n' );

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
This site is powered by the TWiki collaboration platformCopyright © 1993-2005 Associazione di Promozione Sociale "Sahaja Yoga" di Verona
http://www.sahajayogaverona.it - info@sahajayogaveronaPROTEZIONESPAMDACANCELLARE.it
Tel. 3476521542