On 3/22/07, Pavel Shevaev <pacha.shevaev@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
Received on Thu Mar 22 16:43:28 2007