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

Sparse Working Copy Checkout Personal Evaluation, kudo and complaint

From: Mark Swann <mswann_at_echo-inc.com>
Date: 2007-12-12 20:52:51 CET

Stefan,
 
Thank you for your informed response.
 
Below is a detailed list of the steps to reproduce
 
 
Goal: Do a sparse checkout of only the following svn path.
 
    svn://pesdev1/MerchantSetup/branches/tt3465/AMB
 
(1) Using Windows Explorer, right-click in E:\svn and select SVN Checkout. Select URL = svn://pesdev1/MerchantSetup, Checkout directory = E:\SVN\MerchantSetupTest (does not exist yet), Checkout Depth = "Only this item". Click OK and answer Yes to create the new folder.
 
(2) Navigate to E:\SVN\MerchantSetupTest, right-click and select SVN Repo-browser.
 
(3) In Repo-browser, navigate to svn://pesdev1/MerchantSetup/branches, right-click on "branches" and select "Update item to revision". Select "Only this item" and click OK.
 
(4) In Repo-browser, navigate to svn://pesdev1/MerchantSetup/branches/tt3465, right-click on "tt3465" and select "Update item to revision". Select "Only this item" and click OK.
 
(5) In Repo-browser, navigate to svn://pesdev1/MerchantSetup/branches/tt3465/amb, right-click on "amb" and select "Update item to revision". Select "Full recursive" and click OK.
 
(6) Using Windows Explorer, right-click in E:\SVN\MerchantSetupTest3 and select SVN Update, and watch all the missing files get loaded that I didn't want, i.e. no longer sparse.
 
Keep in mind , as I stated previously, I am doing this against a version 1.4.x Subversion server.
 
Mark
 
 
From: Stefan Küng <tortoisesvn_at_... <http://gmane.org/get-address.php?address=tortoisesvn%2dRe5JQEeQqe8AvxtiuMwx3w%40public.gmane.org> >
Subject: Re: Sparse Working Copy Checkout Personal Evaluation, kudo and complaint <http://news.gmane.org/find-root.php?message_id=%3c475FCE33.5010604%40gmail.com%3e>
Newsgroups: gmane.comp.version-control.subversion.tortoisesvn.user <http://news.gmane.org/gmane.comp.version-control.subversion.tortoisesvn.user>
Date: 2007-12-12 12:04:03 GMT (5 hours and 41 minutes ago)

Simon Large wrote:
> On 11/12/2007, Mark Swann <mswann_at_... <http://gmane.org/get-address.php?address=mswann%2deA%2bdMcfxtM9Wk0Htik3J%2fw%40public.gmane.org> > wrote:
>> I installed the file
>> "TortoiseSVN-1.4.99.11575-dev-win32-svn-1.5.0dev.msi" to
>> evaluate and preview the SVN 1.5 updates. Mind you, I tested the 1.5 client
>> against a 1.4.x SVN server, so the "issue" I found may be related to that.
>>
>> BTW, I love the new Repo Browser, so a very big "Thank You".
>>
>> I was particularly interested in how TortoiseSVN facilitates the new Sparse
>> Working Copy Checkout, so I performed a few experiments and came to the
>> following conclusions:
>>
>> (1) The process is way too tedious, especially if the directory you are
>> checking out is nested multiple directories deep. You have to check out each
>> ancestor directory one at a tedious time until you finally reach the
>> directory you really want. The Repo Browser Context Menu needs to allow the
>> "Update item to revision" option on any directory that has a near or distant
>> ancestor that is already checked out, and Tortoise should checkout out all
>> intermediate ancestors automatically.

We could do that, yes.

> This doesn't make much sense. How would repo browser know what you
> have checked out? And I don't think there is an update to revision
> context menu in repo browser - that's a working copy function.

Since we needed a way to do an
svn up noyetlocallyexistingdir
from TSVN, I used the repository browser for that feature (you can't
right-click on something that doesn't exist in the explorer):

If you start the repository browser from a working copy, it remembers
that path and it's associated url. If the user then right-clicks on a
folder in the repobrowser, it knows/calculates the local path from the
url. If the local path doesn't exist yet, the context menu shows an
entry to update that non-existing path.

>> (2) The normal procedure for checking in your changes should be to first
>> perform an Update, then a Commit. OOPS! Not with a sparse working copy, you
>> don't! If you make the mistake of doing what is intuitive (an Update), you
>> will suddenly find your working copy is no longer so sparse. This feature is

With an 1.5 client, an update remembers how 'sparse' it is. Only if you
use an older client which doesn't know about sparse checkouts, the
update will fetch everything again. But with 1.5 clients, an update will
only update what's already there.
If however you use the "update to revision" command and change the depth
combobox in the update dialog, *then* that update will do more.

If you did an update with the TSVN nightly build and still got updated
everything, including what you didn't wanted, please provide an exact
step-by-step recipe so I can try and reproduce this.

If it would work as you said, then the whole point for the sparse
checkout would be moot - you can do the very same even with an < 1.0 client.

>> way bad. I don't know if this reflects SVN's intentions but you should never
>> add a feature that makes it easier for the user to make a mistake. I don't
>> care if you have provided an alternative proper way to do the update, which
>> is also very tedious, you should make the sparseness of the working copy
>> transparent to normal daily use, i.e. you must allow the normal
>> Update/Commit procedure without retrieving all the un-checked-out files in
>> the tree.
>>
>> Please respond to this enquiry, and thanks for making such a great tool.
>
> Please report bugs with a simple reproduction recipe, not a lecture. I

Amen.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net <http://tortoisesvn.net/> 
Received on Wed Dec 12 20:54:20 2007

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

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