I am exploring moving our CVS repositories to Subversion. In doing this
I have come across something that we do all the time in CVS that I
cannot figure out how to do with Subversion.
We use CVS modules to share code between multiple projects. When we tag
a project that has the shared code, the shared code also gets the same
tag. This tag is applied to the working copy using the single CVS
command of "cvs tag". When we check out a tagged version of the
project, we also get the tagged version of the shared code. In
Subversion I have not found a way to easily and reliably tag and
retrieve the shared code.
Here is what I have tried in Subversion. I first add an svn:externals
property to the project that is a URL to the head of the shared code.
Now I create a tag using "svn copy". This "tags" the project, but the
URLs in the svn:externals still point to the head of the shared code.
This means that when I check out a tagged copy of the project I cannot
be assured that I will get everything back in exactly the tagged state
because someone may have changed the head of the shared code. I thought
about manually creating a tag for each URL in the svn:externals property
and the changing the svn:externals property, but I view this is as not
an acceptable use model when CVS did this type of tagging cleanly.
I also tried to add the shared code to my project by first checking out
the project and then checking out the shared code into the same location
as the project. So far so good. Now I try to create a copy/tag of this
working copy (that contains a mixture of URLs) using the command "svn
copy . URL" and I get the following error message
svn: Trying to use an unsupported feature
svn: cannot copy path '' into its own child
How do I share code between projects is such a way that tagging works?
Keith Richling | Agilent Technologies
Email: firstname.lastname@example.org | MS/72
Voice: (970) 288-7903 | 4380 Ziegler Road
Fax: (970) 288-6580 | Fort Collins, CO 80525-9790
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Mon Jun 9 16:41:30 2003