Advice on version control setup for website development
We decided to start to use version control for a website I maintain/develop with two other people. The process we currently use is as follows: the website is hosted on a dedicated server. Our development work is also done on this server, but on a copy of the site in a sub folder of the live website. When the implementation of a new feature is finished, we copy the changed files from this sub folder to the live website. As you probably can imagine deploying a new feature in this way is rather cumbersome, and it makes it also very difficult to develop with multiple people at the same time.
To improve our development process we decided to start using version control. I have some basic knowledge of the use of version control systems (Subversion and Mercurial), and also have some basic understanding of the differences between centralized and distributed version control systems. However, this is probably not enough to be able to decide what the best setup for our requirements will be.
I asked our hosting provider for help. They have experience with setting up Subversion, but no experience with Mercurial/Git. So they can setup Subversion for us, but when we decide to start using Mercurial/Git we have to do this ourselves. But before we make this decision, I would like some advice on what will be the best option for our requirements, which I will state below. I do not mind to spent some time to research how to correctly setup a solution with Mercurial/Git if it is clearly better for our requirements, but if a Subversion solution will be sufficient for our requirements I have better ways to spent my time :)
Our main requirements are:
Easy deployment of new features to the live w开发者_开发问答ebsite.
Be able to revert large changes in the live website (based on user feedback), even after deploying other features to the live website. I know there will always be possibilities of conflicts for this, but which solution will be best suited for this?
And maybe there are other clear advantages/disadvantages to choose one of the two solutions over the other that I have missed.
I think any version control will help you immensely. The topic of which one is controversial (approaching religious!) and you will get loads of pros and cons for each.
Here's my take. I'm quite familiar with subversion and somewhat familiar with git. While git is new and cool and has some arguably great features, I find subversion much easier to use on a daily basis in a work environment and I have yet to find anyone with a convincing argument for why having local versioned copies of a repository is vastly superior to using subversion. I do like using github for collaborating with open source projects however, for some reason it seems a more natural environment.
Conclusion? It actually probably doesn't matter that much, pick one that you are comfortable enough with that you will actually use it (and it sounds to me like that is subversion).
精彩评论