| ||
|
This community works best when people use their real names. Please
register for a free account.
Other Groups: Joel on Software Business of Software Design of Software (CLOSED) .NET Questions (CLOSED) TechInterview.org CityDesk FogBugz Fog Creek Copilot The Old Forum Your hosts: Albert D. Kallal Li-Fan Chen Stephen Jones |
Hi All, We are working to standardize our source control trees. Currently we store everything in CVS, but there is no standardization to the source trees. We are about to switch to Subversion, and are wondering how others have set up their source control trees to play nicely with VS.NET. Specifically, lets say I have a solution that is going to contain 4 projects. 2 of the projects are custom to the solution, and 2 are shared libraries that are common to several other solutions. The proposed tree we have looks like: / |- /Projects | |- /Projects/MySolution | | |- /Projects/MySolution/MySolution.sln | | |- /Projects/MySolution/BizObjProject | | | |- Project Files | | |- /Projects/MySolution/DAL | | |- DAL Files | |- /Projects/SharedLibraries | |- CommonLib1 | |- CommonLib2 |- /Tools |- Tools1 |- Tools2 Then, we would just bind the projects in the solution to the different folder locations. Anyone else have better thoughts about how to structure this?
The basic structure looks ok, however, it should start at /trunk instead of /. Bear in mind that branches are just directories in Subversion, so you need to allow for that.
comp.lang.c refugee Monday, August 15, 2005
Thanks. What about gotchas from VS.NET? Has anyone had experiences dealing with projects being bound to different locations? Also, why /trunk? What else would go under /?
recommend: /trunk /---existing structure would goes here /tags /---think "labels" (in VSS parlance) /proj1 /builds /050618 /050619 /050620 /RC1 /RC2 /RC2.1 /GOLD /branches /---branches from trunk /Proj1-Rel2 /Proj2-Rel3 This worked well for me ~ I found it somewhere (I think?) in the svn documentation.
Take a look at "How to Set up a .NET Development Tree" at http://mikeroberts.thoughtworks.net/blog/archive/Tech/ArticlesandPapers/Howtosetupa.NETDevelopmentTree.html There's also a tool out there called TreeSurgeon that sets up trees according to this scheme. Even if you don't adopt it, there's some good ideas in there.
Oh, and I have SVN set up at home, and when using it with VS.NET 2003 I don't even bother with integration. I just use TortoiseSVN from windows explorer when I need to do a commit or update, and it works like a charm. None of the source control binding crap that you have to deal with in sortasafe.
+1 for the trunk, branch and tag structure. It means you can checkout the whole lot under / (trunk, all branches and tags), or just the trunk or a specific branch/tag. Use TortoiseSVN for the user interface, it's nicely integrated into the Windows Shell (Explorer). It's also useful on the server, even if just for creating repositories. Don't forget to set the Subversion exclude/ignore pattern (bin, obj, .user, .suo + whatever else). You can set this is TortoiseSVN individually, or in the Subversion configuration. Read, at the very least, the TortoiseSVN manual (http://tortoisesvn.berlios.de/?q=doc_release), ideally also the Subversion manual (http://svnbook.red-bean.com/). This has some useful hints http://mikeroberts.thoughtworks.net/blog/archive/Tech/ArticlesandPapers/Howtosetupa.NETDevelopmentTreeWrapup.html, although I don't agree with all the details. If you're doing web projects, there's a bug in VS2003 that prevents TortoiseSVN/Subversion working properly. Either use the unsupported version of TortoiseSVN, or do get rid of web projects and use class library projects instead. I do this, it's much nicer anyway. Look at this http://pluralsight.com/wiki/default.aspx/Fritz.AspNetWithoutWebProjects
el Tuesday, August 16, 2005
I forgot, install Apache on the server for repository access, install Apache first and the Subversion installer will ask you to integrated into Apache. However, you will need to modify the http.conf file. The Tortoise manual gives a quick overview of the necessary modifications, and how to set up authentication. You can use port 8080 if it's a conflict with IIS, but shut down IIS whilst installing, setting port 80 in the Apache installation dialog, otherwise Apache won't install properly. Then edit the http.conf file to port 8080.
el Tuesday, August 16, 2005 | |
Powered by FogBugz
