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

Re: WC / Repo Browser + Sparse Directories

From: Adam Sutton <dev_at_adamsutton.co.uk>
Date: 2007-07-09 09:10:32 CEST

I didn't think the sparse directories feature would make single file
checkouts possible, and its not really that which worries me. To be
honest, I think the sparse checkout setup (I have taken a look at the
nightly builds of SVN and TSVN now) is more than sufficient for myself.

I'm just thinking of possible issues that might confront me in migrating
my company from VSS to SVN. I'm speculating somewhat as I have only
briefly discussed this with the guy in charge of our VSS installation so
I don't have a full handle on what the use cases might be. However I am
sure that one thing they will point out is the inability to easily
cherry pick from the repository structure.

Because the VSS browser is tied (and I hate that it is in general) to a
particular directory, its easy to cherry pick directories you want and
it will build the required directory structure for you (if it doesn't
already exist). This can be important for large projects will that have
deepish trees and rely on the structure as part of the build system.

I just thought it would be a nice feature if you could have a browser
which showed you the full repository view that a working copy was
connected to and allowed you to pick which bits you want (even if its
only to the directory level) and it would build any parent directories
required. So far I don't see that this is possible, you have to manually
drill down the directory structure, updating till you get to the point
you want. Or am I mising something?

If this is simply something thatis deemed unecessary for most people
then I can understand that, maybe if I get time I will see if I can
implement it myself.

For now I will just keep playing and see if I have missed something.

Adam

P.S.

Here is a simple example of what I am thinking "might" be wanted. I'm
not even suggesting this is a "good" structure for a project, or that
its one we use, its just trying to show my thinking.

Repo:
trunk/
        docs/
        src/
                lib/
                        math/
                        rand/
                apps/
                        alarm1/
                        alarm2/
        platform/
                arm7/
                arm9/
        scripts/
                build/
                loganalyse/

User A wants to have the following structure

trunk/
        src/
                lib/
                        math/
                apps/
                        alarm1/
        platform/
                arm7/
        scripts/
                build/
                        alarm1/

So far, teh way I see it the user must do the following:

1. checkout trunk/ to create wc (immediate children)
2. update src
3. update lib
4. update math
5. update apps
6. update alarm1
7. update platform
8. update arm7
9. update scripts
10. update build
11. update alarm1

Personally I think it would be easier if they could do the following:

1. checkout trunk/ to create wc (only this item)
2. Use WC browser and "update / checkout the following items"
   a) src/lib/math
   b) src/apps/alarm1
   c) platform/arm7
   d) scripts/build/alarm1

By my reckoning thats 6 less operations, and is a lot easier for some
people to understand than having to update various directories till they
have what they want. I would see this as wrapping the sparse checkout
interface. So for example I would expect the operation of doing 2a)
would probably end up with top level being updating with immediates, and
same for src and lib.

Simon Large wrote:
> On 08/07/07, Adam Sutton <dev@adamsutton.co.uk> wrote:
>> Hi,
>>
>> I'm interested in how TortoiseSVN is going to interact with the new
>> sparse directories feature in 1.5?
>>
>> I have seen a couple of posts on the topic, but nothing definitive.
>>
>> What I am really after is something akin to the way VSS handle the
>> problem. Before you go on I am no VSS supporter, its just that I have
>> recently managed to convert the project I am working on from using VSS
>> to subversion. There is some interest from within the company as a whole
>> to switch to subversion if our little "expirement" goes well. However
>> there have been a few concerns expressed over some of the features
>> people regularly use in VSS that aren't currently available in SVN.
>>
>> The main one I am coming up against at the moment is the way VSS allows
>> you to "checkout" a file and it will build the required directory
>> structure to that file as the client requires a Working Directory is
>> specified.
>>
>> This currently isn't possible in SVN, however the sparse directory
>> support appears to go someway to resolving this. Unfortunately its a bit
>> too involved for some of our users, most of whom are not software devs
>> (and even some that are may struggle).
>>
>> What I think would be really nice would be if TortoiseSVN implemented a
>> Working Copy Browser (I think this,
>> http://thread.gmane.org/gmane.comp.version-control.subversion.tortoisesvn.devel/28575,
>>
>> article is talking about something similar).
>>
>> I think it would be nice if you could select "WC Browser" from within a
>> working copy and what you were presented with was a feature very similar
>> to Repo Browser, except the entry in the top selection bar would be a
>> local (working copy) folder. And the browser would display this folder
>> in the browser and everything below it. Users could then navigate
>> through the structure and select the directory / file they wish to
>> retrieve. TortoiseSVN would then make use of the sparse directory
>> support to get out all the required subdirectories.
>>
>> I've not played with the sparse directories stuff yet, was my task for
>> later today, so not sure if this would mean that if a users select a
>> file they want they have to get ALL files in the directory?
>>
>> Any ideas would be welcome,
>
> Subversion cannot check out at file level, sparse directories or no.
> The sparse directory feature gives you 4 options when you checkout or
> update a folder. Read about it in the manual after you download a
> nightly build, or (slightly outdated, and wrong screenshot) at
> http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-checkout.html
>
> There is no need for a WC browser. The repo browser shows you the
> structure, and you can use different checkout levels to get just the
> directories you want.
>
> Of course, if you want just one subtree, you can checkout that subtree
> alone. That has always been a feature.
>
> Simon

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Mon Jul 9 09:16:26 2007

This is an archived mail posted to the TortoiseSVN Dev mailing list.

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