Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Cross Platform Version Control Systems? 34

ignipotentis asks: "I've been given the task to find a multi-platform (windows, macintosh, linux) version control system. Currently, CVS is being used, and it isn't working quite as we expected it to. We are creating large Flash files and CVS is having problems keeping everything straight. It apparently doesn't like the large file sizes. I was wondering what other decent version control software is available that doesn't require a huge sum of money?"
This discussion has been archived. No new comments can be posted.

Cross Platform Version Control Systems?

Comments Filter:
  • Hmmm... perforce? (Score:3, Interesting)

    by j.e.hahn ( 1014 ) on Wednesday June 05, 2002 @07:47PM (#3649330)
    I like and use perforce. It's a great system, and there are mac clients (both OS X and otherwise) although those come with some extra restrictions (on file names and the like, due to mac platform issues.)

    However, it's not cheap. It's about US$600-700 per user to start and goes down as you add more users. It's worth it, but if you can't afford it...

    Subversion promises to be good, but it isn't there yet and I don't know if their client runs on windows or mac (or if there are any plans to port).

    There's a host of others, but I'm not familiar with them and thus won't comment.
    • I'll second that, it's very CVS like, but it keeps track of what you have checked out so it does updates much more quickly. The initial checkout takes as long or longer, on a large project you may want to just do the initial checkout overnight. Just be sure not to delete any files you're not using a full update will take forever.
    • Perforce offers free licenses for Open Source projects, if that applies to you. They will also give you a demo license so you can try it out for a while (90 days?) while you make up your mind.
    • Not cheap? Maybe, if you compare it to CVS, but compared to other client/server commercial version management tools out there, it is one of the cheapest ones out there. And the best, in my opinion.
    • Its nice that you like P4, and it is excellent software, but it doesn't solve the problem here.

      The problem is that neither P4 or CVS do binary diffing in their repository (IIRC, they both use RCS files on the backend, though P4 stores metadata in a transactional local DB).

      Subversion can help here, since it stores binary file deltas where appropriate. Unfortunately, its just about to become "pre-alpha" so suggesting it for a production environment is premature at best.

      Perhaps one of the other commerical source control systems supports binary diffs? Try google.
  • by prenagha ( 7542 ) on Wednesday June 05, 2002 @08:01PM (#3649402) Homepage
    You are probably already doing this, but just in case... Make sure you have CVS setup to treat the flash files as binary. [cvshome.org]
  • by kraf ( 450958 )
    Whine whine I want something for nothing whine whine gimme cool free stuff whine whine

    The truth is, it is hard to reach production quality in an open source project that isn't popular enough.

    I use CVS for my pet projects but I wouldn't trust my work stuff to it, thank god we have a real VCS for "big bucks" at work.
  • Compress? (Score:4, Interesting)

    by Lumpish Scholar ( 17107 ) on Wednesday June 05, 2002 @08:30PM (#3649508) Homepage Journal
    We are creating large Flash files and CVS is having problems keeping everything straight. It apparently doesn't like the large file sizes.
    CVS (and the underlying RCS files) can't effectively store diffs for binary files.

    Still, a binary file is a binary file; so why not keep compressed versions of your files under source control? If you have something like a makefile, have it generate a (read only!) copy of the uncompressed file as necessary. Provide an editing script that (1) uncompresses, (2) launches the editor of your choice, (3) detects when the uncompressed version hasn't been updated (and bails out of the previous steps), (4) recompresses, and (5) either removes or touches the uncompressed version (I haven't thought this through too carefully).

    You'll cvs rm the uncompressed version. The old versions will still live in the repository if you need them. (You'll also get some immediate gain from using smaller ,v files, especially at first.)

    CVS is remarkably good for cross platform source control for Ascii files. I used it for four years in a Solaris / HP / Windows environment; good stuff.

    And in case you didn't look:

    http://www.google.com/search?hl=en&q=cvs+large+bin ary+file+OR+files [google.com]

    http://www.google.com/groups?q=cvs+large+binary+fi le+OR+files&hl=en&lr=&sa=N&tab=wg [google.com]

    Good luck!
  • Since you are tracking binary files, CVS is the wrong tool. (It's great for ASCII so you can see the differences in source files.)

    What you are looking for is something to just keep the different versions straight. A few shell scripts (Tcl/Tk works on Mac/PC/Unix) and an SQL database (MySQL also works on Mac/PC/Unix) are all that are required. Ok, a scripting language, an SQL database, and a central file store.

    You add new files via a checkin script. The checkin script creates a simple naming convention. (I start at [thefilename].zero and work up.)

    The [pick your]SQL database gives you a little extra information than something file based. For instance, say you yank a file, but don't want to extinguish it. You simply mark it as deprecated in your tables. Say you need a certain version of each file for a demo. You link them together into a "Release".

    Again, this approach is primarily for binary data where you don't care about the differences between files, but you do care about keeping distinct versions.

    Is the implementation involved: yes, but only slightly more than trying to adapt off-the-shelf tools.

    • Another me too.....

      I've done this. In fact, an implementation of this concept is a critical production system here that not only manages binaries, but also matches clients up with specific versions, plus web delivery, etc. Of course, you all will consider it an evil hack when I say it was done on WinNT/MSSQL/IIS with Delphi, but it works quite well.

      I wonder if I'll get modded down.....
      • Nah, I say whatever does the job with the tools you know how to use. Rock on!

        We just happend to use it to manage TCL scripts and config files for a cluster of linux servers, kiosks, and a cute little intranet app for windows. It just so happens that we use MySQL. Use whatever works in your environment.

  • I'm currently doing similar research for my company and here is what I've found by the moment:
    1. take a look at PRCS [sourceforge.net], it has very sophisticated tool for finding diferences between binary files - Xdelta - this might be what you are looking for.
    2. the site with good (however incomplete) collection [loria.fr] of links.
    3. I've found some comparisons among different RCS on BitKeeper [bitkeeper.com] site (in favour of BitKeeper of couse ;) ).
    Good luck!
  • I don't know Flash, so I may be completely off-target here, but that's never stopped anyone on Slashdot before, so here goes...

    It may be that instead of storing the Flash binary files in CVS, you should really only be storing the scripts/sources/etc that generate the Flash file. This would be analagous to storing the text source files of a C program, but not the generated object files or the executable.

    As a general rule, I never store anything that can be regenerated by the build system in a CVS archive.
  • Perforce or bitmover (Score:3, Informative)

    by Will Sargent ( 2751 ) on Thursday June 06, 2002 @06:26AM (#3651271) Homepage
    Personally I like Perforce [perforce.com]; it's simple, flexible, straightforward, and it's pretty aware of what its job is and isn't. There's a gui client for Windows, and a command line for Unix, and it handles multi-megabyte binary files just fine. But it doesn't do binary diffs well, and it's not set up for different media types. I've heard it can be pretty cheap if you talk to Perforce Sales right (floating head? Don't ask me.)

    One system that I've heard game developers rave over is alienbrain [nxn-software.com], which has built in support for a bunch of different media types and basically assumes it's dealing with a bunch of binary files or images from the get go.

    At 10K for ten users it's not exactly freeware, but from the reviews it looks like some game designers love it like their G4 powerbook. But that's probably too expensive.

    So another alternative is BitMover [bitkeeper.com], which at the cheapest will cost you $400 a head. But there's also a leasing option that could work out better for you, and you get the warm fuzzies by supporting the software that keeps Linus calm and happy.

    Or, finally, you could talk to some CVS consultants. The guys at cyclic could certainly help you out with your problem, and probably more cheaply. At the very least, they should be able to tell you if your problems can be fixed in CVS, and at that point you should have a better shopping list of what to buy in a new system.
  • I am tasked with locating a version management system that will manage code for AIX, Windows (NT and descendants, not WinPlaystation), and AS/400 developers. So far, the contenders seem to be:
    Perforce [perforce.com] - A simple yet powerful VM with server implementations on *nix and WinNT, and client implementations on every frickin OS you can think of. Cost - ~$700/seat, cost includes first year support.


    Serena [serena.com] They have a variety of ChangeMan products, but I haven't evaluated any yet. The demo looked promising, but I have no idea about cost.


    Rational [rational.com] They are expensive, and pretty good. Supports Windows, quite a few unix variants, and SuSe zSeries.


    Aldon [aldon.com]Supports AIX, AS/400, and Windows. The product is a port of their original AS/400 change management software. No idea about cost.


    I'll be looking at BitKeeper today, thanks to some other replies here.
    Personally, I prefer Perforce. The atomic changelist feature is reason enough, but the product is rock solid and easy to use, and performs well over a broadband VPN link. That being said, the product currently doesnt support the OS/400 native object file system, only IFS (Samba style) files. Perforce informs me that this is an item on their todo list.

    • I've used Clearcase in a Linux/Solaris/Win9x/WinNT environment just fine. I think Rational produces this product under the "Rational Clearcase" name.

      Be warned, that it is expensive (ca. US$1000 per floating license), and has a fairly steep learning curve (but that's partly because of all the things it lets you do -- various repository views, for example, are cool, but can be a nightmare if not managed properly -- it is easy to shoot yourself in the foot with Clearcase).

      • The liscenses are only part of the cost of the clearcase system! In addition to the liscenses you have the damn big arse sun servers you have to buy to run it on. For about a hundred developers we have a 16 way sun for the repositories and a 2 way for builds and a 2 way intel for intel builds. Costs an arm and a leg for that much iron.
      • I find all the "sophisticated" tools fall into this realm. Clearcase is one example, another is StarTeam.. These are tools designed for large, complex environments with possible multiple versions being tracked, and multiple branches within versions.
        They are nice, but usually so incredibly loaded with complex features that even the dedicated "build guru" (and how many teams can afford one of those?) is mystified and usually resorts to only using the bare-bones subset he's managed to mostly figure out.

        So, my personal bias is *way* against those sorts of tools. CVS is great, provided you don't deal with binary files. I'm not sure if Subversion is ready for prime-time, but I've been glancing at that for a while as something to give a try RSN.
        • Yes, using Clearcase means that you generally need a build guru (bindere dundat -- the memories are starting to fade a bit).

          And, don't get me started on Clearcase Multisite.

  • by rogerl ( 143996 )
    pvcs from merant did a decent job for us on a variety of different file types. It is not cheap, but it works good. It is made by merant (www.merant.com).
    • We use PVCS here and it works very nicely.. esp since the latest version.

      It has a Java Based GUI, but also command line tools (so you could Perl script an entire interface if you REALLY wanted to).

      The problem however, it that is it a tad on the expensive side.

    • It also doesn't have a Mac or Mac OS X counterpart. I've even tried to run their I-Net version through different browsers and I still don't get the type of support I would expect.

      My next question would be if developers share files on different platforms? If so, PVCS may have some problems. I would go with Dimensions from Merant, but it's hella expensive. Used mostly at CMM Level 5 shops.
  • You got the source, fix it. Wanting a low cost open source solution is nice and all, but if you are not willing to do your part (contribute back code fixes) it cannot happen. Open source relys on people like you with a need, providing a fix for your needs, and making the fix freely available.

    If you are not willing to give back, then spend the money for an expensive solution.

  • I have not tried it myself, but I have heard very good words about subversion [tigris.org], a version control system which is in heavy development right now. The developers have looked at various existing version control systems, and found their pros and cons. Then they designed [tigris.org] a sane system, something between CVS and Perforce. Then they started coding.

    Subversion is not finished yet, but according to others, it is quite usable already, and the subversion developers are using it [collab.net] themselves.

    There was an article in Linux Journal [linuxjournal.com] about subversion i February.

  • Hasnt anyone heard of Starteam?

    http://www.starteam.com
  • StarTeam [starbase.com] is from Starbase [starbase.com].

    Clients supported:
    Win32 [starbase.com]
    Cross-platform [starbase.com]
    Web browser [starbase.com]
    Microsoft Windows Explorer [starbase.com]

    Servers:
    Microsoft Windows® and Solaris [starbase.com]

    The cross-platform client is a Java 1.3 GUI, so it could work on Mac OS X (I haven't checked it out in a while though). They did also have a Java command-line version, and there were even Emacs integrations for that floating around.

  • When it comes to managing binary files, you may want to look at a configuration management system instead of or in conjunction with your source version control. Aegis [sourceforge.net] is one such product.

Somebody ought to cross ball point pens with coat hangers so that the pens will multiply instead of disappear.

Working...