[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: check out everything except, '<this>' subfolder should be shallower

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Thu, 24 Jan 2013 16:07:41 +0100

On Thu, Jan 24, 2013 at 3:50 PM, Lathan Bidwell <lathan_at_andrews.edu> wrote:
>
> On 01/24/2013 05:14 AM, Philip Martin wrote:
>>
>> Lathan Bidwell <lathan_at_andrews.edu> writes:
>>
>>> How can i checkout out this sample repository without downloading the
>>> /b/media/ and /d/media folders?
>>>
>>> The example i have (with checking it all out first is):
>>> svn checkout '<repository>' --depth immediates
>>> svn update --set-depth exclude /b/media
>>> svn update --set-depth exclude /d/media
>>> svn update --set-depth infinity *
>>
>> You can do an empty checkout, use update and switch to make the
>> directories into files, update the working copy to infinity, switch the
>> directories back to empty and then update to excluded:
>>
>> svn co URL --depth empty wc
>> svn up --depth empty wc/b
>> svn up --depth empty wc/d
>> svn sw ^/some/file --ignore-ancestry wc/b/media
>> svn sw ^/some/file --ignore-ancestry wc/d/media
>> svn up --set-depth infinity wc
>> svn sw ^/b/media --set-depth empty --ignore-ancestry wc/b/media
>> svn sw ^/d/media --set-depth empty --ignore-ancestry wc/d/media
>> svn up --set-depth exclude wc/b/media
>> svn up --set-depth exclude wc/d/media
>>
>
> So by using switch you make it look like a file so it won't try to update
> its contents, then you switch it back to a directory and exclude / depth
> empty it.
>
> Would that switch call need the --relocate flag?
>
> That solves half of the problem, I realize my example tree probably wasn't
> extensive enough. The /b/media and /d/media subfolders are like 3 and 4
> folders down in the tree, so its more like /b/1/2/3/media, .... It would be
> ideal to not have to check out --depth empty all the parents directories.

As of 1.7, 'svn update' has a '--parents' option that helps with that
(see [1]). It creates any parent directory necessary, so you can do
this:

svn co URL --depth empty wc
svn up --parents --depth empty wc/1/2/3
...

> I
> suppose I should just checkout out those exact directories in tmp and then
> move them into the appropriate location?

That won't work. Your checked out subdir will be a separate working
copy, which you then embed in your larger working copy. Those will be
embedded working copies, i.e. not the same as when the subdir is just
another part of a (sparse) working copy. With embedded working copies,
an 'svn up' of the parent working copy will not update the child
working copy (it will regard is as an unversioned part).

[1] http://subversion.tigris.org/issues/show_bug.cgi?id=3748
(Implement --parents option for svn update)

-- 
Johan
Received on 2013-01-24 16:08:33 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.