Roberto Nucera wrote:
> Toby, Sean
>
> Thanks!!
>
> My final question...
> The document speaks of trees...? "Revision numbers apply to entire trees"
>
> What is a tree? For example is the entire repository the tree (repo =
> tree) or can there be somehow independent trees inside a repository.
I sense you're still a little confused :-)
Subversion does not assign version numbers to individual files.
The repository as a whole has a "revision number" which represents
the number of changes that have been made to that repository. Every
time a commit is made, that number goes up by one. There cannot
be independent trees that have different incrementing revision
numbers within a single repository. It simply doesn't work that
way.
To determine things like "how many times has this file changed",
you need to use "svn log" to view the history of that file,
and count the changes yourself. Subversion doesn't give you
a "version number" for any file or directory, it just reports the
"revision number" for the repository.
When you change any file, it causes a new revision of all its parents
to be created. For example, if I change "/a/b/c.txt", a new
revision of c.txt is created, along with a new revision of /a/b,
a new revision of /a and a new revision of / (the latter three
being directories).
This has the effect of ensuring that every time a change is made,
a new version of the "/" directory is updated. This is kind of
what Toby and Sean meant by "versions entire trees".
Because branches and tags are merely simulated within the repository
using copies, they share all the semantics described above.
For example, lets take a copy of the directory "/trunk" and
put it in "/branches/release_1_prep" at repository revision 45.
Now, we continue working on "/trunk", making another 15 changes,
this puts the "repository version" at 60. Note that no changes
have been made to "/branches/release_1_prep" yet.
Now, if I do a:
svn co url://repos/branches/release_1_prep
Subversion will print out:
U release_1_prep/a.txt
....
At revision 60
So, even though no changes were made to /branches/release_1_prep,
the "repository version" has still changed.
If you compare /branches/release_1_prep at revision 45 to
/branches/release_1_prep at revision 60, there will be no differences.
All the changes between repository version 45 and 60 were made
to /trunk.
Does that help?
daniel
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Mar 30 22:32:53 2005