A colleague and I are going to be working together on a single project for the first time. This raises a few technical questions for me. Like how.
I think a version control system is a must now, if it wasn't already as a single developer.
But this also means that I can no longer simply upload to a development server via SFTP up on hitting CTRL+S. So I suppose this is where CI (continuous integration) comes in?
This also means choosing between SVN, GIT, Mercurial. Reading into those options it seems the world is divided. Each has their pro's and cons.
We do want to keep everything on-premise though, we know that much.
Currently I'm thinking of this:
PHPStorm dev one ----\ Server Server Server ------- Development ------- Staging ------- Production dev two ----/ Internal External External |_ GIT (VCS) |_ GIT hook (CD) |_ Apache, etc
I'm wondering if there are experienced developers around that can share some of their ideas and knowledge on the topic.
update (2 days later): After weighing VCS's we went with GIT instead of SVN. TeamCity gave some challenges concerning compatibility with our network, so for now we went with a simple GIT hook for CD. We will look into CI some more later.
With GitList copied to an intranet site, we also have a nice on-premise lightweight web GUI for GIT. This makes it easy to keep track of projects and pushes outside of IDE's.