You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Kuno Meyer <ku...@gmx.ch> on 2011/12/20 15:44:06 UTC

Create a new working copy by cloning a subtree of an existing working copy?

With SVN 1.7, is there a way to create a new working copy by cloning a subtree
of an existing working copy?

For example:
- Already checked out:
   wc1/
   wc1/.svn
   wc1/src
   wc1/data
   wc1/data/bin1

- Desired: a new working copy of just the "data/" subtree:
   wc2/
   wc2/.svn
   wc2/bin1

A reason of doing this could be to improve performance.

Thanks,
Kuno


Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Kuno Meyer <ku...@gmx.ch>.
Mark Phippard <markphip <at> gmail.com> writes:

> > With SVN 1.7, is there a way to create a new working copy by cloning a
> > subtree of an existing working copy?
> >
> 
> See:  http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/detach.py

Thanks. My tests show that the prominently placed comment "This script is
unfinished and not ready to be used on live data. Trust us." is indeed true.

My feedback:

1) There are Windows filesystem issues: os.path.* converts most paths to
backslashes, whereas wc.db expects forward slashes. In addition, things fail
badly (and much too late) if casing is incorrect.

2) The elimination of unneeded pristines didn't seem to work for me, I always
ended up with a full clone of the /.svn/pristine folder. However, it might be
that 'migrate_pristines()' is similarly prone to the Windows filesystem issues
(in path comparisions and string matching) like 'migrate_sqlite()', where I had
do some hackish changes.

As conclusion, I fear that 'detach.py' is not in a state ready for us to be used
in production environment, and that I have to fall back to some other caching
mechanism.

Regards,
Kuno


Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Mark Phippard <ma...@gmail.com>.
See:  http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/detach.py

On Tue, Dec 20, 2011 at 9:44 AM, Kuno Meyer <ku...@gmx.ch> wrote:
> With SVN 1.7, is there a way to create a new working copy by cloning a subtree
> of an existing working copy?
>
> For example:
> - Already checked out:
>   wc1/
>   wc1/.svn
>   wc1/src
>   wc1/data
>   wc1/data/bin1
>
> - Desired: a new working copy of just the "data/" subtree:
>   wc2/
>   wc2/.svn
>   wc2/bin1
>
> A reason of doing this could be to improve performance.
>
> Thanks,
> Kuno
>



-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Geoff Hoffman <gh...@cardinalpath.com>.
On Tue, Dec 20, 2011 at 9:01 AM, Cooke, Mark <ma...@siemens.com> wrote:

> > -----Original Message-----
> > From: Geoff Hoffman [mailto:ghoffman@cardinalpath.com]
> > Sent: 20 December 2011 15:59
> > To: Kuno Meyer
> > Cc: users@subversion.apache.org
> > Subject: Re: Create a new working copy by cloning a subtree
> > of an existing working copy?
> >
> > On Tue, Dec 20, 2011 at 7:44 AM, Kuno Meyer <ku...@gmx.ch> wrote:
> >
> >
> >       With SVN 1.7, is there a way to create a new working
> > copy by cloning a subtree
> >       of an existing working copy?
> >
> >       For example:
> >       - Already checked out:
> >         wc1/
> >         wc1/.svn
> >         wc1/src
> >         wc1/data
> >         wc1/data/bin1
> >
> >       - Desired: a new working copy of just the "data/" subtree:
> >         wc2/
> >         wc2/.svn
> >         wc2/bin1
> >
> >       A reason of doing this could be to improve performance.
> >
> >       Thanks,
> >       Kuno
> >
> > I believe if you simply copy the desired folder to a new
> > location on your hard drive (nothing to do with SVN) you'll
> > have what you want.
> >
> That used to work pre 1.7 (as an unintended side-effect of the older
> working copy structure) but the new working copy structure (that moves all
> .svn data into the root directory) stops that from working...  That's now
> like "export"ing the sub-folder.
>
> ~ mark c
>

Wow, good to know. Thanks Mark.

RE: Create a new working copy by cloning a subtree of an existing working copy?

Posted by "Cooke, Mark" <ma...@siemens.com>.
> -----Original Message-----
> From: Geoff Hoffman [mailto:ghoffman@cardinalpath.com] 
> Sent: 20 December 2011 15:59
> To: Kuno Meyer
> Cc: users@subversion.apache.org
> Subject: Re: Create a new working copy by cloning a subtree 
> of an existing working copy?
> 
> On Tue, Dec 20, 2011 at 7:44 AM, Kuno Meyer <ku...@gmx.ch> wrote:
> 
> 
> 	With SVN 1.7, is there a way to create a new working 
> copy by cloning a subtree
> 	of an existing working copy?
> 	
> 	For example:
> 	- Already checked out:
> 	  wc1/
> 	  wc1/.svn
> 	  wc1/src
> 	  wc1/data
> 	  wc1/data/bin1
> 	
> 	- Desired: a new working copy of just the "data/" subtree:
> 	  wc2/
> 	  wc2/.svn
> 	  wc2/bin1
> 	
> 	A reason of doing this could be to improve performance.
> 	
> 	Thanks,
> 	Kuno
> 	
> I believe if you simply copy the desired folder to a new 
> location on your hard drive (nothing to do with SVN) you'll 
> have what you want.
> 
That used to work pre 1.7 (as an unintended side-effect of the older working copy structure) but the new working copy structure (that moves all .svn data into the root directory) stops that from working...  That's now like "export"ing the sub-folder.

