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

Re: Cloning, branching, and cvs2svn

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2001-10-05 19:42:03 CEST

<peter.westlake@arm.com> writes:

> 1. Is it possible to clone a file as well as a directory?

The subversion filesystem has two operations:

   * link: this is the equivalent of a hard-link. It creates a new
     directory entry that points to an already-existing node.

   * copy: creates a completely new node, and a directory entry to
     point to it. (the *contents* of the new node still point to the same
     contents of the original node, however, and the new node retains
     memory of where it was copied from. )

The 'link' functionality is the foundation upon which the filesystem
builds new trees. Each new revision tree is 98% links to existing
nodes from older trees, and 2% successor nodes that contain changes. :-)

So 'svn mv' will cause a link and a delete in the filesystem, while
'svn cp' will cause a copy, I believe.

>
> 2. Can a clone go anywhere in the tree? I'm guessing it can, as long as it
> doesn't make a cycle ...

Exactly. That's why we have a DAG underlying the filesystem -- the
"A" stands for "acyclic".

> 3. Has a UI for this been decided yet? Does it need anything more than "svn
> clone originalURL newURL"?

We'll be jumping on the UI problem in the next week or two... it's
the Big Task for alpha.

> 4. How much has been done with cvs2svn? It is going to need rules about
> what to do with branches and tags, and it would probably be helpful if tags
> with different names could be treated differently. Some, like those used to
> help with merging, might not need to be preserved at all. I'm imagining a
> file full of things like:
>
> product1 trunk products/product1
> product1 .* branches/product1/{branch}
>
> .* release([0-9]+) releases/{path}/{1}
> .* alpha alpha/{path}
> .* beta beta/{path}
> .* .* development/{path}/{branch}
>
> I had a look at the cvs2svn sources, but didn't see much about branches or
> tags.

Better ask gstein... this sub-project is currently his baby.

> 5. Finally, is it all right if some of the later examples go on to use the
> links that you were proposing, that I suggested calling "references"?

? How do you define a "reference"? Are you referring to the
filesystem's `link' function above? That's the way a branch/tag/"clone"
directory will normally start life. It's nothing more than a new
directory entry pointing to an existing node.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:44 2006

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