You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Hridyesh Pant <hp...@quark.com> on 2005/06/02 06:05:19 UTC

Branches and tags

Hi,
I am trying to move subversion.but i am not able to understand below point:
"Branching and tagging are cheap (constant time) operations 
There is no reason for these operations to be expensive, so they aren't.

Branches and tags are both implemented in terms of an underlying "copy" operation. A copy takes up a small, constant amount of space. Any copy is a tag; and if you start committing on a copy, then it's a branch as well. (This does away with CVS's "branch-point tagging", by removing the distinction that made branch-point tags necessary in the first place"


Could anybody help me to explain in detail with example.

Thanks
Hridyesh

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Branches and tags

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jun 2, 2005, at 8:10 AM, Miha Vitorovic wrote:
>
> Well, the quote is from the book, and to be honest, it doesn't  
> explain the whole thing quite clearly. Well, it does, but to  
> someone who is familiar with a version control system.

Really?  The chapter was specifically written to assume that the  
reader had never used version control at all.  Hence the section in  
the beginning, "What's a branch?", which defines the term, and shows  
diagrams.  Later on, the "Tags" section explains what a tag is, and  
how it's similar to a branch.

It sounds like you're unhappy because you want to understand the  
*internal* details of why copies are cheap.  The book can only go  
into so much detail there;  there's a sidebar about it in http:// 
svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.3.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Branches and tags

Posted by Miha Vitorovic <mv...@nil.si>.
Ben Collins-Sussman <su...@collab.net> wrote on 02.06.2005 14:50:58:

> How about reading chapter 4?
> 
> http://svnbook.red-bean.com/en/1.1/ch04.html

Well, the quote is from the book, and to be honest, it doesn't explain the 
whole thing quite clearly. Well, it does, but to someone who is familiar 
with a version control system. When I started with this from the scratch, 
I had to try things out, and use the system for a while, before it became 
perfectly clear to me, what a TAG actually is.

Cheers,
---
  Miha Vitorovic
  Inženir v tehničnem področju
  Customer Support Engineer

   NIL Data Communications,  Tivolska cesta 48,  1000 Ljubljana,  Slovenia
   Phone +386 1 4746 500      Fax +386 1 4746 501     http://www.NIL.si


Re: Branches and tags

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jun 2, 2005, at 1:05 AM, Hridyesh Pant wrote:

> Hi,
> I am trying to move subversion.but i am not able to understand  
> below point:
> "Branching and tagging are cheap (constant time) operations
> There is no reason for these operations to be expensive, so they  
> aren't.
>
> Branches and tags are both implemented in terms of an underlying  
> "copy" operation. A copy takes up a small, constant amount of  
> space. Any copy is a tag; and if you start committing on a copy,  
> then it's a branch as well. (This does away with CVS's "branch- 
> point tagging", by removing the distinction that made branch-point  
> tags necessary in the first place"
>
>
> Could anybody help me to explain in detail with example.


How about reading chapter 4?

http://svnbook.red-bean.com/en/1.1/ch04.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Branches and tags

Posted by Erik Huelsmann <eh...@gmail.com>.
On 6/2/05, Ulrich Eckhardt <ec...@satorlaser.com> wrote:

[ snip ]

> > "Branching and tagging are cheap (constant time) operations
> > There is no reason for these operations to be expensive, so they aren't.
> 
> This is just to reassure people that the copy operation for branching/tagging
> is not expensive, neither in terms of disk space nor CPU load. The reason for
> this is that the node 'tags/project1/version_0.1' at revision X is internally
> stored as reference to the node 'trunk/project1' at revision X-1, i.e. there
> is no copying going on.

Yes, as well as stressing the difference with CVS, where the execution
time fo tagging and branching is lineair with the number of files to
be branched or tagged.


bye,


Erik.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Branches and tags

Posted by Ulrich Eckhardt <ec...@satorlaser.com>.
Hridyesh Pant wrote:
> Branches and tags are both implemented in terms of an underlying "copy"
> operation. A copy takes up a small, constant amount of space. Any copy is a
> tag; and if you start committing on a copy, then it's a branch as well.
> (This does away with CVS's "branch-point tagging", by removing the
> distinction that made branch-point tags necessary in the first place"

There is no support for branches or tags in Subversion itself (because not 
every development uses them). However, the typical way to implement branching 
and tagging on top of Subversion is to create three subdirs 
trunk/tags/branches and to copy the whole project from trunk to a folder 
under the branches or tags folder, e.g. 'copy trunk/project1 
tags/project1/version_0.1'.

In CVS on the other hand, operations like branches or tags are builtin 
features.

> "Branching and tagging are cheap (constant time) operations
> There is no reason for these operations to be expensive, so they aren't.

This is just to reassure people that the copy operation for branching/tagging 
is not expensive, neither in terms of disk space nor CPU load. The reason for 
this is that the node 'tags/project1/version_0.1' at revision X is internally 
stored as reference to the node 'trunk/project1' at revision X-1, i.e. there 
is no copying going on.

Uli

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org