Re: Choosing arbitrary locations for branches and tags
Jamma Tino Schwarze <[email protected]>
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Michael,
On Tue, Feb 16, 2010 at 05:38:27AM +0100, Michael Haggerty wrote:
> > I'm preparing a rather complex cvs2svn migration. We designed our SVN
> > repository layout to ease branching and merging - we want to have the
> > anchestry of branches visible. Therefore, our repository will look like
> > this (with c4u_tools being the actual project):
> > [...]
> >
> > Is there a way to move symbols to arbitrary locations within the SVN
> > tree? I looked into SymbolTransforms but the branches_path seems to
> > always be prepended to the symbol name... I'd like to avoid converting
> > first, then "svn move"ing around everything to keep my history nice and
> > avoid tree conflicts during merge.
>
> You can't do this with SymbolTransforms; you have to use StrategyRules
> (ultimately, by setting symbol.base_path). The easiest way is to use a
> --symbol-hints file, as described in the documentation [1], or
> equivalently a SymbolHintsFileRule if you are using the options-file
> method of configuring your conversion.
Thanks a lot, that was the pointer I needed.
I made myself a ManualRegexpSymbolRule which works roughly like a
ManualSymbolRule, but now I'm facing another problem: We have some parts
of our CVS wich fit the notion of a project but most parts do not -
there are modules of our own software with no further structure (just
held together by knowledge and branch tags).
So, for example, I want this:
CVS(branch) -> SVN path
c4u_tools(HEAD) -> /c4u/tools/MODULES/c4u_tools
c4u_tools(c4u_tools_1_0_branch) -> /c4u/tools/1.0/MODULES/c4u_tools
c4u_tools(open_eis_5_4_branch) -> /c4u/open-eis/5.4/MODULES/c4u_tools
open_eis_c4u_core(open_eis_5_4_branch) -> /c4u/open-eis/5.4/MODULES/open_eis_c4u_core
SymbolRules cannot depend on the CVS path, just on the project. But I
cannot create simple projects since c4u_tools and open_eis_c4u_* are on the
same level... so I made a loop which iterates over all modules and makes
a project from them:
run_options.add_project(
pathname,
trunk_path= m.expand ('/\1/\2/MODULES/'+module),
branches_path='/fromcvs/branches/',
tags_path='/fromcvs/tags',
...
)
Now
> You might also find it useful to have some of your directory framework
> be added to Subversion when a project is first initialized (rather than
> when the first branch in that part of the hierarchy is created). This
> can be done by using the initial_directories argument to
> run_options.add_project() (you must use the options file method to get
> this feature).
PS: I couldn't find a way to subscribe to this list on the tigris.org
page - how is it done?
--
"What we nourish flourishes." - "Was wir nähren erblüht."
www.lichtkreis-chemnitz.de
www.tisc.de
------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=2448085
To unsubscribe from this discussion, e-mail: [[email protected]].