Goals

Tom Lord lord at emf.net
Mon Apr 7 16:53:21 CDT 2003


   Goal: design a patch format that

      a) is compatible with the standard `patch' program in the sense
         that `patch' will not choke on it, and will apply as much of it
         as it can.

I would make that a "desirable" goal, not a "constraining" goal.

      b) expresses tree changes (directories and files
         added, copied, renamed, and removed)

And there's a need to deal with "inexact" patching regarding those
(i.e. the tree to which a path is applied has different structure from
the ORIG tree used to generate the patch).

      c) supports generic metadata.  What I have in mind are Subversion's
         "properties", but there may be other sorts of metadata used by
         Arch or other systems; none of it should be lost.

A design principle of arch is that "meta-data" is part of the source
tree.  Thus, the patch mechanism in arch is unaware of a distinction
between data and meta-data.  When arch needs to add meta-data, it
takes the changeset format as a design constraint.

   That's all.  If these goals seem wildly off-base, this would be a good
   time to say so :-).

Not wildly.  Just slightly.

And slightly misfocused.   

Let's talk tree reararrangements.  They imply the ability to recognize
a logical identity of a file that is not tied to its physical location
in the tree.   I think the "logical identity" problem is a separable
subproblem of the general changeset challenge.

So: how do we assign logical identities to files?   

Towards a _straw man_ proposal, I'll point to some tutorial docs about
arch's approach:

  http://regexps.srparish.net/tutorial/inventories.html

  http://regexps.srparish.net/tutorial/inventory-tags.html


When we want to talk about how that relates to changesets, this may be 
relevant:


  http://www.fifthvision.net/open/bin/view/Arch/PatchSetFormalSemantics



-t



More information about the changesets mailing list