On 17.03.2015 15:06, Julian Foad wrote: > I (Julian Foad) wrote: >> * uniformity of the difference from branch1@r1 to branch2@r2 >> for any values of: branch1, r1, branch2, r2 >> where branch1 and branch2 are 'related' (formally: in the same branch >> family) > Branko Čibej wrote: >> The pure-difference is called 'svn_repos_replay'. [...] >> And of course there's 'svnadmin dump' [...] > No, those are interfaces to the repository model, the *linear* > sequence of snapshots of the whole repository contents. > > I'm talking about the branching model, the *tree* of snapshots of the > contents of "a branch" of (a directory-tree of) a project's files. > When I say 'difference' I'm talking about the kind of difference that > we need as input for a merge: a difference between any two path-revs > pathX@rX and pathY@rY on related branches.
I propose that there is no fundamental difference between the two models. Branching is just the application of a different delta to a common initial state. Merging is a) the calculation of a third delta based on the history (sequence of changes) of two branches, and b) the application of said delta. I actually started writing that up in the wiki; it's currently sitting on my laptop, waiting for a bit more inspiration. -- Brane