I will briefly explain my situation.

I have a website in PHP, this website is powered by a custom framework + some "plug-in" made ad hoc for it.

I am the only developer of this. Until now I just test locally any changes than I upload the php files via FTP.

I don't feel confortable anymore with this. The code base has grown quite a lot and I need some sort of system that helps to keep track of changes (line by line) and can restore to an old version easly if something goes wrong.

Are there any good solution for this?

Note: I never used something like version control or subversion because I think they are too much for this situation (I am the only developer and I just need basic feature)

Note2: Something with a nice web interface would be perfect, I can pay for a good service too

As now I found:

  • Do you have ssh access to the server, or just ftp? If you have access to a shell, then have a look what DVCS software is pre-installed, you may find that git, hg or svn are already installed. In which case, you could host your code on any code hosting site like github or bitbucket but there are lots of others. – Mark Booth Nov 14 '11 at 16:31
  • @Mark: Yes i have ssh, I am on a dedicated server – dynamic Nov 14 '11 at 16:34
  • Does it already have any VCS software installed on it then? Try running git --version, hg --version and svn --version for starters, that will tell you which, if any, are already installed. – Mark Booth Nov 14 '11 at 16:56
  • No they aren't installed.. But I can install whatever I want. But still I need something that I can access from anywhere – dynamic Nov 14 '11 at 16:59
  • 1
    Git + Github is probably your best bet. Industry standard version control, and what appears to be a decent online editor for quick remote edits. – Craige Nov 14 '11 at 17:26

Version control will give you what you want. It will show you code changes and file differences. It will let you revert files to earlier versions. Some version control systems will also let you automate deployment, so you can label/mark the files you want to go into the next build and deploy only the ones that you've selected. Some version control systems also integrate defect tracking and management, so you can look at the problem ticket and the code change to fix it all on the same screen.

You don't have to use all of the advanced features of a version control system but the basic ones will certainly do what you want. Any other tool that gives you these features is just a different form of a version control system.

If you wait until the project is SO big that you do need it, it will be more difficult to implement and integrate. Do it now (yes, I know there's a bit of a learning curve at first but it will be worth it in the long run) while it's still not too much trouble to add to your process. Another reason to learn version control is that many larger companies use it. Not having it on your resume, or saying "huh?" when someone asks in an interview about what version control system you use could hurt you if you're evenly matched against other applicants in all other areas.

  • Do I need to install this version control locally? Are there any solutions (paid too) that are Saas ? – dynamic Nov 14 '11 at 16:05
  • 3
    "could hurt"? No sane, competent manager would hire a developer who's never used version control. – Michael Borgwardt Nov 14 '11 at 16:15

I think you should stop worrying and start to love version control. That you are just one person working on the code is not really relevant, as you have noticed there are still a lot of occasions when being able to go back in time and review changes are very valuable.

These days distributed version control like mercurial and git are what most people seem to talk about. If you are just starting with doing version control I think howvere subversion is probably easier to get started with. The svn book can be a good starting point.

  • I would like to use some Saas, I don't want to install something locally. Is GitHub the only alternative? – dynamic Nov 14 '11 at 16:06
  • 3
    @yes123: no, there are lots of code hosting service out there. But why this fear of local installation? It's not a lot of work or likely to break anything. You don't even need to run a server, both SVN and git (probably others too) will happily work with a repository in a local filesystem. – Michael Borgwardt Nov 14 '11 at 16:17
  • I could see an argument for svn over git for someone who has no VCS experience, but I can see no reason to go with svn over hg. Mercurial has very similar commands for basic tasks, and is no more complex if you don't use the more advanced facilities, yet you still get all of the advantages of a DVCS, the biggest being the ability to work off-line. – Mark Booth Nov 14 '11 at 16:24
  • @MichaelBorgwardt: I don't fear local installation, but with something hosted I could access it anywhere and I would take advantage of a nice web interface to keep tracks of changes or do other stuff (I believe...?) – dynamic Nov 14 '11 at 16:34
  • 1
    @yes123: access from anywhere is a good reason to use a hosted service, but the IDE integration or GUI clients like TortoiseSVN and TortoiseGit are generally just as good or better than the web interfaces. – Michael Borgwardt Nov 14 '11 at 16:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.