Hello,

I am trying to figure out a generic step-by-step procedure for efficient 
spare checkouts. There are two approaches to sparse checkouts: blacklist 
and whitelist.

To explain the difference, assume the following repository structure:

/trunk
/trunk/A
/trunk/B
/trunk/C

where I am not interested in checking out the folder "A".

Whitelist means "Only checkout B and C". Blacklist means "Do not checkout 
A". Initially, both looks the same. But when a new folder /trunk/D is 
added, and you updated your working copy afterwards, it shouldn't appear 
for whitelist, since D was not part of the whitelist, but it should appear 
for blacklist, since D is not part of the blacklist.

Whitelist was quite trivial to get to work:
Checkout /trunk with depth = empty
Update /trunk/B with sticky depth = infinity
Update /trunk/C with sticky depth = infinity

I can also get blacklist to work like this:
Checkout /trunk with depth = infinity
Update /trunk/A with sticky depth = exclude

But here's the problem: I wanted to exclude /trunk/A *precisely* because it 
is huge in size; I don't want to wait for it on checkout. But the above 
approach creates a full checkout at first, only to throw away A afterwards. 
Not very efficient.

Alas so far I have failed to find a different routine that avoids having to 
download A in its entirety. Here's what I tried:

*Attempt 1:*
Checkout /trunk with depth = empty
Update /trunk/A with depth = empty
Update /trunk/A with sticky depth = exclude
Update /trunk with depth = infinity
Result: trunk remains empty.

*Attempt 2:*
Checkout /trunk with depth = empty
Update /trunk/A with depth = empty
Update /trunk/A with sticky depth = exclude
Update /trunk with sticky depth = infinity
Result: this overrides "exclude" for A, restores it and downloads its 
content

*Attempt 3:*
Checkout /trunk with depth = children
Update /trunk/A with sticky depth = exclude
Update /trunk with depth = unknown
Result: trunk is populated, but B and C remain empty since they were 
checked out with  depth = empty

Is there any way I can change trunk's depth to "sticky infinity" but at the 
same time retain A's depth  = exclude?

Thank you
Chris

-- 
You received this message because you are subscribed to the Google Groups 
"TortoiseSVN" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tortoisesvn+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/tortoisesvn/c553681f-81d4-48f1-b586-6e54fd2a71abn%40googlegroups.com.

Reply via email to