My company is currently going through some rethinking of our SVN repositories for our sites.
I'm assisting, indirectly, trying to figure out a good way to work with both styles of development done here.
First style: Web Dev does many minor changes.
Second: Developers do large projects.
The way we have our repository laid out is we have a project root for each site we have. Within that root there's a production folder which contains all files, mimicking the production structure and we have a projects folder were we create individual folders for each project we've done on the site. These folders, too, mimic the directory structure.
Within the project folders, developers copy only files we're editing and then copy them back to the production folder when we're done. Web dev works mostly in the production folder due to their minor changes.
Example copy of an SVN repo:
Code:
root
|-- production
|-- htdocs
-- Files here.
|-- projects
|-- Project 1
|-- htdocs
|-- only modified files here
|-- Project 2
(ditto)
The object behind that is it allows us to check out the full tree without too many files and it allows us to view, easily, what files were modified for what projects.
The problem we're running into is the lack of the ability to merge change between project folders and into the production folder. I got to thinking about branching, but from what I'm reading, it's just a full copy of the site and "merged" back. That's rather large, especially for a number of our sites.
Is there a way to get the best of both worlds here? Can we use Subversion to create a "minimal" branch using our project folders and be able to merge our project folders into the production folder?
Let me know if you need more information. I'm reading over the SVN Manual, but I don't see any kind of branching that allowed us only to copy over files we're modifying.