[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svnmover feedback

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Wed, 29 Apr 2015 22:53:15 +0000

Daniel Shahaf wrote on Wed, Apr 29, 2015 at 22:24:36 +0000:
> Julian Foad wrote on Mon, Apr 27, 2015 at 20:58:34 +0100:
> > Daniel Shahaf wrote:
> > > Julian Foad wrote:
> > >> On 17 April 2015, Daniel Shahaf wrote:
> > > I suppose the answer depends on the properties, i.e., "interface", of
> > > a branch operation. For example, is a copy of a branch a branch? (In
> > > English: is 'bar' a branch after 'branch trunk foo; cp foo bar'? If it
> > > is a branch, is its ancestor 'trunk' or 'foo'?)
> >
> > Although branches are "exposed" in Subversion by attaching them to
> > paths, think of that like "mounting" a Unix file system on a path for
> > the convenience of being able to address it through the existing
> > addressing scheme (that is, paths, in both Unix and in Subversion).
> >
> > Food for thought. Thanks. (I'm still working on exactly how 'plain
> > copying' fits in to the model.)
>
> Okay. So what you're saying so far is that the data model will have
> distinct concepts for "copying" and "branching". Presumably both cases
> will result in the new object's delta chain pointing to the old object's
> (this would be an implementation detail), but some high-level operations
> will behave differently if the object operated upon is a branch compared
> to if it is a plain copy. The interesting question is what those
> differences will be.
>
> Should "branching" be an atomic concept of the model, or a derived one?
> That is, we could define "branch" as "a node created from an existing
> node via the 'svnmover branch' API", or we could define branch in terms
> of lower-level operations?
>
> An example of the latter would be to define branching as "a node Y is
> a branch of node X if X is a copy-wise ancestor of Y and there has been
> at least one merge between X and Y, in either direction".

By the way, if the data model has a first-class 'branch' operation, will
it also have a first-class 'tag' operation? And where would the
distinction between 'feature branches', 'stabilization branches', etc.,
live?

That is: would the hypothetical "SCM-knowledgeable user not familiar
with SVN" want to tell her SCM the merges pattern of each branch (which
branches it may merge from/to), and have the SCM enforce that?

Daniel
(An "SCM-knowledgeable user not familiar with SVN" is the end-user with
whom in mind the data model is designed)
Received on 2015-04-30 00:53:48 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.