You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Pavel Shevaev <pa...@gmail.com> on 2007/03/22 08:05:08 UTC

Cloning Subversion system information

Hi, folks!

Sorry, the subject sounds a bit weird but I simply couldn't find a
better one, let me explain.

Say I have some skeleton project in the remote repository called Foo.
Foo has some basic files/directories layout and all svn:externals and
svn:ignore properties nicely configured.

What I'd like to achieve is to allow other developers fill their
working copies attached to other repositories with this skeleton
project svn entries.

Something like this:

svn clone svn://repos/skel/Foo .
svn ci .

Or directly onto repository:

svn clone svn://repos/skel/Foo svn://myrepos/Bar

One might recommend simply physically copying Foo repository and
checking the copied repository out. However this is not always
possible, the remote repository can be simply unavailable physically,
or the Foo skeleton project can be a part of really huge repository
and copying it doesn't make sense(why really have 5k+ commit logs
history in a new clean repository?)

Probably this is already somehow possible and there are some best
practices or tools which allow to achieve this. Any tip in this
direction could be very helpful. Thanks in advance!

-- 
Best regards, Pavel

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

Re: Cloning Subversion system information

Posted by Pavel Shevaev <pa...@gmail.com>.
On 3/23/07, Matt Sickler <cr...@gmail.com> wrote:
> Generally its  svnadmin dump <skeleton repo> | svndumpfilter
> /path/to/what/you/want | svnadmin load <new repo>
> if you dont have access to the repo filesystem, you will need to use an
> automated script to checkout each revision and somehow copy that commit to a
> new repo (im pretty sure theres a script somewhere, and svk probably uses
> it)

Thanks folks, i'll have a closer look at all possible solutions. The
most interesting seems to be the one using svk, looks like less
hassle...

-- 
Best regards, Pavel

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

Re: Cloning Subversion system information

Posted by Matt Sickler <cr...@gmail.com>.
Generally its  svnadmin dump <skeleton repo> | svndumpfilter
/path/to/what/you/want | svnadmin load <new repo>
if you dont have access to the repo filesystem, you will need to use an
automated script to checkout each revision and somehow copy that commit to a
new repo (im pretty sure theres a script somewhere, and svk probably uses
it)

On 3/22/07, Pavel Shevaev <pa...@gmail.com> wrote:
>
> > :: Create a dumped version of the template
> > svnadmin dump templ > templ.dump
>
> The main problems with this approach as I mentioned in the very first mail
> are:
>
> a) I don't have physical access to the repository
> b) The skeleton project is not a whole repository, it's just a
> directory inside of the huge repository
>
> --
> Best regards, Pavel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
>

Re: Cloning Subversion system information

Posted by Vincent Lefevre <vi...@vinc17.org>.
On 2007-03-23 00:09:12 -0500, Ryan Schmidt wrote:
> On Mar 22, 2007, at 11:19, Pavel Shevaev wrote:
> 
> >>:: Create a dumped version of the template
> >>svnadmin dump templ > templ.dump
> >
> >The main problems with this approach as I mentioned in the very first mail 
> >are:
> >
> >a) I don't have physical access to the repository
> 
> Well, you will need to get it. There's no other way.

No other way? Do you mean that svk cannot really mirror a remote
Subversion repository?

-- 
Vincent Lefèvre <vi...@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

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

Re: Cloning Subversion system information

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Mar 22, 2007, at 11:19, Pavel Shevaev wrote:

>> :: Create a dumped version of the template
>> svnadmin dump templ > templ.dump
>
> The main problems with this approach as I mentioned in the very  
> first mail are:
>
> a) I don't have physical access to the repository

Well, you will need to get it. There's no other way.

> b) The skeleton project is not a whole repository, it's just a
> directory inside of the huge repository

You can use svndumpfilter to extract the relevant part from the dump  
file.


-- 

To reply to the mailing list, please use your mailer's Reply To All  
function


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

Re: Cloning Subversion system information

Posted by Pavel Shevaev <pa...@gmail.com>.
> :: Create a dumped version of the template
> svnadmin dump templ > templ.dump

