Hi Russ,

   >Does Homesite+/CFStudio have any CVS support (especially for subversion?).
   >We're planning to move to SVN from developing from ftp, but wondering how to
   >set the whole thing up. 

Bunch of ways to do this with Homesite.  The easiest I know of is to use 
TortoiseSVN.  From Homesite, all of the Tortoise right-click menus will be 
available in the directory browsing pane (but NOT in the file browser below 
it).  When you change a file and want to update your server version, right 
click its parent directory and COMMIT.  Simple.  If you want to use Homesite's 
Project-thingy with its source control integration, you will have to install 
something like Jalinidi Igloo which emulates SourceSafe's API (called SCC).  
Hasn't been worth it for me. SO, that's the client side....

   >We have a development server, where all the changes are made and tested by
   >editing the files directly through ftp and testing them through the web
   >browser.  When they're ready, we ftp them over to the production server and
   >use Araxis Merge to compare the changes with the old files and merge them
   >(just for safety, and also certain files only get parts of them deployed,
   >such as the cfc files which contain all the DAO logic). 
   >How can we make this type of set up work with SVN?  I mean if we retrieve a
   >file from CVS through Homesite+ or CFEClipse, how do we save the file to the
   >dev server so that we can test it, and then when we're done, how do we
   >deploy the changes to production?   Is this even possible? 
   >Russ
The environment
Here's the thing: you need to think about source control a bit differently than 
you thought about the FTP method you setup.  Ideally, you would have a souce 
control server, a staging server (you call that dev server above), a production 
server and your local development machine. 

Developing
You develop on a local standalone CF server- you should be able to test 
anything here (except load) that you can test on your staging server. When you 
are happy with a certain file (or directory), you commit it to your SVN 
repository.  On the SVN machine there is no web server, cf server, whatever- it 
is just a place to keep track of your changes and make sure that if everything 
else blows up you keep your job. 

Deploying to staging
When you want to deploy the code to staging (to demo for a client, beta test, 
whatever) you go to the staging box and use tortoise (or a shell script call to 
cvsnt) to UPDATE (or if this is the first deployment CHECKOUT) the code from 
the SVN box.  If you are strict, you will include in  your staging deployment 
process a step to encrypt your CF code.  This keeps you honest and doesn't 
allow you to make code changes on staging (from where you would likely forget 
to commit them).  In fact, you should really do a CHECKOUT RELEASE (this is 
TortoiseCVS terminology- may be different on SVN) which ensures that your fresh 
files are not COMMITable from their new home.

Deploying to production
Same as deploying to staging.  You don't move a thing from staging.  You don't 
have to.  All of your changes are in SVN right?  If your deployment to staging 
worked and all other environment variables are the same, your deployment to 
production will be as simple as pie.

Using CF Enterprise to help
You could alternately create a CAR on Staging when you are ready to deploy and 
push that to Production.  This is an additional insurance that the deployment 
is a success as the CAR wraps up all the CF server settings nicely for you: 
when you restore the CAR on the target, CF is setup exactly as it was on the 
source server.

Saving money
If you don't have an extra server for the source control, no prob.  Use your 
staging box- but do NOT put your SVN repository in the webroot.  The key is to 
keep source control separate from the normal running location of your apps.

Scripting it all
You could setup all of this to run as batch files in windows or linux.  The 
staging process could be scheduled.  You could trigger the running of the 
staging deployment by calling a CF page with a CFExecute that runs the batch 
file.  If you are extra crafty you might use a nifty new CF Gateway to watch 
for some file system chage or listen for a ping from somewhere to tell it to 
run and get the latest release....

You're on the right path- it is less complicated than it sounds!
Cheers
Chip Temm

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:209260
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to