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

Re: Unclear: CVS and Subversion repository difference.

From: Matthew S. Moore <mmoore_at_asf.alaska.edu>
Date: 2005-06-17 04:24:04 CEST

Servico Tpd Rodrigo Alfonso Menezes Madera wrote:

> So, what every text that I´ve interpreted says (but makes no sense to me)
> is that whenever
> I make changes to ChessGame, the release is incremented for both projects
> because the
> release number is only altered on the repository. Thus if I add a file
> called "HowToPlay" to
> the ChessGame project, the Spreadheet aplication has it´s release
> incremented. Is this
> what actually happens??

In a sense, yes, but only because the revision level of the whole repository is
incremented.

> even though
> my ChessGame directory had release 5, the file DrawChessBoard.c++ had a
> release of 1, the
> "src" directory had a release 3, and you can imagine all this confusion
> that a good´ol CVS
> user has to understand.

The reason you are seeing mixed revisions is because the svn is reporting the
last revision that was changed.

To better explain this:

$ svnadmin create /svn/repos
$ svn checkout file:///svn/repos ~/wc
Checked out revision 0.

-- make a default directory tree for two projects and commit:

$ svn commit -m "default tree"
Adding proj1
Adding proj1/branches
Adding proj1/tags
Adding proj1/trunk
Adding proj1/trunk/bin
Adding proj1/trunk/doc
Adding proj1/trunk/src
Adding proj2
Adding proj2/branches
Adding proj2/tags
Adding proj2/trunk
Adding proj2/trunk/bin
Adding proj2/trunk/doc
Adding proj2/trunk/src

Committed revision 1.

$ cd proj1/trunk/src
$ echo line1 > file1.c
$ svn add file1.c
A file1.c

$ svn commit -m "adding first file for proj1"
Adding src/file1.c
Transmitting file data .
Committed revision 2.

$ cd ../doc
$ echo line1 > file1.txt
$ svn add file1.txt
A file1.txt

$ svn commit -m "adding second file for proj1"
Adding doc/file1.txt
Transmitting file data .
Committed revision 3.

$ cd ~/wc/proj2/trunk/src
$ echo line1 > file1.pl
$ svn add file1.pl
A file1.pl

$ svn commit -m "adding first file for proj2"
Adding src/file1.pl
Transmitting file data .
Committed revision 4.

-- Now we can see how the revisions actually look:

$ svn info ~/wc/proj1/trunk/src/file1.c | grep Rev
Revision: 2
Last Changed Rev: 2

$ svn info ~/wc/proj1/trunk/doc/file1.txt | grep Rev
Revision: 3
Last Changed Rev: 3

$ svn info ~/wc/proj2/trunk/src/file1.pl | grep Rev
Revision: 4
Last Changed Rev: 4

-- The reason the revisions are all different is because we made all of our
commits to a single file and did not update the whole working copy:

$ cd ~/wc
$ svn update
At revision 4.

$ svn info ~/wc/proj1/trunk/src/file1.c | grep Rev
Revision: 4
Last Changed Rev: 2

$ svn info ~/wc/proj1/trunk/doc/file1.txt | grep Rev
Revision: 4
Last Changed Rev: 3

$ svn info ~/wc/proj2/trunk/src/file1.pl | grep Rev
Revision: 4
Last Changed Rev: 4

-- Furthermore, let's baseline proj1 and call it Release 1:

$ svn copy -m "Release 1" file:///svn/repos/proj1/trunk \
file:///svn/repos/proj1/tags/proj1_Release_1

Committed revision 5.

$ svn update
A proj1/tags/proj1_Release_1
A proj1/tags/proj1_Release_1/doc
A proj1/tags/proj1_Release_1/doc/file1.txt
A proj1/tags/proj1_Release_1/src
A proj1/tags/proj1_Release_1/src/file1.c
A proj1/tags/proj1_Release_1/bin
Updated to revision 5.

$ tree proj1
proj1
|-- branches
|-- tags
| `-- proj1_Release_1
| |-- bin
| |-- doc
| | `-- file1.txt
| `-- src
| `-- file1.c
`-- trunk
     |-- bin
     |-- doc
     | `-- file1.txt
     `-- src
         `-- file1.c

10 directories, 4 files

$ svn log -v -r 5
------------------------------------------------------------------------
r5 | mmoore | 2005-06-16 18:17:58 -0800 (Thu, 16 Jun 2005) | 1 line
Changed paths:
    A /proj1/tags/proj1_Release_1 (from /proj1/trunk:4)

Release 1
------------------------------------------------------------------------

   So, proj1_Release_1 revision 5 is just a copy of proj1/trunk at revision 4.
In other words you define the releases however you want, but the revisions keep
incrementing for the whole repository with every commit. I hope this helps!

Matthew

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Jun 17 04:26:00 2005

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