The main problems with this approach as I mentioned in the very first mail are:

a) I don't have physical access to the repository
b) The skeleton project is not a whole repository, it's just a
directory inside of the huge repository

-- 
Best regards, Pavel

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

Re: Cloning Subversion system information

Posted by Anthony Lieuallen <ar...@gmail.com>.
On 3/22/2007 11:42 AM, Kevin Grover wrote:
>> Something like this:
>> svn clone svn://repos/skel/Foo .
>> svn ci .
>> Or directly onto repository:
>> svn clone svn://repos/skel/Foo svn://myrepos/Bar

svk mirror

http://svk.bestpractical.com/

Much like the first faq question here:

http://svk.bestpractical.com/view/SVKFAQ

Just without the third step.

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

Re: Cloning Subversion system information

Posted by Kevin Grover <ke...@kevingrover.net>.
On 3/22/07, Pavel Shevaev <pa...@gmail.com> wrote:
> Hi, folks!
>
> Sorry, the subject sounds a bit weird but I simply couldn't find a
> better one, let me explain.
>
> Say I have some skeleton project in the remote repository called Foo.
> Foo has some basic files/directories layout and all svn:externals and
> svn:ignore properties nicely configured.
>
> What I'd like to achieve is to allow other developers fill their
> working copies attached to other repositories with this skeleton
> project svn entries.
>
> Something like this:
>
> svn clone svn://repos/skel/Foo .
> svn ci .
>
> Or directly onto repository:
>
> svn clone svn://repos/skel/Foo svn://myrepos/Bar
>
> One might recommend simply physically copying Foo repository and
> checking the copied repository out. However this is not always
> possible, the remote repository can be simply unavailable physically,
> or the Foo skeleton project can be a part of really huge repository
> and copying it doesn't make sense(why really have 5k+ commit logs
> history in a new clean repository?)
>
> Probably this is already somehow possible and there are some best
> practices or tools which allow to achieve this. Any tip in this
> direction could be very helpful. Thanks in advance!
>

NOTE: The following uses Windows syntax for directories.  Converting
this sample to Unix should be a no-brainer to anyone who can spell
UNIX

:: Make an area for SVN Repositories (h:\repos\svn)
h:
cd \
mkdir repos\svn
cd repos\svn

:: Create a template repository (file:///h:/repos/svn/templ)
svnadmin create templ
set r=file:///h:/repos/svn/templ

:: Put something in the template
svn mkdir %r%/trunk %r%/tags %r%/branches -m "Initial Directory Structure"
:: set up any other defaults in templ that you require

:: Look at the template info (note the uuid)
H:\repos\svn>svn info file:///h:/repos/svn/templ
Path: templ
URL: file:///h:/repos/svn/templ
Repository Root: file:///h:/repos/svn/templ
Repository UUID: 550ab216-693f-b94a-ada8-387dd59328ac
Revision: 1
Node Kind: directory
Last Changed Author: kevin.grover
Last Changed Rev: 1
Last Changed Date: 2007-03-22 08:10:47 -0700 (Thu, 22 Mar 2007)

:: Create a dumped version of the template
svnadmin dump templ > templ.dump

:: Make a new copy (with a different UUID)
svnadmin mkdir newrepo
svnadmin load --ignore-uuid newrepo < templ.dump

:: NOTE The above DOES not preserve any hook scripts or config files
::          You could manually save them from the hooks/ and conf/
dirs, or just copy them after the load
::          Or, perhaps there is a way to use svnadmin hotcopy and then
::             restore it and force a new UUID, I'm not sure


H:\repos\svn>svn info file:///h:/repos/svn/newrepo
Path: newrepo
URL: file:///h:/repos/svn/newrepo
Repository Root: file:///h:/repos/svn/newrepo
Repository UUID: a5b1b1d5-b0b8-d24e-8e8c-571c84403d34
Revision: 1
Node Kind: directory
Last Changed Author: kevin.grover
Last Changed Rev: 1
Last Changed Date: 2007-03-22 08:10:47 -0700 (Thu, 22 Mar 2007)

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