views:

84

answers:

1

Hi,

This is the 3rd web project I have been developing and I have been a sole developer in all projects.

Now I need to change my style and don't know how to do it, so I need your suggestions.

My setup is;

Netbeans for PHP development

Github for private repository (As I am developing on Windows I found very hard to integrate Git-Windows-Netbeans so I can change it if needed)

Basecamp for project management (Even if I use GIT, I might change my GIT provider (github) and select a one which can be integrated with Basecamp)

My needs are;

For my current project, I will setup a dev server and test the changes there first. Then I will commit them to the production server. So I should be able to use netbeans while I can easily commit to my repository and apply the changes to the production server. How can I do it easily? Should I first commit to the repository and get the changes from the dev. server via command line? It seems a bit work to do this for every change. Should I directly upload to the dev. server, then commit the final changes to the repository and get the changes from there to the production server?

So, what do you suggest as a repository which can be integrated into the netbeans and how should I manage these changes?

I also would like to use one of these providers (http://basecamphq.com/extras - SOFTWARE DEVELOPMENT TOOLS). So, if you have any suggestions from these companies too, that would be great

Thanks a lot,

A: 

Everyone's tastes vary.

There are many IDE/Editors, different version control systems, and even different methods of deploying to a live server. So really the best way is to just experiment with different methods until you find one that suits you.

I will tell you how i do it, and take from it what you want. And im sure this will be downvoted by certain people, but its what i found to suit me best.

My editor of choice is vim, but i also like Eclipse with the PDT plugin. Eclipse isn't as "snappy" as netbeans (at least on my computer), but its very nice.

I use SVN for my version control, this is just something that i have been using for years and i am comfortable with.

To deploy the latest code to my live servers i check out the trunk of my svn repo on my live server, for small changes i just commit them directly to trunk, but for larger changes i branch off the code to change, and then merge it back into trunk when its ready.

Then all i need to do is issue a "svn update" on live, and the new code gets checked out of the svn. To avoid ssh'ing into the machine, this can even be called from a php script, from a protected file somewhere.

<?

$svnuser = username;
$svnpass = pass;

$returnString = exec("svn --username={$svnuser} --password={$svnpass} update 2>&1",$output,$returnVal);
header("Content-Type: text/plain");
print("Return value: {$returnVal}".PHP_EOL);
print("Return String: {$returnString}".PHP_EOL);
foreach($output as $line){
    print($line.PHP_EOL);
}

?>
Ollie