Like most people there comes a time when your localhost layout just doesnt really do it anymore and you find there are files all over the place.
This is what I propose doing and I think that maybe im missing something or doing too many steps! Most of my work is with Joomla and oscommerce.
My directory structure is as follows
-Clients
---Client 1
-----Live Site Copy (staging type folder)
-----Dev Site (testing dev type folder)
-----Design Layouts (css/html/wireframes etc)
-Archived Clients
-Charity Clients
-My sites
---Main Site
-----Live Copy (staging type folder)
-----Dev Site (testing type folder)
-----Design Layouts
-Joomla Dev
---Joomla1.5 (Core site, with extensions being tested)
---Joomla1.6 (latest site, with my own extensions being tested)
---3pd SVN (SVN downloads for public Joomla core and extensions)
-----Joolma Core 1.5 (Svn Download of latest stable 1. 5 build)
-----Joomla core 1.6 (SVN download of latest 1.6 build)
-----Joomla extension1
-----Joomla extension2
---My SVN (using unfuddle to store my own dev work in SVN)
-----mycomponent1
-----mycomponent2
-Other Dev
---Mapping stuff
---Ajax Testing
-Oscommerce
---Oscommercedev
Sorry for the long layout of my file structure but I hope it makes sense. Im going to just use my joomla dev as an example of what I plan to do. 1, Download the latest stable release of Joomla to the Joomla core 1.5 folder 2, use Phing to update my dev sites using Joomla 3, use Phing to update all my clients Joomla 'dev site' folders to 1.5 4, all extensions are installed to client 'dev site' and 1.5 test site 5, Use phing to update all clients sites using shared extensions
I use the clients 'Dev site' folder to test for compatibilities with everything else on their site etc, then use Phing again when sure to push to live copy folder and update the changes to the live site via ftp etc.
When developing my own extensions similar pattern, all changes are submitted to SVN from 'my svn' folder. The files are copied to the 1.5 core dev folder via Phing, and then from the 1.5 folder a build phing file updates all the clients (or my own) sites using that extension. This Allows me to test the extensions either my own or 3rd party on a clean install. The custom Phing files, then push the updated extensions to each clients or personal site using that extension. It also allows me to push security updates, by downloading by SVN and then pushing to all sites running Joomla.
My only worry is that there are a lot of Phing build files, and as far as I know an SVN export can only be done to one folder/site at a time, the Phing option allows me to update all sites at least locally in one go.
Can you see any improvements or steps I can cut out with this?