0

I've done some homework on this and understand the basic rules of Version Control. I've also looked around on here and not found anything really solid that I understand much. I've been tasked with setting up version control at the company I work for after I suggested it should be implemented. We are a Web Development company with numerous simaltaneously running projects, hence we need to have version control.

Only thing is, I'm so stuck as to where to even begin with it.

I have downloaded Versions app onto my Mac and understand how to use the program. I've created a local repository on my desktop and have added some files to the it, checked out, committed, restored previous revisions, etc. Like I say, I have the basic understanding of how version control works and functions, it's just setting it up for the company I work for that is the major problem. I want to work with SVN, so Win users can use TortoiseSVN and Mac users can use Versions, so no problems on what I want to use. It's just using it.

We have web servers in the office that we connect to, one holds all of our numerous web files. We also have our live web server where all of our documents are live.

Do I set the repository up locally? Or do I set it up on the live web server? I'm not too sure where to go. I looked at beanstalk, but again, was clueless as to where I should be taking it. If I had to run a repo myself, I'd be fine. I'd have a local repo where all of my files were or have one on a old machine I have kicking about.

But how do I replicate that into my office environment? I am aware of the importance of the need for version control. We currently have things like

  • File.html
  • File-BACKUP.html
  • File-OLD.html
  • File - Copy[2].html

etc etc

Which isnt a functional system.

Could someone please direct me as to a good breakdown of how to set this up and get the practice running effectively in the office? Like, a step by step or SVN for dummies or whatever.

I've read the svn book that many people round here link to and don't understand it much more either, just so you're aware and don't just instantly link me through to there!

Thanks.

5 Answers5

2

So to get to the nub of the technical problem; it sounds like you are having difficulty setting up a Subversion server and getting TortoiseSVN/Versions to connect with it?

For a team to work together, you need a central repository. DO NOT set it up on a local machine - ideally set it up on a new shared server on your private network. If you use the live Web server to host it instead, make sure the repository is secured using SSL.

I won't get into the gritty details on how to set up a central server, since you've already stated you know where the Subversion docs are. If you have any specific problems in this area, feel free to ask a few more questions on this site. You did, however, ask for a "dummies" tutorial on setting things up: Here are some for Windows and for Linux.

To get the team working effectively with it, I suggest you first get everyone together and discuss the benefits. You will not succeed unless everyone is on board and using it. Answer any questions they have, and make sure you take any concerns they have seriously - go away and come back with researched solutions, don't just tell them "Subversion's way or the highway". I expect this will be your most difficult challenge of the whole thing, but it is most certainly worthwhile persevering.

Once things are set up - introduce it to the team by using it with a new project (or import a non-critical existing one). Maintain a collection of "how to" tips (a Wiki is good for this), at least until the rest of the team start to grasp the basics. Eventually, you start to gain ground when the others see the usefulness, and at that point you can start considering porting everything to Subversion.

seanhodges
  • 17,426
  • 15
  • 71
  • 93
  • Thanks Sean! I don't necessarily mean I want to set the whole thing up on my local machine, I mean that I've been trying it out on my local machine. We have a shared server on our private network, which is how we all connect to our web files (i.e. S://Web_Root or 198.12.3.12 on the Mac). Set the Repo up on this, for example, and port all of the current web files currently sitting on this box as the initial version of our repo? Also, do I need a new repo for every set of web files we have? I assume this would be best practice. Furthermore, how do these go live from the repo? Thanks again! –  Feb 15 '12 at 16:12
  • Yes, the private shared server sounds like a good place for your repo. You should only need to create one, this chapter is a useful read for how you might divide up your web files: http://svnbook.red-bean.com/en/1.0/ch05s04.html. If you're not sure which approach you need, opt for the first example as it's the simplest. – seanhodges Feb 16 '12 at 09:56
  • What do you mean by "go live from the repo"? Subversion will not in-itself deploy your Web files, it just stores and versions them. You will still need a deploy script to copy the files into place when you are ready for them to go live... – seanhodges Feb 16 '12 at 09:58
  • Take a look at this question for more info on deployment: http://stackoverflow.com/questions/1822469/deploying-a-website-from-subversion – seanhodges Feb 16 '12 at 10:00
  • Thanks Sean, with help from yourself and a guy I know from another company, I'm starting to get my head round it. Sort of. Haha. –  Feb 16 '12 at 15:35
  • No problem Joshua. Version control is a strange beast to get your head around at first, but the effort is very rewarding. – seanhodges Feb 16 '12 at 15:52
0

Oddly enough, this can be as simple as setting up a drop-box account, and having your local SVN repository in your dropbox folder using Tortoise SVN.

Or you set up a dropbox folder on a server, and then the same idea applies but to multiple users.

Once you are in your dropbox folder, just make a folder, right click, and do Tortoise SVN-> Create Repository Here...

Also, see http://thinkinging.com/2007/04/12/creating-a-local-subversion-repository-with-tortoisesvn/

PlayDeezGames
  • 752
  • 4
  • 12
0

If you want to use svn (or other centralized) version control system, then you should create repository where it will be accessible to users 24x7. If the repository resides on your own PC, then other users will be unable to share their changes when you're offline. Similarly, will your users experience the need of commiting or getting the latest changes when they're not in the office (so that local office PC will not be available, but a "live" one will)?

Of course, if you want your "live web server" to show latest version of your documents to your customers, such a "live web server" is just another svn client, you should not mix it up with your svn repository (which doesn't mean it could not be on the same PC, it is just that "live web service" should not work with your repository storage directly).

Alternatively, you may consider distributed version control systems such as git.

penartur
  • 9,792
  • 5
  • 39
  • 50
0

If your current problem is setting up the stuff, then you could invest some Google-time and search for ready-to-use "appliances" for the central SVN server. There exists several in different flavours and different add-ons and either for Windows or Linux.

Using one of these may also provide some more startup-goodwill from you coworkers, because the chances are higher, that more stuff works just out of the box.

A.H.
  • 63,967
  • 15
  • 92
  • 126
0

If your server is windows, download and install visual svn server. http://www.visualsvn.com/server/ The admin tool will walk you through the setup of your repo, and will give you the URL to access it. E-mail that url to your team, and have them browse to the page with their web browser, where they will verify their login credentials. If that looks good, they can then paste the url into their svn client such as TortoiseSVN, and they're ready to roll.

Chris Thornton
  • 15,620
  • 5
  • 37
  • 62