Marcin Kasperski wrote:
>>>No. Subversion way of creating tags via copying is very good
>>>for branches and very, very poor for tags. For me lack of
>>>tags or labels is also one of the main stoppers against
>>>serious subversion use.
>>>
>>>
>>Genuine question: Why does subversion's model of "a tag is a
>>copy" not work for you?
>>
>>
>
>Let's say there is module /libs/xyz in our repozitory
>
>a) Tell me what tags where placed on /libs/xyz. Efficiently,
>thats frequently used operation.
>
>
Find all instances of libs/xyz in the /tags directory.
Note that this is a frequently used operation in CVS /because/ it
doesn't have atomic commits and global revision numbers.
>b) Give me the log entries for the changes made between xyz_1-0-8
>and xyz_1-0-9. Efficiently.
>
>
svn log (repos-url)/tags
It'll give you more than you want, but you'll see all the changes you need.
Not to mention that in SVN, we use revision numbers.
>c) Give me diff between xyz_1-0-8 and xyz_1-0-9. Efficiently
>
>
svn diff (repos-url)/tags/xyz_1-0-8 (repos-url)/tags/xyz_1-0-8
And if you don't stop saying "efficiently" I'll ask you to create a tag
on a 10000-file CVS repository. Efficiently. :-)
>d) I need to place tag xyz_1-0-10 so it takes the
>current /libs/xyz version but without the change to the file
>aaa.cxx commited 3 revisions ago (but with change to the bbb.cxx
>commited later)
>
>
svn up libs/xyz
svn up -r(HEAD-3) libs/xyz/aaa.cxx
svn cp libs/xyz (repos-url)/tags/xyz_1-0-10/libs/xyz
>e) Reconsider the efficiency of the operations above considering
>my repository contains 347 separately tagged modules, a lot of
>which have large history of 100 and more tags
>
>
What's there to reconsider? At worst, it's at least as efficient as CVS
(or ClearCase).
>e) I don't know anyone to commit to the tag once the tag is
>placed. What could I do?
>The case illustration using CVS: trunk /libs/xyz is heavily
>reorganized, so I do
> cvs up -r stable_tag /libs/xyz
>as I use this library while working on something else
>(in subversion I would svn switch)
>Some days later I forgot about the tag checkout and do some
>modification to the files in my xyz working copy. Then I try to
>commit.
>
>
Use access control. Both Apache and svnserve let you set this up.
>CVS refuses to commit so I know that I either should branch or
>return to the trunk or resign.
>Subversion allows to commit.
>Build scripts checks out by the tag.
>My build is no longer reproducible.
>
>
>I could probably find more such scenarios...
>
>
Any of which you can either do with Subversion as it is, or change your
process slightly. Not a bad thing, I've seen lots of processes that are
tailored to CVS, but could be simplified immensely for Subversion. The
trouble is that people are usually so against changing the way they work
that is't often hard to convince them the new way is acthally easier.
--
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 Fri Apr 2 23:24:01 2004