Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9300767
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T22:51:35+00:00 2026-06-18T22:51:35+00:00

I have read FAR too many posts on SO and I am now in

  • 0

I have read FAR too many posts on SO and I am now in analysis paralysis!

I work with Visual Studio 2010 and I have many small projects, many of which reference library/shared projects.

I don’t really mind about having to check/re-build dependent projects if I make changes to shared code…I’ll be putting TeamCity in place ASAP to assist with this, but for the moment, I just amend the code next time I work on a project. Many projects are “write once and forget”, so they’ll never need updating.

The team is very small at the moment (ME!) but new devs are expected early this year, but it will still be a very small in-house team, with fast project cycles if that makes any difference.

At the moment I have a very flat folder structure on disk, so ALL of my sln files are in a “development” folder on disk. Then there is a folder per VS project. This makes sharing pretty simple, and also leaves me with a single packages folder for nuget.

I am about to import everything into SVN (VisualSVN) and I’d like to start adding things like database scripts, docs, UAT tests, etc. etc.

  • Do I keep my flat structure and have a single trunk/branch/tag at
    root level?
  • Do I expand the structure to an SVN folder-per-solution
    and then have trunk/src, trunk/docs and manage things like nuget
    packages
    with svn:eternals?
  • Do I hybrid this and have an SVN folder-per-solution but with docs in the VS solution?

NOTE: I am putting in SVN so I can bring in some Java development but keep source code managed in a single way. We will also share with a DB team, who want to put docs/sql sripts etc in there. I intend a separate repository each for DB and Java – but would like a “similar” folder structure for each of them.

NOTE2: I have some SVN user experience, but no Admin experience. The new devs have no experience at all (they are coming from an AS/400 background) so the simpler the solution the better! I’ve looked at repo per project and svn:extenals and whilst it is a great solution, it will require me to manage and maintain all the time (as well as do my own work! lol)

ANY advice from people who have “Been there, done that-GTTS” is very gratefully received.


OK, I now have the following local solution structure:

ALL my sln/suo files are in the same folder.
ALL of my project folders/files are subfolders

This makes sharing projects easy enough…but looks very messy and is hard to find anything 🙁

Should I be using svn:externals to manage “reference” projects, so I can branch/tag them?
Should I only reference built DLL’s – and all the management that comes with doing that?
Should I let VS2010 manage my folders, and not care that I have lots of “nuget” folders etc.?

VERY VERY confused now…any decent answers? 🙁


NOTE: Will be adding TeamCity (or something similar) to the mix ASAP to provide CI capabilities. Any serious (and FREE) recommendations for CI also appreciated.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T22:51:36+00:00Added an answer on June 18, 2026 at 10:51 pm

    Here is a structure I use at work and for personal projects:

    SVN structure:

    • root
      • shared_code
      • productA
        • trunk
          • branch_of_shared_code
          • productA projects
          • productA solution
        • branches
          • branch1
            • branch_of_shared_code
            • productA projects
            • productA solution
        • tags
          • …
      • productB
        • …

    Periodically (when exactly depends on your needs) all changes from the main branch of shared code are merged into product’s branches of the shared code. Changes to the shared code are either made in product’s branch and then merged back, or in the main branch and then merge to products.

    Product sources content:

    Everything needed to build the complete package is considered as source. E.g. if you have DB scripts – they are part of sources. Tests – too. For documentation I usually add a separate project into the solution which contains all sources for building documentation and produces result in the output directory. Then a project creating installer will include it into the generated distributive.

    Planning:

    This may be debatable, but I prefer to store tasks list next to sources and branch/merge them together. If a task is completed in a branch, it’s not completed in trunk until merge. More general planning may or may not be appropriate for storing next to the sources.

    On disk:

    First of all I believe in working with repository in such a way that it’s OK to not store working copies for every product, but check them out on demand. Of course, checking out/deleting working copy for every change is impractical, so I have a directory for every product which I’m working frequently at this time, inside of it I check out branches I work on (trunk and some others). The rest of products need not to be checked out if you don’t expect their development soon.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have read or tried to read far too many how tos on this
I have read many articles so far and tried so many different ways to
I am beginning on ASP.net MVC. All the articles I have read so far
I have read many answers to questions about dynamically resizing NSWindows and nothing has
I have read various posts in stackoverflow and I am trying to figure out
I have read the Apple documentation, and many postings on the subject on SO,
Despite enabling WSE 3.0 on client projects in Visual Studio 2005, web references I
I have read through multiple posts here until my head was ready to explode
I'll have to read a regex tutorial - so far I have a mental
I have read pretty much the entire documentation even beyond on the AWS AS

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.