After much delay, I realize I want to implement a version control system into my workflow for web development. I rarely work with others, so all I need is version control for peace of mind and ability to rollback etc. I also develop from a laptop and desktop at the studio, so I would like to use version control so I can work from different locations and avoid conflicts that emerge from that.
I have done a fair bit of research, and most tutorials are rather advanced and seem beyond my needs. Basically, I have decided on an SVN repository from beanstalk and Versions.app to work with it.
However, I have three quick questions I would love to answer before really diving into a solution:
Is it really necessary to use a typical SVN structure (trunk/branches/tags)? Can I not simply use the repo as the web-root?
How can I benefit from Branches? Beanstalk recommends deploying from branches. From what I understand, this could mean creating a Production branch, then merging to that branch from the Trunk before deploying? Is there a reason not to simply deploy from the Trunk or just having a webroot in SVN and deploying that? I suppose I am mainly asking why, as a single developer, I would want to use branches in developing websites?
Is there any reason I could benefit from GIT? The one main feature I could see if offline commits, but beanstalk even recommends SVN for web development files (html, php, images etc).
Any help greatly appreciated. I've been wanting to use a version control system and develop offline for some time now. Hopefully no more editing live servers for me! I think getting the right workflow down is a time and energy intensive project in the beginning, but so well worth it in the end.
--
edit: I am developing mostly wordpress websites, and various EE projects on a reasonably small scale, nothing too intense.
--
edit: As with everything, working with the system and trying it out is the only way to really get to know it. In the end, I opted for git. I was very happy with being able to commit offline quickly, to do quick branches and merging etc. Then, deployment with capistrano, while initially complex to setup, has been unbelievable. My workflow is so fantastically improved now. I can branch new features quickly and try out new ideas. I will never develop a project again without git!