~ mark c

Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Geoff Hoffman <gh...@cardinalpath.com>.
On Tue, Dec 20, 2011 at 7:44 AM, Kuno Meyer <ku...@gmx.ch> wrote:

> With SVN 1.7, is there a way to create a new working copy by cloning a
> subtree
> of an existing working copy?
>
> For example:
> - Already checked out:
>   wc1/
>   wc1/.svn
>   wc1/src
>   wc1/data
>   wc1/data/bin1
>
> - Desired: a new working copy of just the "data/" subtree:
>   wc2/
>   wc2/.svn
>   wc2/bin1
>
> A reason of doing this could be to improve performance.
>
> Thanks,
> Kuno
>
>

I believe if you simply copy the desired folder to a new location on your
hard drive (nothing to do with SVN) you'll have what you want.

Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Kuno Meyer <ku...@gmx.ch>.
Stefan Podskubka <s.podskubka <at> hcs.at> writes:

> On 20.12.2011 15:44, Kuno Meyer wrote:
> > With SVN 1.7, is there a way to create a new working copy by cloning a
> > subtree of an existing working copy?
> >
> One thing that comes to mind is cloning the existing working copy and 
> then performing an svn switch to the subtree.
> 
> However, I don't know exactly how the switch is done and if it performs 
> better than a fresh checkout. I suppose it does, since all the files and 
> pristines are already in the existing checkout.

Thanks. Unfortunately, in my case, cloning the whole working copy (3.5 GB, 60k
files) before stripping it down is similarly expensive to re-checking out the
subdirectory (150 resp. 300 MB, 5 files each), despite of the somewhat limited
network bandwidth.





Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Stefan Podskubka <s....@hcs.at>.
On 24.12.2011 15:03, Nico Kadel-Garcia wrote:
> On Tue, Dec 20, 2011 at 10:15 AM, Stefan Podskubka<s....@hcs.at>  wrote:
>> On 20.12.2011 15:44, Kuno Meyer wrote:
>>> With SVN 1.7, is there a way to create a new working copy by cloning a
>>> subtree
>>> of an existing working copy?
>>>
>> One thing that comes to mind is cloning the existing working copy and then
>> performing an svn switch to the subtree.
>> However, I don't know exactly how the switch is done and if it performs
>> better than a fresh checkout. I suppose it does, since all the files and
>> pristines are already in the existing checkout.
> *Do not clone with svnadmin hotcopy* for this!!!! Make sure you have a
> different uuid, to avoid "split-brain" problems if the working copy is
> reset to the original copy by someone who thinks that can work.
>
> Or use hotcopy, but make absolutely sure to change the uuid on the new repo.
svnadmin hotcopy is used to clone a repository, not a working copy, 
which doesn't make much sense in regard to the original question.
But what you were pointing out is a valid concern if someone would want 
to clone a repository in contrast to cloning a working copy, which only 
results in a second working copy linked to the same repository.

Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Nico Kadel-Garcia <nk...@gmail.com>.
On Tue, Dec 20, 2011 at 10:15 AM, Stefan Podskubka <s....@hcs.at> wrote:
> On 20.12.2011 15:44, Kuno Meyer wrote:
>>
>> With SVN 1.7, is there a way to create a new working copy by cloning a
>> subtree
>> of an existing working copy?
>>
> One thing that comes to mind is cloning the existing working copy and then
> performing an svn switch to the subtree.
> However, I don't know exactly how the switch is done and if it performs
> better than a fresh checkout. I suppose it does, since all the files and
> pristines are already in the existing checkout.

*Do not clone with svnadmin hotcopy* for this!!!! Make sure you have a
different uuid, to avoid "split-brain" problems if the working copy is
reset to the original copy by someone who thinks that can work.

Or use hotcopy, but make absolutely sure to change the uuid on the new repo.

Re: Create a new working copy by cloning a subtree of an existing working copy?

Posted by Stefan Podskubka <s....@hcs.at>.
On 20.12.2011 15:44, Kuno Meyer wrote:
> With SVN 1.7, is there a way to create a new working copy by cloning a subtree
> of an existing working copy?
>
One thing that comes to mind is cloning the existing working copy and 
then performing an svn switch to the subtree.
However, I don't know exactly how the switch is done and if it performs 
better than a fresh checkout. I suppose it does, since all the files and 
pristines are already in the existing checkout.