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

Re: Subversion history: Why was/is tagging/branching implemented as copy?

From: Branko Čibej <brane_at_xbc.nu>
Date: 2003-11-03 22:23:26 CET

[moving to the dev list, as it more properly belongs there]

kfogel@collab.net wrote:

>We tried to think of an important difference between tags/branches and
>copies, and couldn't, so we just decided to implement them as copies
>and make it user-visible.
>
>
Actually, I _have_ thought of an important (to me, that is) difference
between branches and copies, and I brought it up a few times, but it can
wait until post-1.0. A difference that would incidentally make history
traversing much easier, especially in non-BDB backends -- but it would
mean a change in the database schema. :-)

From the user perspective, you'd get two new commands and slightly
different behaviour of an old one:

    svn copy
    svn branch
    svn tag

'copy' would create a copy of a node revision, noting its copy source
for future generations, but the created node would represent the first
revision of a new versionable object. What this means in practice is
that any history traversal will stop at that node.

'branch' would create a new branch off the node. No new node IDs would
be generated.

'tag' would be like branch, except that it would (somehow) make the
tagged node (and implicitly all its children) read-only.

Yes, there are lots of open questions here, among them how to handle
ACLs on copies and branches, what to do in the presence of 'svn link',
etc. etc. I've put it all on hte back burner, for obvious reasons.

-- 
Brane Čibej   <brane_at_xbc.nu>   http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Nov 3 22:24:09 2003

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