We're 2-3 people developing a CMS type PHP script and we're getting tired of trying to sync who's editing which file and trying to keep a "main version" updated by mealing files back and forth.
I have looked into SVN, but installing that seems like quite a pain. I'm not confident enough to do it, that's for sure. So not having any idea of the version control software market, I was looking around and found some possible candidates:
It's not fully transparent to me, but these solutions seem to be easier to install than SVN?
I would like to have the advise from people having experience with these tools. Both installation-wise and practical use.
Let me add that we're just 2-3 people and my guess would be that a intuitive tool that is not super-advanced would be better for us. Otherwise I'm afraid we'll brake our neck on advanced features and never figure out how to use it.
Thanks in advance!
Use a hosted solution and you don't need to worry about installing it
They offer alot of great features for a few $ a month.
Then just use a local SVN client to commit, update etc. I'm on the Mac and user Versions (http://versionsapp.com/) but there are tons of them out there for both Mac and PC.
Well...thanks for your suggestion, but that isn't an option. We're running a VPS server, and it has to stay like that for a number of reasons.
I don't know about Mercurial or Bazaar, but Git isn't that much easier than SVN to setup.
If you use svnserve/Gitosis for SVN and Git respectively, it shouldn't be too difficult to install. You just need to follow instructions, but you won't be touching your Apache setup or anything.
Git has quite a learning curve compared to SVN, although the basic commit and push actions aren't hard to grasp. If you screw up and you need to use the more advanced features, then Git may be trouble. Git (and Bazaar and Mercurial) work work very differently from SVN though -- SVN is not distributed.
Subversion is about as simple as it gets. It's pretty much the industry standard, so I would suggest that you go with that.
Assuming for a delirious moment that we would go with SVN, have anyone heard of people who offer SVN installation service? Google didn't give me much on that.. PM's are accepted if anyone believe they have the abilities that I'm obviously missing :o
Anyway, does this then also mean that Mercurial and Bazaar are equally difficult to install ?
It's really not that hard to set up a svn server. Google gave me this guide. Any decent unix sysadmin should be able to get it up with little effort.
Installing SVN isn't that complicated, beeing it either as "svnserve" or as Apaches mod_dav_svn.
I've done that several times, at least with mod_dav_svn, so if you need assistance mail or PM me.
Nahrs snarking at open source is weird here, because version control is one of those places where there are lots of excellent open source options. Mercurial, git, or subversion will all presumably work well for you. Also, if youve got MSDN, TFS 2010 may be wild overkill, but you do have a license for that.
Thanks for your insights guys. I see the road leads to SVN, so I'll look into how we can get it installed on our VPS.
Setting it up is extremely simple, though a lot depends on your OS of choice. I've set up subversion under FreeBSD, Debian and Ubuntu, none of which took me more than thirty minutes, including creating the repositories and configuring access. Stop worrying, and just install it, Google is full of decent articles.
Maybe it is extremely simple, but I spent on the wrong side of two hours just trying to figure out where and how to start. From what I saw it depends quite a lot on what OS you are running. Mine just says "Linux" so I had trouble even finding out which SVN I should install..
I guess it's easy if you know your way around these things, but I would need dictionary just figuring get the real meaning of "repository, webdav module, CentOS, update to Apache 2 (or not..), Apache configuring" to mention a few. These things seems to go deep enough that if I mess up something I'll have 30 sites offline after mis-configuring Apache or some other conf file.
Anyway I'll stop my whining and look for someone to do it for us - maybe I'll learn something on the way
In which case, you might want to consider not managing your own server. Not trying to be negative here, but if you don't understand those terms, you're better of leaving the server alone for now, and you should consider hiring a managed server, rather than a server you have to manage yourself. Learning to use and configure unix or linux and all of the usual applications will take a while, and you're better off not experimenting in a production environment.
In this case, I would indeed suggest to do that. I guess I assume to easily that everyone knows Linux by heart
Yes, I didn't grow up with linux - to me it's a necessary tool not a passion. I have over the years though started to see it less as a pain in my a** and appreciate it more for it's usefulness
Regarding the private server, it's unfortunately required for us to have that. Getting root access, and having control of other aspects we need for other development purposes. We can't get that with shared hosting. Anyway, we're also only "sub managing" the VPS as ServInt does a good job with their support and tech. assistance.
Until now, we actually didn't have any problems managing the server otherwise - I was able to understand other necessary aspects required for managing the server. However my PHD engineering degree (not within computer science) didn't suffice in getting the upper hand on this one So, my sincere respect to those of you finding this to be a dance in the park :agree:
Found assistance for the SVN setup/install so hopefully the problem is solved.
My understanding was that there existed a number of GUI for SVN - but I have heard otherwise now. May I ask what is your preferred GUI, interface or whatever you use for doing the actual file managing? Web interface and/or GUI on local PC?
How do you best manage things once the SVN is installed? My PC is running WinXP and was hoping that the file Explorer isn't going to be my only help.
As you may have noticed, I don't run Windows a whole of a lot, but there is an application called TurtoiseSVN which seems to be popular. Also, most PHP IDE's have plugins for working with subversion, so that might be of interest as well.
That's just for using subversion though, not for administering it. In my experience, when you've set it up, you don't touch the configuration of the server a whole of a lot, so that probably won't be a problem. If you want to get to know subversion, I recommend reading the excellent (online) book: Version Control with Subversion.
Thanks a lot webaddictz for the links to TurtoiseSVN and the book. I think the book might be what I need to get a better feeling on this.
So, you are using some distb. of Linux I can imagine? I do have an Ubuntu partition as well on my PC, so I would like to know what you use yourself as GUI (if it's a GUI)..?
Yes, I use Ubuntu on my desktop. For communication with version control systems, I use the terminal. But then, I use a terminal for pretty much everything I do, so I may not be a prime example
TurtoiseSVN is excellent. It installs itself into the Explorer. And it's easy peasy to use. You can set up your own repository with like 1 click. It really is one of the best SVN front-ends I've used.
A close second (on the mac) is Versions. But you can control SVN via terminal on the Mac too. Versions just saves me time. By the way, on the Mac SVN comes installed.
Now on linux, your distro might already include SVN. If not, just use a package manager to install/and set it up. Despite popular believe, you don't have to install these tools by hand in linux.
By the way, i second Webaddictz book selection (Version Control with Subversion). Really, knowing the terms used is 80% of the battle.
OK thats good news. I think I will start out with TurtoiseSVN and hopefully be happy with that.
Got my SVN installation problem solved as well. It turned out that ServInt offered to do the installation for me - thumbs up for ServInt - these guys never fail to deliver excellent support.