You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by Apache subversion Wiki <co...@subversion.apache.org> on 2013/01/17 02:49:45 UTC

[Subversion Wiki] Update of "FileMerge" by JulianFoad

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.

The "FileMerge" page has been changed by JulianFoad:
http://wiki.apache.org/subversion/FileMerge

New page:
= How Subversion Merges a File =
This page is an attempt to formalize how Subversion merges changes to a single file.  It aims to cover the user-visible aspects, and include details such as:

 * 'binary' file
 * keyword expansion
 * eol-style
 * no-op change
 * UI notification
 * the merge during an update

== File Merge - General Definition ==
 * 3 "node-versions" are involved: "left", "right", "target".
 * All node-versions "live at" the same WC path.
 * Node kind is 'file' for all node-versions involved.
 * The file has "props" and "text"; both are merged.
 * Props are merged independently, but text merge depends on the props.

A 3-way diff style of merge is used, for both props and text.  (The fact that "left" might not be the youngest common ancestor is not taken into account.  The "4-way diff" aka "variance-adjusted patching" technique is not used.)