subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache subversion Wiki <comm...@subversion.apache.org>
Subject [Subversion Wiki] Update of "FileMerge" by JulianFoad
Date Thu, 17 Jan 2013 03:59:41 GMT
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?action=diff&rev1=4&rev2=5

   * the merge during an update
  
  == File Merge - General Definition ==
-  * 3 "node-versions" are involved: "left", "right", "target".
+  * Three node-versions are involved: 'left', 'right', 'mine'.
   * 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.
+  * 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.  (That is, 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.)
+ A 3-way diff style of merge is used, for both props and text.  (That is, 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.)
  
  == Properties and Text ==
  Props are merged independently of the text, whereas the text merge can be affected by some
of the properties, notably svn:keywords and svn:eol-style. The on-disk 'executable' and 'read-only'
attributes also may be altered, depending on the properties and on whether a  lock is known
to be held on this node's repository path.
  
- === Properties ===
+ === Properties Merge ===
  For each property name 'P', a merge is performed on the three values (of property 'P' from
each of the three node-versions), independently of any other property name. Where one or two
of the three node-versions do not have the property named 'P', the value is regarded as 'null'.
  
   . ### A property value is merged as a 3-way text merge, or as a simple choice of one of
the values?
@@ -31, +31 @@

  
  If the values conflict, a 'property conflict' is recorded for the property name 'P'. Property
conflicts may be recorded for none, any or all of the property names involved in the merge.
 ### See 'Conflicts'.
  
- === Text ===
+ === Text Translation ===
  The following table show what translations are performed between "repository normal form"
and "working copy form":
  ||<tablewidth="90%">svn:special ||yes ||no ||no ||no ||no ||
  ||svn:mime-type ||n/a ||bin ||txt ||txt ||txt ||
@@ -42, +42 @@

  
  
  
+ To prepare for a merge, in principle the 'mine' text is translated as follows, to end up
in RNF for comparison with the incoming 'left' and 'right' texts.
+ 
+  1. translate to RNF according to the old 'mine' props
+  1. translate to WCF according to the new merged props*
+  1. translate to RNF according to the new merged props*
+ 
+ *If the merged properties have conflicts, then ###?
+ 
+ Step 1 simply returns the text to its own RNF.
+ 
+ Steps 2 and 3 ensure that any keywords (### and eol-style?) that should be enabled after
the merge, are ###?
+ 
+ Also the 'left' text is translated to the (kw? eol?) form of the 'right' text ### ...
+ 
+ === Text Merge ===
+     ### ...
+ 
  === Executable and Read-Only Attributes ===
   . ### (The on-disk 'executable' and 'read-only' attributes also may be altered, depending
on the properties and on whether a  lock is known to be held on this node's repository path.)
  

Mime
View raw message