2

I have some SVN projects with this folder structure

project/trunk/
project/branches/1.x
project/branches/2.x
project/branches/3.x
  • First checkout, I have the RW rights on all branches, and checkout everything
  • Then supopose that I change the rights on the server, and have only RW on branch 1.x, nothing on the others

-> If I delete on my working copy the branch 2 and 3, they appears as missing and every update recreate them (even if I don't have read rights on server, I suppose its some kind of local tortoisesvn cache)

-> If I make a clean checkout everything is ok, but it's obviously not what I want to do every time rights changes.

-> I could put all theses branches in ignored, but if rights change on server and I'm not aware of it, I won't have access to them unless I un-ignore them.

PS: clean up does not resolve anything in this case

Is there a way to force tortoise to synchronize my working copy, and avoid the "missing file" problem caused by the windows manual delete ?

typedef
  • 1,159
  • 1
  • 6
  • 11
  • The fundamental flaw here is that you have the entire repository checked out when it is expected you would have each branch checked out separately - which more than likely would only result in having maybe a couple of the checked out - like trunk, the feature branch youre working on, and a bigfix branch or something. – prodigitalson Feb 27 '12 at 13:13
  • I see your point, but in our approach we have many different projects (many ~= 200) that are each a different shared library project (with trunk and branches). They are all in the same SVN Repository and share a common revision number, but this approach is a lot less complicated when we checkout. – typedef Feb 27 '12 at 13:30
  • Hmmm... i would probably go with `svn:externals` in that case :-) – prodigitalson Feb 27 '12 at 13:57
  • 1
    very interesting, I did not know about svn:externals. I think I'm going to read more about this :) – typedef Feb 27 '12 at 14:24

1 Answers1

2

Starting with version 1.5, Subversion supports sparse checkouts. Instead of doing a full checkout of a repository, you can define the checkout depth per directory. It is also possible to change the depth settings at any point in time using svn update.

In your case, after you have lost the rights for project/branches/1.x you could remove it from your working copy using:

svn update --set-depth exclude project/branches/1.x

Also, see this question.

Community
  • 1
  • 1
Michael
  • 8,920
  • 3
  • 38
  • 56
  • Thank you, it did resolve my problem, but I wish there was a tortoiseSVN graphic menu to avoid the command line in windows. – typedef Feb 27 '12 at 13:45