Source Control: Miscellaneous

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Source Control: Miscellaneous

      Here's a list of links to various other source control management tools:
      • RCS - a free one under the GNU license
      • CVS - another really popular free SCM tool.
      • Starteam by Borland - very very nice, but expensive.
      • ClearCase by Rational - the top dog, but you'd better have a goverment military contract to afford this one!
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • RE: Source Control: Miscellaneous

      Hi,

      I guess this is replying to a rather old message but just in case it's useful to anyone...

      We've used subversion (subversion.apache.org/) as a replacement for CVS in the past. Assuming you don't want to pay for Perforce then I'd recommend SVN over CVS - for us at least, it was much better at handling branching and has changelists which are missing from raw CVS.

      However, if you can afford it or fall into the free licensing then Perforce is better still.
      - Arm
    • I like TortoiseSVN a lot. I used it to share the book writing materials with all the guest authors!
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • Yeah, TortoiseSVN is great. I use it for my personal development and, as Mike mentioned, we used it as our primary source control during GCC3.

      I've heard of AnkhSVN but never tried it. I tend to hate source control integration with my IDE because it does thing that I don't want. At EA, we have a Perforce integration that automatically checks out files as you start editing them. This is fine, unless you don't have the latest version of that file. If you don't, it gives you a pop-up asking if you want to synch to latest, check out your version, or cancel. The default is synch. So, let's say I want to write a new function. I go to the closing brace of the function before it and hit enter twice to give myself a line of whitespace between the previous function and my new function. If I don't have the latest version, it'll end up syncing to the latest version then checking it out. That's NOT what I want because now I have to sync to head revision on the whole source tree because the chances of someone making a single isolated change in this one file are remote, especially with such a huge and tangled code-base as Sims Medieval! GAH! That means I just lost a good 20 minutes syncing and rebuilding.

      -Rez
    • Doh. Can you not change the default? We've avoided the problem by not having any IDE, although I suppose that's because I spend most of my day writing verilog on linux rather than C/C++.

      Surely though, you have to take the hit of updating and rebuilding/testing before you commit? (I guess you might have to do that twice though if you have to do it when first editing the file...) Also, depending upon your build system, you should be able to use commit-hooks to run a common "shared" build that the builders can use to skip build steps if possible.
      - Arm
    • I don't think we can change the default. Yes, I have sync/build/test when I'm ready to check in, but we have like 20+ gameplay engineers all making code changes throughout the day. Files become out of sync very quickly so this potentially happens multiple times per block of work. In general, source control integration with the IDE is evil. I've never seen it work right.

      -Rez
    • FWIW, I've been pestering our software guys about how they handle the integration of P4 into their IDE. So far they've said - universally - that they don't let anything happen automatically. They all have either hot-key macros to check-out or drop back to the console.

      We do exactly the same thing in the group I'm in with a bunch of macros we put together for the common editors we use so we know exactly what goes on under-the-hood.
      - Arm
    • Another one for the list: Git (git-scm.com/), which is my favorite source control tool. It takes a while to learn to use it, but it's brilliant once you know it!
      "There are of course many problems connected with life, of which some of the most popular are: Why are people born? Why do they die? Why do they want to spend so much of the intervening time wearing digital watches?"
      -Douglas Adams
    • I've heard very good things about Mercurial.

      Mercurial and Git are completely different designs than SVN/CVS/RCS, etc. Most notably, you get 2-phase commit, and your changes become more like atomic transactions than complete versions.

      There's a pretty convincing tutorial at:
      hginit.com/
      To help people understand at least why programmers like Git and Mercurial over SVN.

      (Git is what Linux is built using now, and I find that to be a pretty good recommendation)

      Of course, I still use SVN, but it's getting pretty annoying.
      -Larrik Jaerico

      www.LarrikJ.com
    • Sorry for posting on something so old but seemed like the right place to ask this question.

      Any thoughts on Team Foundation Server for use in game development? Specifically TFS 2012 express which gives you source control, builds, and work item tracking for small teams (5 or less) for free? On the surface it looks like it should be pretty viable and on par with some of the paid ones you guys are talking about here. However, there is always the chance that there is something that I am not seeing that becomes an issue like a year into development or something :)
    • I like SVN for source code, however I tried getting perforce working for art assets but it was BRUTAL to even get connected to a server.

      Next project around we will be using Git for everything
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz
    • I'm not a fan of git at all for real game development. Git is centered around the most annoying thing about source control: merging. It works great with one or two programmers but really breaks down as you add more developers. It can't handle binary files very well because they don't merge. I've only done some preliminary poking and have never directly used it, but I know someone who worked at a company that used it as their primary source control on a unity project. He had many, many horror stories.

      The consensus among my colleagues is that if you use it, make sure you only use it for text-based files like code. Of course, using multiple source controls systems can be cumbersome, which means you probably shouln't use git.

      If you do try it and have a different experience, let me know.

      -Rez
    • No thoughts on Team Foundation Server 2012 express then? I do have some experience with SVN and unfortunately with sourcesafe (which is why I would never use sourcesafe lol), and TFS for non-gaming projects. They all have trade offs, but are there any major gotchas on using TFS for game development that either of you guys know of?
    • I will likely do a test project to see how it feels once we are done with this project, right now our workflow is that we all work out of our own branch (Which you had mentioned was the way EA works as well).

      The SVN provider I use (Assembla) has a nice code review system that just came out, where you submit a merge request and then your peers vote/comment on your change set, when it has been approved you then click the merge and close button and it will do the merge for you. As for our assets we will simply use dropbox for holding the raw assets, and once an asset has reached the final stage we will store it in the SVN, this way no merging is required for those binary files.

      I wanted to use perforce as they also offer a free perforce server, but just to get it to connect was a hassle, so I looked into alternatives and I heard Git was good for both, so long as it's not huge binary files. I think when it comes down to it you pretty much have to settle with something, as none of the free/open source VCS's fit the bill of working with every file imaginable. For now it is SVN, and if Git proves itself to be better, it will be that.
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz
    • I will do the same thing with Team Foundation Server and let you guys know what I come up with on it. It really looks like a good option since it does automated builds with notifications of broken build, gated check-ins, easy ability to save every build. Create bugs automatically if a developer checks in code that breaks the build. Highly customizable and pretty fast. plus it is designed to integrate with Visual Studio. Used to be a paid Software but you can get all this basic functionality for free now which is why I was looking at it.

      Anyways I will report back in a few months in case there is anyone else out there wondering, thanks :)
    • just some notes:
      - git is really not working on bigger teams, currently we use it and have many problems (binary files, deleted files in the repository, ...) for smaller projects like the linux kernel it's okay, but for everything else distributed systems doesn't work as great as advertised
      - I know a company working with a subversion server and the clients use mercurial working against the subversion-server because subversion itself doesn't scale that well (but keep in mind, I'm talking about bigger projects!)
      - at my last company we used perforce and it was really a blast, submitting daily builds (600MB binary data one build) against it was no problem (If you can afford the perforce-license the needed server shouldn't be a problem), in combination with an own build tool to sync different repositories in the source directory it was really great to include multiple subprojects into the main program
      - I've once heared that microsoft bought the perforce source code to build the team foundation server, so that should be also a nifty solution, but I have never used it myself

      has anybode experiences with not-so-mainstream solutions like plastic scm or others?