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

Re: Partial checkout

From: Ryan Schmidt <subversion-2007b_at_ryandesign.com>
Date: Tue, 29 Jan 2008 06:44:52 -0600

On Jan 29, 2008, at 05:57, Matteo Tontini wrote:

> Ryan Schmidt ha scritto:
>
>> On Jan 28, 2008, at 10:14, Matteo Tontini wrote:
>>
>> > I'm writing to ask suggestions about how to manage our particular
>> > project structure.
>> > We're developing with C# and Visual Studio 2005 professional.
>> > We have a big solution made up of several groups of projects.
>> > Different developers work on different sets of projects, organized
>> > in solutions that realize partitions
>> > of the global solution.
>> > In practice we're using the 'Partitioned single solution' model as
>> > illustrated in the following article:
>> >
>> > http://msdn2.microsoft.com/en-us/library/ms998208.aspx
>> >
>> > The problem is that our versioning system is Subversion.
>> > With Subversion we've not been able to checkout partially the
>> > content of the root folder of the
>> > repository.
>> > If I want to work with a partial solution and I want to checkout
>> > only the solution file I need, and the related projects' dirs I'm
>> > forced to checkout each separate project directory by itself.
>> > Let's see an example:
>> >
>> > reposName/trunk
>> > project1Dir/
>> > project2Dir/
>> > project3Dir/
>> > globalSolution.sln
>> > partitionedSolution1.sln
>> > partitionedSolution2.sln
>> >
>> > If I want to work with partitionedSolution1.sln, that is made up of
>> > project1 and project2 I have two kind of problems:
>> >
>> > - I have to checkout separately project1Dir and project2Dir in 2
>> > subdirectories of my working copy.
>> > But in this way I cannot commit or update globally the content of
>> > my working copy, I'm supposed to commit and
>> > update all the projects separately, instead.
>>
>>
>> This should work:
>>
>> svn checkout -N url://to/reposName/trunk
>>
>> (This will checkout all the files but none of the directories.)
>>
>> cd trunk
>> svn up project1Dir project2Dir
>>
>> (This will bring in just those directories that you specify.)
>>
>> (It's a single working copy and you can do commits across all of it
>> all at once, just like you want.)
>>
>>
>> In Subversion 1.5, I believe there will be a different way to handle
>> this (sparse directories feature).
>
> Thank you very much Ryan,
>
> I tried in that way but I still got problems due to Issue 695 (non-
> recursive checkout bug).
> In fact if another developer modifies 'project3Dir' (the directory
> that i didn't checked out) and commits
> changes, the next time I update the root of my working copy I will
> get the following error:
>
> Error: Directory 'C:\develop\trunk\project3Dir' is missing
> Error: Please execute the "Cleanup" command.
>
> After executing cleanup if I try to update the whole repository
> (under trunk) will be checked out
> in my working copy.
>
> Did I miss anything?

You probably didn't miss anything. It's long been said that the non-
recursive checkout feature is a bit broken, and you seem to be
running into one consequence of that. I guess you'll have to wait for
the sparse directory feature of 1.5 after all, for more reliable
operation.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-01-29 13:45:23 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.