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]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.