You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Patrick Nelson <pn...@neatech.com> on 2004/10/03 22:39:23 UTC

Best Practice for CVS user who is converting to SVN

FC2 with SVN 1.0.8 (stock rpm)

In cvs your could submodule your repository like:

Root repo is /var/cvs/dev

tcl/tapp1
tcl/tapp2
tcl/tapp3
tcl/tappn
pl/papp1
pl/papp2
pl/papp3
pl/pappn

and then user the module files to call things out like:

cvs co tapp1

and get just the tapp1 directory.

Looking at what cvs2svn did when it converted it looks like it put 
everything in one repository root of /var/svn/dev and not in sub 
projects.  So it seems like I need to break all of my apps repos and 
cvs2svn them separately... 

Is this correct or am I missing something?

TIA



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Best Practice for CVS user who is converting to SVN

Posted by Patrick Nelson <pn...@neatech.com>.
Ulrich Eckhardt wrote:

>If I understand correctly, all the modules file does is to create an 
>alias/shortcut, right? If so, there is no direct way in SVN to do that. What 
>you can do however is to read up on 'svn:externals' and install such a link 
>in the root of your repository. However, since there is no implicit 
>repository (as $CVSROOT for CVS), users are always required to specify the 
>complete path for the initial checkout and this does not gain that much.
>
>  
>
>I don't think it does so unconditionally. Maybe you should have given it a 
>different target-path for the SVN pepository?
>  
>
>Not clear what you mean with that. Maybe you could give us an example of where 
>things ended up and where you wanted them to be.
>  
>

Your right about the modules file.  I was using it to explain the way we 
have used cvs.  If there is a way to continue the grouping then we would 
if not we would investigate more.  One way we thought about was naming 
the module like:

tcl-app1
tcl-app2
tcl-app3
tcl-appn
pl-app1
pl-app2
pl-app3
pl-appn

----

The way I called cvs2svn was:

 cvs2svn -s /var/svn/dev /var/cvs/dev

This created 1 repository with all the apps in it, which was not 
necessarily the way we wanted it.   So and to answer your second 
question we did called cvs2svn like:

LangList="tcl pl"
tclList="app1 app2 app3 appn"
plList="app1 app2 app3 appn"
for Lang in LangList; do
 for Mod in ${Lang}List; do
  cvs2svn -s /var/svn/dev/$Mod /var/cvs/dev/$Lang/$Mod
 done
done

This gave us separate repositories for each of our apps which will work 
and keeps them separate from each other.  Is this the best way to do it?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Best Practice for CVS user who is converting to SVN - Ideas

Posted by Patrick Nelson <pn...@neatech.com>.
Patrick Nelson wrote:

> ----snip----
> So I tried 3 ways to convert cvs repo to a svn repo, this is what I 
> found:
> ---snip----

Sorry mis-typed it.  Only 2 methods were tried!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Best Practice for CVS user who is converting to SVN - Ideas

Posted by ar...@betasystems.com.



>
> One thing that I noticed is size of the root repository when I was done
> with each (oh I did the 2 methods on separate systems).  Here is what I
> found:
>
> initial cvs repo       - 20 MB
> method 1 svn repo - 25 MB
> method 2 svn repo - 176 MB

is that realy true?
does anyother best practices exist over there?

-Arash

Patrick Nelson <pn...@neatech.com> wrote on 09.10.2004 23:45:12:

> FC2 with svn 1.0.8
>
> So I tried 3 ways to convert cvs repo to a svn repo, this is what I
found:
>
> The facts
> cvs repo - /var/repo/cvs/dev
> svn repo - /var/repo/svn/dev
>
> The methods
> 1.  Treat cvs as a single repository and convert it to a single svn
> repository with:
>
>   cvs2svn -s <svn repo> <cvs repo>
>
> 2. Break up the cvs repositories and convert them into app repositories
> in svn with:
>
>   Modules="<list of modules>"
>   for Module in $Modules; do
>     cvs2svn -s <svn repo>/$Module <cvs repo>/$Module
>   done
>
> The second method was much more complicated than that but I wanted to
> get just the understanding of it down not the specifics.  Both methods
> work just fine, but the second seems to keep my apps separated better so
> that I can admin them in different ways.  Cool.   My scripts to do
> method 2 were complicated but it did produce the end result that I think
> I wanted.  However....
>
> One thing that I noticed is size of the root repository when I was done
> with each (oh I did the 2 methods on separate systems).  Here is what I
> found:
>
> initial cvs repo       - 20 MB
> method 1 svn repo - 25 MB
> method 2 svn repo - 176 MB
>
> This surprised me because I thought it would be close to the same.  Not
> close to 9 times greater than the size of the cvs repo.  Did I do
> something wrong or is this just the overhead that separate svn repos
have?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Best Practice for CVS user who is converting to SVN - Ideas

Posted by Patrick Nelson <pn...@neatech.com>.
FC2 with svn 1.0.8

So I tried 3 ways to convert cvs repo to a svn repo, this is what I found:

The facts
cvs repo - /var/repo/cvs/dev
svn repo - /var/repo/svn/dev

The methods
1.  Treat cvs as a single repository and convert it to a single svn 
repository with:

  cvs2svn -s <svn repo> <cvs repo>

2. Break up the cvs repositories and convert them into app repositories 
in svn with:

  Modules="<list of modules>"
  for Module in $Modules; do
    cvs2svn -s <svn repo>/$Module <cvs repo>/$Module
  done

The second method was much more complicated than that but I wanted to 
get just the understanding of it down not the specifics.  Both methods 
work just fine, but the second seems to keep my apps separated better so 
that I can admin them in different ways.  Cool.   My scripts to do 
method 2 were complicated but it did produce the end result that I think 
I wanted.  However....

One thing that I noticed is size of the root repository when I was done 
with each (oh I did the 2 methods on separate systems).  Here is what I 
found:

initial cvs repo       - 20 MB
method 1 svn repo - 25 MB
method 2 svn repo - 176 MB

This surprised me because I thought it would be close to the same.  Not 
close to 9 times greater than the size of the cvs repo.  Did I do 
something wrong or is this just the overhead that separate svn repos have?


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Best Practice for CVS user who is converting to SVN

Posted by Ulrich Eckhardt <ec...@satorlaser.com>.
Patrick Nelson wrote:
> In cvs your could submodule your repository like:
>
> Root repo is /var/cvs/dev
>
> tcl/tapp1
> tcl/tapp2
> tcl/tapp3
> tcl/tappn
> pl/papp1
> pl/papp2
> pl/papp3
> pl/pappn
>
> and then user the module files to call things out like:
>
> cvs co tapp1
>
> and get just the tapp1 directory.

If I understand correctly, all the modules file does is to create an 
alias/shortcut, right? If so, there is no direct way in SVN to do that. What 
you can do however is to read up on 'svn:externals' and install such a link 
in the root of your repository. However, since there is no implicit 
repository (as $CVSROOT for CVS), users are always required to specify the 
complete path for the initial checkout and this does not gain that much.

> Looking at what cvs2svn did when it converted it looks like it put
> everything in one repository root of /var/svn/dev and not in sub
> projects.  

I don't think it does so unconditionally. Maybe you should have given it a 
different target-path for the SVN pepository?

> So it seems like I need to break all of my apps repos and 
> cvs2svn them separately...

Not clear what you mean with that. Maybe you could give us an example of where 
things ended up and where you wanted them to be.


Uli

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org