Slashdot Mirror


Designing a New Version Control System?

tekvov asks: "When Linus Torvalds decided to use BitKeeper as the version control system for Linux there seemed to be a lot of controversy and many challenges to create a better system than CVS. My question is exactly what would this 'better system' look like? How is the subversion project, Tigris, doing at creating a new version control system? Basically, does the Open Source Community need new tools in this aspect of development? And if so, how should these new tools look?"

536 comments

  1. I should think so as well. CVS is shit. by ringbarer · · Score: 0

    Fist Sport!

    --
    "Why did they cancel my favorite Sci-Fi show? I downloaded ALL the episodes!"
  2. pretty gui's by Alric · · Score: 3, Funny

    Obviously these new tools should have little functionality masked by really fancy GUI. At least, that's what I've been trained to like.

    1. Re:pretty gui's by scott1853 · · Score: 2

      You mean like Starteam. It looks like a nice package, now if only it could given an accurate status on a file instead of "unknown". It would also be nice if the merge option didn't mangle the code. "1.04" merged with "1.01" somehow works out to be ".1".

      I must admit it's better than SourceSafe from MS.

    2. Re:pretty gui's by Tei'ehm+Teuw · · Score: 2, Informative

      Heh, but it doesn't have to be that way. Look at Clearcase. Good gui and gobs of functionality. Too bad it's so expensive.

    3. Re:pretty gui's by _Swank · · Score: 2, Insightful

      and suprisingly difficult to use to do simple little things (deleting files, etc.) while making it nearly impossible for a normal person (read non-rational expert) to recover a file that had been deleted, but is needed once again. the problem with clearcase is that it's not only really expensive, but it almost requires an admin devoted full-time to clearcase if even a single project is using it. and it's gobs of functionality are great until you realize that 90% of projects don't need some of that stuff (especially integration with all other Rational tools which doesn't seem to work nearly as well as anyone would like) and it ends up making what they do need more complicated than it should be.

    4. Re:pretty gui's by wls · · Score: 3, Informative
      StarTase has serious problems, in my book. From an SCM stand point, it doesn't allow you to do corrections on the respository. Say for instance a developer checks something in the wrong place and creates a branch unintentionally. You know it's wrong, he knows it's wrong, everyone agrees it's wrong -- and you want to get rid of it. StarTeam was to preserve cronological history -- the fact that someone messed up -- rather than project history, which reflects where your software has been and where it's going.

      From a licensing standpoint, they have a problem with the code that validates you. We went through some layoffs and backed off the number of users upon renewal. Even though users didn't exist in the database, the licensing reports said they were there. It took me a few days to demonstrate this was actually happening and get them to admit to it -- don't trust their logs!

    5. Re:pretty gui's by seanyboy · · Score: 0

      You may be being sarcastic, but I actually agree with this. I don't want much from my source control. Just the ability to book in, book out, and compare version differences. The big problem with open-source source-control is that I know that it'll give me this, but I'm not really in the mood to (a) learn how to do it and (b) do it in some special Linux command line way. Give me a flashy front end with big "book in", "add new file", "show version history" buttons, and I'm really happy.

      Of course the command line thing would be nice too, but for me, the basics (that'll be the zero fuss gui) are covered much better by MS source-safe.

      Sorry Guys.

      --
      Training monkeys for world domination since 1439
    6. Re:pretty gui's by Anonymous Coward · · Score: 0

      What's so hard about 'cleartool rmelem'? And if you want recovery, why don't you just use 'cleartool rmname' instead? What? You don't want to have to check out the directory before you make changes to the directory? Damn!

    7. Re:pretty gui's by Gnulix · · Score: 1

      Sorry Guys.

      Are you implying that authors of source-control apps should be sad because you don't use their product? Why?

      You haven't even bothered to look around at what's available in the OSS community, before spouting off. There are plenty of great GUIs for CVS and so on. In my opinion they're far superior to Source-safe.

    8. Re:pretty gui's by scott1853 · · Score: 1

      I don't trust their logs. We stopped dealing with them awhile ago. We had generated the logs and I can't remember what exactly was in them anymore but there was some things that we thought were questionable as to why they wanted the info.

    9. Re:pretty gui's by seanyboy · · Score: 0

      Woah - slashdot wrath.

      When I said Sorry Guys, I meant it as - I really, really would like to use Open-Source stuff, but (and I'm not saying it isn't my fault), I've not been able to find anything. I'm not implying other people should be sad, I'm saying that I'm sad that the stuff (apparently) isn't there.

      And I have looked at what's available in the open source community. I haven't found anything that does the same job for me as simply as Microsoft Source-Safe. (Again - maybe my fault. I'm not throwing accusations here).

      I was just saying that all I want is something simple with a pretty front end, and the only thing simple enough that I've been able to find has been MSS. Nothing more. Nothing Less.

      Now if I call 'Uncle', will you stop hitting me.

      --
      Training monkeys for world domination since 1439
    10. Re:pretty gui's by _Swank · · Score: 0

      well since i have never (and don't rally plan on) using the command line tool for my work, i can't say they're difficult to use. Since I'm not using the command line tool, the differentiation between rmelem and rmname (where the second presumably makes recovery easier) doesn't really matter as i can't see any equivalent distinction anywhere in the gui(s) (and that's what 95% of all normal users will be using). as for checking out directories, no it's not so much of a problem. however, i know of noone who has 'properly' deleted a file the first time they used clearcase. that's probably not a good thing, not because it's overly difficult to do, but because it's unintuitive. and while it possibly makes sense that updating one's own view (snapshot at least) after improperly deleting a file does not retrieve the file, while other people who update their view will get it, i find it annoying.

    11. Re:pretty gui's by Anonymous Coward · · Score: 0
      I'm a ClearCase admin. It does have gobs of functionality, but the GUI is a piece of crap. Give me the CLI interface and a bucket of scripts any day.

      It would also be nice if Rational released some example setups, instead of just pointing out the billions of ways the tools can be used.

    12. Re:pretty gui's by ba_hiker · · Score: 1

      as a long time Clearcase user i agree. it was very powerfull, and dificult to use. 10 or 12 people supported our development community. They managed branches, cross site syncs, and made scripts to do almost everything. The GUIs don't allow user scripting, and its really needed here. Without this support users made MANY mistakes when using Clearcase for the first three months. Had a GOOD merge utility though. We had hundreds of branches.

    13. Re:pretty gui's by Anonymous Coward · · Score: 0

      If your development team was NT (1000+ deveopers), and those dozen people were doing all source control manually, that'd be about right.

    14. Re:pretty gui's by Alastair · · Score: 1

      You're right about it's complexity. Clearcase is a very large and complicated SCM - but then it does a lot as well and is very powerful.

      I've been a part time CC admin for about 1 1/2 years because our company had to start using it to be compatible with a client. We'd never used it before but were lucky to have someone else install and configure it for us initially. We all know CVS. CC has a steep learning curve and I am now far from an 'expert'. Mostly it's worked without problems thank goodness.

      What's good? It's powerful and can track directory changes as well as deal with file deletions. It has a pretty good GUI.It manages to work fairly well 'multisite' (database sync with remote sites). It integrates well with Windows (e.g. MSVC). Good 3-way diff (but also good auto resolution in merges). Triggers on VOB operations. P.S. we use 'snapshot' views not 'dynamic' views, so we have a complete, local checkout of the 'repository'.

      Bad? It's very large and complicated. The query language is very limited. Non-Windows GUI's are pretty bad (e.g. Solaris). I hope to see the Linux GUI and see if it's better than Solaris. It's expensive. Manual/doc overload.

      Our CC VOB server is a 384Mb Ultra-5 Solaris 7 server - pretty underpowered. However, it seems to work fairly well for us - 8 engineers onsite - about 100 over 3 sites(Europe,US and Japan). VOB syncs make remote development work for us. The ultra-5 has been the most painful, and initially highly unreliable, part of the package. It's a pity that Rational seem to be spending less time on developing their non-Windows client capability.

      I should mention that we do still use CVS though, for other projects. Another issue some of us feel with CC is the fact that things seem quite locked up in a proprietary DB format none of us really understand. Navigating a CVS repository, although sometimes hairy, can still be done. CC? I wouldn't know where to start.

      We're looking forward to trying subversion now though.

    15. Re:pretty gui's by Anonymous Coward · · Score: 0
      Since I'm not using the command line tool, the differentiation between rmelem and rmname (where the second presumably makes recovery easier) doesn't really matter as i can't see any equivalent distinction anywhere in the gui(s) (and that's what 95% of all normal users will be using).

      Using the UNIX GUI:
      Select File->VOB Object->Remove Name

      It will prompt you to check out the directory, then it will remove the file from the new directory version. This doesn't remove the file itself, only it's listing in subsequent directory versions. The file's revision history will be retained. After you do the remove name, you can access it again either by selecting the old directory version (by checkout or config spec rule), or by specifying the directory version specifically using an extended path name.

      To remove an element, you go to Admin->Element->Destroy Element. This doesn't just remove the file listing from the directory, it removes all traces of the file in Clearcase, including the revision history. But you should rarely, if ever, need to do this, and most CC admins don't give users permission to do it.

      i know of noone who has 'properly' deleted a file the first time they used clearcase.

      AFAIK, the only was to "improperly" delete a file in Clearcase is to check it out and then remove it using rm from the command line. That doesn't do anything to the revision history of the file or directory, it just removes the path to the object in your view so you will be unable to perform Clearcase operations on it without specifying the extended vob path name. You didn't actually expect Clearcase to be able to detect when you run rm, did you?

      Anyway, you shouldn't make that mistake very often if you use the Clearcase GUI exclusively, since the GUI disables deletion of checked out files.

    16. Re:pretty gui's by _Swank · · Score: 1

      the detail is appreciated. i actually don't use the normal gui(s) much at all because i find them relatively clumsy. instead, i normally use clearcase through the rational clearcase plugin for eclipse though there are some occasions when using clearcase explorer is more convenient. however, both of these seem to allow you delete a file (remove name i guess, but it's called delete) and make no indication that the directory is or will be checked out. they also don't seem to make any distinction on whether the file is checked out or not, they still allow the delete of a file.

  3. Clearcase... by Anonymous Coward · · Score: 1, Interesting

    Clearcase is where its at. I admit its nowhere near free, but I don't see anything coming close to rivaling it from either the commercial or free/open source space. As well, it ties into some of the other Rational Products pretty well, especially with UCM and Clearquest for bug tracking.

    1. Re:Clearcase... by Anonymous Coward · · Score: 5, Informative

      Clearcase might cut it for most corporate types. Sure it's got tons of features, but you'll get a groetesque design and a bad implementation for free.
      (Try scaling a clearcase server and you'll see how bad the design is... Hint: Adding more CPUs won't help you.) No, most people won't care, but you do if you need to scale it to several thousands of active developers.

      Even though I dislike the product, its has more functions than you'll ever need. Integration with different platforms and products are superb, if you're willing to pay...

      However it lacks in areas where the developer isn't fully connected (i.e. with LAN access to the view and vob servers).

      IMNHO, what the open source community, by definition, needs is something that'll work in a distributed (and disconnected) environment. Clearcase does NOT come even close to delivering that, CVS does, but functionality wise, BitKeeper blows them both away.
      I haven't looked at SubVersion in a long time (before it was self hosting) and it looked promising, but IIRC it lacked some of the more advanced functionality that BitKeeper has.
      Personally I'd much prefere using a completely free version. Not because I don't like to support the BitKeeper team (I'll buy the product if I use it commercially!), but because of the open logging function.
      It just comes down to the fact that I like my privacy...
      -oswa

    2. Re:Clearcase... by ethereal · · Score: 2, Interesting

      ClearCASE rocks in terms of scriptability, built-in triggers, etc. Also I much prefer branching individual files and using views, to the typical Open Source CM scheme of having separate trees. Too bad that the ClearCASE *nix GUI has gotten progressively worse for two major releases since their high-water mark (IMHO), ClearCASE 2.1. They've never fixed the problem where sometimes you click to select a version and it looks selected but isn't really, and in many cases have introduced GUI bugs, made the whole thing slower by using a special "properties browser", etc. I have a bunch of hacks in ~/.grp to get it customized back to the way that it used to work so that it's even halfway usable.

      --

      Your right to not believe: Americans United for Separation of Church and

    3. Re:Clearcase... by little1973 · · Score: 2, Informative

      I am working at a really large corporation and we are using clearcase. All I can tell CC is really sucks. CC always needs some maintenance. We have a dedicated CC expert and IT for maintaining CC. And CC is painfully slow if you compile something from the repository (at least on Solaris). So, we use the snapshot-view feature which is more like CVS. In short, we use CC as it were CVS.

      Of course, corporate policy forbids us to use CVS.

      --
      Government cannot make man richer, but it can make him poorer. - Ludwig von Mises
    4. Re:Clearcase... by Ignorant+Cocksucker · · Score: 0

      For sure. If you are SERIOUS about software development ClearCase is absolutely the only way to go.

    5. Re:Clearcase... by Anonymous Coward · · Score: 0

      We just started using clearcase (a few months) here at work and I must say i'm not impressed. Supposedly it has tons a functionality and features. All i've ever done is checkout update and checkin. At least when the clearcase servers haven't crashed, preventing me from doing any work for hours. It takes a team of support personnel to keep it running.

      I want a tool that is simple, fast and reliable. (clearcase is none of these)

      One of the more annoying features with clearcase is that most operations occur on single files at a time and its not easy to tell what's checked in/out /etc.

    6. Re:Clearcase... by kippy · · Score: 2, Informative

      (Try scaling a clearcase server and you'll see how bad the design is... Hint: Adding more CPUs won't help you.) Try adding more memory and distributing yor server duties over a cluster and that will help.

    7. Re:Clearcase... by Anonymous Coward · · Score: 0

      CC 5.0 seems to have brought the Unix GUI in sync with the Win32 GUI. I don't know if that's what you'd consider good, but its not too shabby.....

    8. Re:Clearcase... by Anonymous Coward · · Score: 0

      Clearcase scales fine. Put an additional VOB server in. Split VOBS as needed. Relocate VOBS as needed to said new servers. End of story.

    9. Re:Clearcase... by renehollan · · Score: 2
      Yes, but it scales poorly when you have several thousand developers mucking about in a single VOB.

      Clearcase scales well across multiple projects (well, DUHH!), but not well within a project.

      Been there, done that.

      --
      You could've hired me.
    10. Re:Clearcase... by renehollan · · Score: 2

      Clearcase certinly benefits from having a build manager on hand who knows Clearcase. Personally, I always thought the team lead should have this skill. The learning curve is steep though, and it is easy to fsck yourself up badly if you don't know what you are doing. The best advice in that case is "stop, read, learn, try to undo what you did. Rinse, lather, Rrepeat."

      --
      You could've hired me.
    11. Re:Clearcase... by Anonymous Coward · · Score: 0

      > All i've ever done is checkout update and checkin

      Yup, That's all that most developers do.... and make views.

      SCM groups will make branches, labels, strategys, toolsets to work with Clearcase.... there's a lot that can be done with Clearcase than you think. In the end, a good SCM group makes life easy for developers by only requiring the minimal thinking in regarding the tools. IE: Here's your config spec for Release X.Y.Z. You don't have to create it yourself, the branch and labels are already there. Developers develop. SCM help organize the development effort into something that can be managed and directed.

    12. Re:Clearcase... by abroadst · · Score: 1

      I've been using ClearCase at my current job for about 3 years. I hate it. Figuring out how to use it took a while, but the senseless complexity of the user interface isn't why I hate it. Rather it's because it takes a team of well-trained engineers to keep the thing running - but where are you going to find a single well-trained engineer that's willing to maintain a source control system?. Also, it's super unbelievably slow, even on fast hardware. It crashes sometimes, and it doesn't scale. It's supposed big strength is that it has so many features and can be used in so many ways. But who wants to mess around with playing with scripts and triggers and other arcana when there's actual work to be done on the code? Wouldn't it be better if it provided one simple way to keep track of your source code that worked rather than thousands of ways each filled with trouble? ClearCase provides a huge distraction to the development effort. Simply put, ClearCase is way overpriced garbage.

    13. Re:Clearcase... by MJovodji21 · · Score: 1

      Clearcase is great until you actually want to use it for something, or until something goes wrong.
      Good luck sorting through the Clearcase registry, or trying to recover someone's changes when it breaks.

      I've been using Clearcase for over 2 years now, and administering it for 8 months. We've been slowly making the switch over to CVS for the past few months, and it's amazing how straight forward it is. We haven't had a single problem.

      CVS is far more appropriate for us, especially since we have a fairly small development team. Perhaps Clearcase would still be ok for a very large corporate development department, but for most people CVS is more than adequate.

    14. Re:Clearcase... by Anonymous Coward · · Score: 0

      "(Try scaling a clearcase server and you'll see how bad the design is... Hint: Adding more CPUs won't help you.)"

      So every time you have a performance problem you go out and buy another CPU to add to your server? Are you often left scratching your head and saying to yourself "Well I have twice as many processors in there. It should be working twice as fast!"?

      As with any enterprise application, just adding more CPUs to a server isn't necessarily going to improve the performance of the application. It depends on where the bottleneck is. Memory and network bandwidth are very often more of a bottleneck than raw processing power. This is especially true in the case of ClearCase, which is a network bandwidth hog.

      Take the example of a web server: If I'm serving content via an ISDN line, to thousands or tens of thousands of people a day, I don't go and get more processors to improve people's browsing experience on my site... I go and get a dedicated T1 line!

      My point is: I know first hand that given the correct allocation of resources and an understanding of how ClearCase uses those resources, ClearCase does scale very well for large corporations that have large projects and large development teams. THAT'S WHAT IT WAS DESIGNED TO DO!

      Addmittedly for smaller projects that have less resources, it can be overkill and it can work at less than optimal efficiency.

    15. Re:Clearcase... by Anonymous Coward · · Score: 0


      VOB replication solves this problem.

      Also, you didn't mention CVS. How does it handle several thousand developers mucking around in a database at the same time?

    16. Re:Clearcase... by renehollan · · Score: 2
      VOB replication? Then you get replication overhead as checkins are propagaged, no? You can't win, you can only lose less badly when you have read and write contention.

      As for CVS, I never suggested it scales better, though, in some cases, it's lower overhead might make it seam that way. In fact, I liked working with Clearcase, but it didn't strike me as a tool that was good for projects with large numbers (say, hundreds, or thousands) of contributors, on large projects, unless you segmented the project (which you should do anyway).

      The combination of project segmentation and Multisite might be a winning combination, though.

      The biggest "problems" with Clearcase are the steep learning curve (though I have found learning CVS after Clearcase a pain because of what it lacks (directories as objects, views, etc.) and labeling overhead.

      --
      You could've hired me.
    17. Re:Clearcase... by Anonymous Coward · · Score: 0

      Um, if you have thousands of developers mucking around in a single VOB, you've got more important things to worry about than your the CM system you're using... There's something fundamentally wrong with the way you've broken your project up.

    18. Re:Clearcase... by ethereal · · Score: 1

      We're so far behind the curve - we've just managed to upgrade to CC 4 around here :) Maybe in a year we'll be at that exalted level.

      --

      Your right to not believe: Americans United for Separation of Church and

    19. Re:Clearcase... by renehollan · · Score: 2
      I didn't set any project up this way, I just note that Clearcase does not scale to handle this well. CVS may be better in this regard simply because it does less and has the notion of default unreserved checkouts, updates, and handles attempts at out of date checkins.

      Clearcase can do all that, to be sure, but the emphasis is on reserved checkouts, so the "lots of readers, few committers" sourceforge-style model can't be applied without some tweaking. The whole notion of a read-only VOB bucks the way Clearcase is intended to be used.

      --
      You could've hired me.
    20. Re:Clearcase... by Anonymous Coward · · Score: 0

      That's why we need Gnutcase, by Irrational Software. ;)

    21. Re:Clearcase... by Anonymous Coward · · Score: 0

      A good SCM tool will allow tech leads, project managers and others to easily create branches, labels and triggers as needed without requiring a fulltime engineer to do those things for them.

      Development moves smoothly when the developers aren't treated like children and given a sandbox to play with, but rather are given the tools and the knolwedge to use their tools to get their own work done.

    22. Re:Clearcase... by Kernel+O'trooth · · Score: 1

      We (the former EV8 team in Compaq/Digital's Alpha development group) looked at clearcase back in '96 or '97 and decided against it.

      1. The per seat charges were too high for what we got out of it.

      2. We'd heard annecdotal reports that the build environment wasn't as robust as we wanted.

      So, we used vesta! (www.vestasys.org) which is now available to the public. It runs under linux on Alpha and x86 platforms (others soon, we hope). It was extensible (we used it for software and hardware development). And it worked for a very large user base (130 users with hundreds of large builds per week.

      It rocked. I loved using it. I chose the system and never regretted committing the entire project to it.

      See the many different writeups on why Vesta is a better choice for many applications than CVS or other alternatives at
      http://www.vestasys.org/why-vesta.html
      and
      http://www.vestasys.org/doc/comparison.html

    23. Re:Clearcase... by pivo · · Score: 1

      My company recently switced to Perforce. It's OK, we're one of their bigger customers so we uncovered some performance problems which they've since fixed.

      One of the best features is the changelist, where you submit all files you're working on en masse, no chance of forgetting to check something in as often happens in CVS. One of the worst things about Perforce is its lack of an analoge to CVS annotate, and this lack makes me cry.

      I miss the simplicity of CVS, and the better integration in emacs (though perforce has an emacs minor mode too), and of course, not crying.

    24. Re:Clearcase... by Anonymous Coward · · Score: 0
      I'm surprised to find so many people dislike clearcase. I've been using CC at my last two jobs (both NT and UNIX and mixed environments) and have never had a problem with it. Here are the features from ClearCase that I think are a must in any CM system:

      • Versioned directories
      • The ability to pull out any version as ClearCase dynamic views do (this can easily be done with a userland NFS server).
      • The ability to live without being connected to a server (like CVS) and still work.
      • Cross-platform support. On Win32 it would be nice if the front-end were a SMB server.

      There is already an open-source project like this called Katie that seems qutie interesting.

    25. Re:Clearcase... by Anonymous Coward · · Score: 0

      everyone's job is not source control. In fact, most tools go with the approach that it's no one's job. Clear Case not only creates jobs that didn't exist before, but now you want everyone to dedicate the majority of their time to understand their productivity apps? That's Rational. (TM)

    26. Re:Clearcase... by renehollan · · Score: 2
      everyone's job is not source control. In fact, most tools go with the approach that it's no one's job

      Source control should be somebody's job, if only to ensure that you can rebuild the binaries you make and have backups as necesary. Version control is a logical extention of this.

      Whenever something is somebody's job, they're gonna set down rules. Sometimes these rules need to be locally broken in a way that doesn't affect others. This need not be trivial, but it should be possible. It seams reasonable that if an individual developer needs a custom fork to try something for a few days, they should learn a bit of the source control system so they know how to do it. This does not mean that all developers need to be experts in that system.

      --
      You could've hired me.
    27. Re:Clearcase... by Anonymous Coward · · Score: 0
      I didn't set any project up this way, I just note that Clearcase does not scale to handle this well.

      I pity your situation. Like the other poster said, if you have 1000+ developers working from a single VOB, you probably have BIG problems with project organization - and finding a more scalable version control system isn't going to solve them.

      CVS may be better in this regard simply because it does less and has the notion of default unreserved checkouts, updates, and handles attempts at out of date checkins.

      You can deny users the ability to make reserved checkouts in Clearcase, which is a good idea for most medium-large projects. Similarly, you can make the equivalent of reserved checkouts in CVS too. Clearcase also handles out of date checkins, and unlike CVS it has a really nice interactive merge tool. I hate the way CVS handles merging - I end up having to painstakingly inspect files after a CVS merge all the time.

    28. Re:Clearcase... by Anonymous Coward · · Score: 0
      However it lacks in areas where the developer isn't fully connected (i.e. with LAN access to the view and vob servers).

      Clearcase does offer snapshot views, which work more or less like CVS. They're exactly what you need to support disconnected users, and they are also useful for improving the performance of large builds.

    29. Re:Clearcase... by Anonymous Coward · · Score: 0
      CC always needs some maintenance. We have a dedicated CC expert and IT for maintaining CC.

      It's not just Clearcase. Every CM system I've used requires significant maintenance. At my last employer we had one project on Clearcase and another on CVS and it took more admin effort to support the team using CVS.

      And CC is painfully slow if you compile something from the repository (at least on Solaris). So, we use the snapshot-view feature which is more like CVS.

      It's a tradeoff. Working with dynamic views does put a lot of load on the view and vob servers. But I really think it's worth it. Working in snapshot views (or in CVS) is quite aggravating to most people. And the main reason why CVS was problematic at my previous job was because the developers had trouble keeping their trees in synch and up to date without a lot of coordination.

      If build performance is an issue with dynamic views, there are several things you can do.

      One option is to use dynamic views for your day to day development where you typically aren't building the whole tree very often. Then set up one snapshot view specifically for large builds (e.g. an automated daily or weekly scratch build).

      Or, you can do automated builds in a dynamic view and use Clearmake with wink-ins enabled. Then most of the time, your developers will just be pulling object files from that view and will only be compiling the stuff they're modifying.

      Finally, you can put the view and vob servers on different machines. Or better yet, if you have a large development team, designate multiple machines as view servers and host one subset of the team's views on each, and either replicate or subdivide your VOB onto multiple servers.

    30. Re:Clearcase... by Anonymous Coward · · Score: 0
      A good SCM tool will allow tech leads, project managers and others to easily create branches, labels and triggers as needed without requiring a fulltime engineer to do those things for them.

      Project managers and leads have better things to do than worry about administering the CM system. If you've got more than a dozen or so developers, you really need to have a single person managing the source tree. Otherwise, you just end up with confusion and your developers will keep stepping on eachother's toes.

      Development moves smoothly when the developers aren't treated like children and given a sandbox to play with, but rather are given the tools and the knolwedge to use their tools to get their own work done.

      Bullshit. If you don't set up the "sandbox", then development may proceed smoothly for a while. ... until you get to integration and testing where everything falls apart because all of your developers have taken the liberty to do things different.

    31. Re:Clearcase... by Anonymous Coward · · Score: 0

      If you have a system that is easy to administer and the use of said system is well communicated through the group, then confusion is eliminted and anyone can do what is necessary as long as what is being done is communicated to the rest of the work group.

      Granted, it may be ideal to designate one person to do maintenance on on CM system should the need arise, but in no way should it be a full time job just to set up branches and labels for daily builds.

      Bullshit nothing: If your developers are doing things different, then the right way to do things obviosuly is not getting communicated to folks. Daily integration builds will ensure this doesn't happen. The lack of developers doing things right and things falling apart is a sign of a SCM system that is too difficult for engineers to learn to use properly, and a system that is too difficult for you to do daily builds that ensures the quality of the groups work.

  4. Shome mishtake? by albalbo · · Score: 4, Informative

    Shurely, the Tigris project subversion (http://subversion.tigris.org/)??

    --
    "Elmo knows where you live!" - The Simpsons
  5. Simple answer. by Anonymous Coward · · Score: 3, Insightful

    "My question is exactly what would this 'better system' look like?"

    You said it, BitKeeper. It's there, it's very good, don't people have anything better to do than nagging about other people just charging for their own work?

    If you want to give away your work, please do (I'm happy to use it) but you are not BitMovers (the company) mom and have no business telling them what to do.

    1. Re:Simple answer. by SN74S181 · · Score: 4, Funny

      Now it's just a matter of some GNU programmers coming out with a knock-off version that's not as good, but good enough. First, though, we need to come up with a name. It has to be a clever twist on BitKeeper.

      I nominate:

      'ByteLoser'

      Who wants to slap up the SourceFarce page and start working on the icon?

    2. Re:Simple answer. by haizi_23 · · Score: 0, Flamebait

      my. . . you have some CLEVER naming conventions yourself -- SourceFarce -- ho ho ho, good one

    3. Re:Simple answer. by CoughDropAddict · · Score: 2

      You said it, BitKeeper. It's there, it's very good, don't people have anything better to do than nagging about other people just charging for their own work?

      Yep, I do actually. It's called writing free software with free tools on a free OS and refusing to waste a minute of my time investing money or effort into proprietary software that does nothing but limit me and control me, leaving me at the mercy of a company's whims and the size of my bank account.

      Don't you have anything better to do than try pushing proprietary, expensive software to a group of people from whose work you derive uncompensated benefit?

    4. Re:Simple answer. by Anonymous Coward · · Score: 0

      Ehhh. OpenSource doesnt work this way(in my experiense, and read the Cathedral and the Bazaar). First produce something that atleast work, _then_ slap it up at sourceforge.

    5. Re:Simple answer. by rabbits77 · · Score: 1

      Written like a true poseur!! Tell me, kid, do you know how to write software? Listen , I am a professional person and I expec to be paid for my work. How often do you see other professions give there services away for free? Do you ever expect a free magazine or newspaper? Of course not. Now go away, you're late for school.

    6. Re:Simple answer. by CoughDropAddict · · Score: 2

      Written like a true poseur!! Tell me, kid, do you know how to write software?

      Yep. I've written a significant amount of code for Audacity and PortAudio, and plenty more small patches for other projects along the way. I'm also in the process of writing this introduction to the ALSA API, filling a void where little good documentation exists. Not to mention that I'm working in the software department of a successful computer company.

      Listen , I am a professional person and I expec to be paid for my work.

      That's wonderful. I am a programmer and I expect free access and distribution rights to the source code of any software I use on a regular basis. There's enough good free software around that I can require this of the software I use and still find programs to do everything I need.

      Not that I'm opposed to you being paid for your work, but I'm not going to be the one paying you, especially since paying for proprietary software gets me a worse deal (no source code, no redistribution rights) than downloading free software for free.

    7. Re:Simple answer. by Anonymous Coward · · Score: 0

      If anyone is interested there is a public CVS server for developers use. http://cvsdude.kicks-ass.org

  6. I'm at a loss. by brad-x · · Score: 0, Redundant

    I'm strongly leaning on the fact that Linus wants to 'dare to be different'. Whenever people do this because they want to push the envelope, it always comes back on them.

    BitKeeper is an interesting idea, but in practice I haven't found it showstoppingly impressive. CVS is still one of the best revision control systems going, IMHO.

    However, history has shown that when tools like BitKeeper hit the spotlight and it's their time to perform, the kinks are worked out after fast. It stands a chance of being a good tool for the job, if Linus and co. manage it properly.

    --
    // -- http://www.BRAD-X.com/ -- //
  7. We use Perforce at work by WPIDalamar · · Score: 5, Interesting

    I've used CVS and Visual Source Safe (ick) before. But at my current job we use Perforce (a commercial product) and it rocks. There's clients for just about every known platform, a slick graphical GUI for windows (and they're working on a linux one), and there's this local webserver gui that works for all the platforms if you need something graphical to look at. The interfact to it rocks, the merging and branching rocks, and it is super flexible. We have some scripts set up so we can close bugs in our bugzilla database from some special tags in the description of a changelist (a changelist is what gets submitted when you check stuff back in).

    1. Re:We use Perforce at work by forgoil · · Score: 5, Informative

      I agree, Perforce is a very solid product indeed. And all the commandline tools are there for Linux, and so are the servers. I've used it both on Windows and Linux (both servers and clients) and it works like a charm.

      And in case you don't like their fortcomming linux GUI (I hadn't heard about that before, thanks WPIDalamar) they do provide you with an API so you can make one of your own (KPerforce ^_^), which shouldn't take that long really.

      The pricing seems very high for an individual, but their pricing is real cheap for this kind of software (for companies) and you can use it without a license but then with max two client specifications. They also have good support (something that is not common unfortunatly).

      http://www.perforce.com -- go there and check it out. If you hate paying and want to make your own set of tools you can learn a lot from Perforce.

      And I agree, source safe is icky, and so is CVS and source offsite. I haven't had a reason to try out BitKeeper so I unfortunatly don't know how it stacks compared to Perforce.

    2. Re:We use Perforce at work by digerata · · Score: 5, Informative

      Also, they do open source licensing. If you are a certified open source project (I guess they just checkout the project???), you can get licenses for free.

      --

      1;
    3. Re:We use Perforce at work by Anonymous Coward · · Score: 0

      I love Perforce, and use it everywhere - last 2 jobs, and at home (how many geeks do you know with a source control system at home???)

      Besides, Microsoft uses Perforce (aka SourceDepot) instead of SourceSafe for their source code - what does that tell you?

    4. Re:We use Perforce at work by Uksi · · Score: 2, Insightful
      We use Perforce as well, and I love it. After using Perforce for months now, I can't go back to CVS. Branching, labeling features all make sense.

      Creating a branch is very much like copying all the source to another directory (e.g. you had all your source in mysoft directory, which is your trunk.. when you branch, you copy that to mysoft2 directory and now you have a branch.. best of all, every new branch takes up a miniscule amount of disk space, storing only the files you actually change). And then Perforce supplies you with powerful integration tools to let you synch changes across branches.

      It has some flaws, like no version control on client, branch and label specs, so if somebody messes up the definition of a branch, you can't step back to the last version, but otherwise it's an excellent source code management (or whatever the right term is) system.

      If anyone's curious about P4, they can read the manual.

    5. Re:We use Perforce at work by RadioheadKid · · Score: 3, Informative

      I love perforce too. And if you are either an open source developer or you just want to use it for personal use (two users max) you can use if for free. Check out their licensing here (scroll down for open source info) and here

      Plus it's so easy to install on a linux server. There's a bit of a learning curve with how the system works but in less than a day you'll be checking in and out and branching without a problem.

      --
      "Karma can only be portioned out by the cosmos." -Homer Simpson
    6. Re:We use Perforce at work by mpsmps · · Score: 2, Informative

      There is also an Emacs client for Perforce. It's not completely full-featured, but it means you don't have to bother with any of the standalone clients when doing basic editing and version control tasks (You are using Emacs as your editor, aren't you?). When I need to do something fancy, you still need to use one of the standalone clients (GUI, commandline, or web).

      Besides the Emacs integration, there are integrations for Developer Studio, Windows explorer, Perl, Python, Forte, Eclipse, etc. These are all available at Perforce User Interfaces & Integrations.

    7. Re:We use Perforce at work by GreenLantern · · Score: 2, Interesting

      I hate to be an also-ran but, we use Perforce here also. In my history as a developer I have used RCS, CVS, Continuus and Visual Source Safe. The only product that comes close to Perforce in functionality Continuus. The difference is that Perforce actually works and you don't have to wait for hours to complete sync and integrate operations while hopeing it won't crash. Perforce is also less expensive than Continuus and the server runs on more platforms including Linux.

    8. Re:We use Perforce at work by e40 · · Score: 3, Interesting

      I tried to use Perforce, but I couldn't get my repository (CVS, started in 1990 with version 1.1 or 1.2) converted to a depot. There were two tools for doing it, both user contributed. They just didn't work.

      I talked with the p4 staff and they said they would help me do it (tweaking the tools if need be, I assume). I was just a little too nervous, though, about not being able to try it before I committed all those $'s.

      To be fair to the conversion tools, I believe since my repository is so old, that the format of the RCS files is slightly different than what would be created today by CVS. Back then, CVS actually used the external RCS programs to operate on the ,v files.

    9. Re:We use Perforce at work by mikec · · Score: 2

      I use Perforce, too, and I agree it's very good and the basic interface would be a good model for an open-source system. However, I don't think Perforce itself would work for a typical open-source project. Open-source projects tend to be extremely distributed, with lots of geographically distributed groups of one or two. Perforce basically doesn't attack that problem.

    10. Re:We use Perforce at work by croftj · · Score: 1

      I to use Perforce at work. It's great! The only area that it falls down compared to CVS is it's ability to handle code generated from outside sources. It can be done but CVS just does it better.

      The act of using client specs and branch specs over the modules file make Perforce considerably more robust and helps in the hope of being able to build older versions of a product as it evolves.

      Now if we could only merge the good points of CVS, Perforce and Bitkeeper into one opensource version control system we could rule the world!

      --
      -- Many men would appreciate a woman's mind more if they could fondle it
    11. Re:We use Perforce at work by Anonymous Coward · · Score: 1, Interesting

      How long ago did you try the CVS -> Perforce conversion?

      I'm the author of one of the conversion tools, and am now maintainer of the other. I'd be happy to help.

      - Richard Geiger
      Open Source Engineer at Perforce

    12. Re:We use Perforce at work by jkujawa · · Score: 3, Informative

      We use perforce, too. We've been less than satisfied with it. I'm don't know the size of the companies people with positive views of perforce are working for, but with a couple hundred developers, and on the order of a couple of thousand different code lines, the perforce server often grinds to a halt. More hardware has been thrown at it, more disk, etc, and no one can seem to figure out where the bottleneck is. It's very unpleasant when checkouts are taking 10 minutes, in the middle of the day.

    13. Re:We use Perforce at work by Anonymous Coward · · Score: 0

      Perforce over SSH works just fine.
      I have worked in groups where many developers were remote and all used P4/ssh, some on Linux clients some on Win clients, all transparently.
      Yes, P4 does rock and with the company offering 0$ licenses to individuals and open source projects, its time to throw out CVS.

    14. Re:We use Perforce at work by J�r�me+Zago · · Score: 1

      For your information, CM Synergy (was Continuus) 6.2 does run on Redhat Linux 7.2 (client and server), although I've not tested it. Like you, I prefer Perforce to CM Synergy though, I've used both (especially CM Synergy) and I've found Perforce much more intuitive/logical (and easier to install).

    15. Re:We use Perforce at work by curunir · · Score: 2

      I totally agree...I've used Perforce, SourceSafe, CVS and PVCS and Perforce was (and is) far and away the best I've used. From our senior developers to the front-end html people, everyone could learn it pretty easily.

      Plus it has some really cool features. The ones I like most are: integration with Ant, the ability to monitor individual files/directories for changes (it sends email when changes occur...our dba *loved* the ability to be alerted whenever someone else checked in changes to db scripts) and allows grouped check-ins.

      Pretty much the only negative thing I can say about it is that it isn't open source.

      --
      "Don't blame me, I voted for Kodos!"
    16. Re:We use Perforce at work by Anonymous Coward · · Score: 1, Informative
      Yeah, but it is a pain to get an open source project license.

      A major downside to perforce is that it is terrible at working in a disconnected environment, thus, it isn't suitable to open source development.

    17. Re:We use Perforce at work by pivo · · Score: 1
      how many geeks do you know with a source control system at home?

      Well, pretty much all Linux and *BSD users I'd say, since CVS is usually in the default distribution of these systems.

    18. Re:We use Perforce at work by pivo · · Score: 1

      The feature of CVS I miss dearly is annotate, something that would tell you who made the last change to each line of code in a file. The really nice integration with emacs meant that you could type a few keystrokes and have this annotated buffer appear in seconds. Perforce doesn't do anything like this (at least as quickly and easily), and it doesn't look like they're going to any time soon.

    19. Re:We use Perforce at work by pivo · · Score: 2, Informative

      We also had some performance problems with perforce. They've made a few updates to their software on our reccomendation and things generally seem a lot better. I'm not an expert, but here are a few things to keep in mind:

      Avoid 'p4 dirs //*'.

      Avoid remote depots. Perforce's implementation may slow down commands such as "p4 dirs"

      Do not create clientspecs or branchspecs with "//someProduct/*/main/..." or a similar file spec.It may block all update access (p4 edit and p4 submit) to all of Perforce for all users for five to fifteen minues. Explicitly list depot, project, and codeline in all branch specs.

      That's a short list, our release engineering dept. has a long page of things not to do with perforce. I have to say, we've gotten it to run pretty quickly now, after several months of getting used to it.

    20. Re:We use Perforce at work by ncarey · · Score: 1

      What do you mean? perforce was specifically designed to perform well over wide area networks. That's why there's a daemon lurking on the server.

      --
      N. --
    21. Re:We use Perforce at work by e40 · · Score: 2

      Richard, I tried twice. First, about 2 years ago, then last year. Both failed. I talked with someone in tech support (forget the name). He was responsive to email, but said he couldn't help until we purchased the product. I was reluctant to purchase until the conversion was done. Catch-22.

      Currently, I'm going to wait and see if subversion comes out in a timely fashion (they are making milestones pretty well) and if the conversion process works. svn, as described on their project page seems very good. I'm hoping it is as good in practice. If not, I'll probably be contacting you again.

    22. Re:We use Perforce at work by Anonymous Coward · · Score: 0

      No, I don't use emacs, you stupid fuck. No one gives a crap as to your editor preference, and no one wants you to fucking force it on us.

      Arrogant assholes like you make me hope MS takes over.

    23. Re:We use Perforce at work by dbrower · · Score: 1
      This presentation describes how MS uses SourceDepot, which sounds like Perforce. This article suggests it is Perforce too, and that it was silver bullet.

      Too bad I'm stuck with clearcase, which is only tolerable if you have less than 50 local developers and someone full time to mind the CM system. Yuck.

      -dB

      --
      "It if was easy to do, we'd find someone cheaper than you to do it."
    24. Re:We use Perforce at work by lapointe · · Score: 1
      We have used Perforce for a group of up to 75 developers, 30000+ files, across 3 geographic sites. Currently we do about a 1000 changes a year on 6 inter-related products. I can attest that it is very robust and is the best product we tried across a WAN. We have been very happy with it, especially since it was fairly affordable (compared to things like ClearCase and Continuus).

      Perforce concentrates on doing one thing well - tracking of software changes. It is not intended to be a work tracking system, which some of the more expensive products provide. It does not provide a GUI (although, why would you ever want to leave emacs anyway?). We use it integrated with our own web-based work management system and did not have to adapt our practices to it. The merge capability is excellent.

      It's weakness are tolerable and somewhat unobvious. We felt it important to be able to compare changes in aggregate releases for debugging and reporting purposes. We found no products that do this well. The bookkeeping for this is a little tedious in Perforce and somewhat prone to misreporting old changes from deleted files. The form-based interface can also be a little confusing for things like branching - I see no reason why this could not be simplified.

      In looking at configuration management, I think you have to concentrate on some of the basic principals:

      like always knowing what you have

      like being able to monitor changes in the software

      like the tool being an aide to getting work done, not a barrier

      like the tool supporting your change process, not imposing it's own

      It is very difficult to evaluate some these products (mainly due to pushy sales people). Perforce was easy to evaluate and worked well for us. Putting in Perforce (migrating from CVS) was easy. Don't be fooled by a fancy GUI.

    25. Re:We use Perforce at work by jrstewart · · Score: 1

      The feature of CVS I miss dearly is annotate

      Have you tried the p4pr program from Perforce's supplemental tools page? It does pretty much what you want, albeit slowly for our large (several million LOC) repository. It doesn't have support in the p4-emacs integration yet but I'm working on some.

    26. Re:We use Perforce at work by pivo · · Score: 1

      Yes, I did try it back when we were having severe performance problems and decided it was too slow. I'll have to try it again now that we've solved those problems.

      I'd love to get the emacs integration, that'd be perfect. I'm glad to hear you're working on it. Do you expect that it'll appear on the perforce supplemental tools link or if not, where should I be looking for it once it's available?

      Thanks!

    27. Re:We use Perforce at work by jrstewart · · Score: 1

      I'd love to get the emacs integration, that'd be perfect. I'm glad to hear you're working on it. Do you expect that it'll appear on the perforce supplemental tools link or if not, where should I be looking for it once it's available?

      When I finish (it's on the back burner at the moment as I'm busy with real work) I plan to submit it to the maintainer of p4.el, the p4-emacs integration package. If he doesn't want it I suppose I'll try to get it on the supplemental tools page.

    28. Re:We use Perforce at work by forgoil · · Score: 2

      Wasn't that supposed to be BitKeepers big feature? I have never had any use for it, but I can see that a different strategy would be neccessary then,

  8. Building on top of giants by woodja · · Score: 0, Redundant

    There are many good tools that have been around for a long time. CVS is the obvious example. Maybe what should be considered is enhancing these tools to match some of the capabilities of their commercial counterparts. A list of capabilities can probably be summarized by the discussion that follows.

    1. Re:Building on top of giants by gstein · · Score: 1

      Please feel free to examine the CVS source code. After a few months of trying to understand it, then you'll feel comfortable to make a change. Five things will break. You'll fix two and create another problem somewhere else. Scratch your head, and fix that somewhere else, and two more problems will appear. Now you have six problems introduced, and your feature that you added still doesn't work.

      Really. Try it.

  9. The choice is clear by BoBaBrain · · Score: 5, Funny

    Shouldn't we just use whatever source control system the CVS developers use?

    --
    I am a Karma Library.
    1. Re:The choice is clear by L1nUx+h4x0r · · Score: 0

      They just rename files to .old and .bak for awhile, then gzip it all and copy it into a directory.

      --
      The GPL makes software more like your mom. Free and open to all.
    2. Re:The choice is clear by NorthDude · · Score: 1

      I tought about it, and yes, I think it was meant to be funny! Sorry 'bout that...

      OTOH, I'm pretty sure the CVS dev team uses CVS...

      --


      I'd rather be sailing...
    3. Re:The choice is clear by BoBaBrain · · Score: 1, Redundant


      I'll be sure to use moderator friendly humour tags from now on.
      </HUMOUR>

      --
      I am a Karma Library.
    4. Re:The choice is clear by Anonymous Coward · · Score: 1, Interesting

      Microsoft (who makes Visual SourceSafe) uses their own version control system (not VSS). I wish they would make that available instead of VSS.

    5. Re:The choice is clear by Anonymous Coward · · Score: 0

      I mwas joking with the guy, no need to mod in down! You freakin' moderator!

    6. Re:The choice is clear by RollbackRelease · · Score: 1

      Microsoft use p4 for some things and use clearcase for others . Suspected SCM platform for VSS is clearcase. Any other info ???

  10. More open-source revision control systems by dglo · · Score: 5, Informative

    Subversion isn't the only open-source revision control system out there. Check out these projects as well:
    OpenCM
    arch
    Stellation
    PRCS

    1. Re:More open-source revision control systems by Tei'ehm+Teuw · · Score: 2, Interesting

      Now, going against all political correctness, what about the versioning system coming with .Net? It's clean, powerful, easy to use and was built from the ground up for collaborative development. Yeah it may be from M$, but it's still a powerful option. Why shoot yourself in the foot just on the basis of "we don't like them"? Even if the product is better?

    2. Re:More open-source revision control systems by Bruce+Stephens · · Score: 4, Informative

      Also Aegis

    3. Re:More open-source revision control systems by Azar · · Score: 1

      One that's also been around a while is Aegis. It was first released in 1991, so is not a newcomer to the scene.

      I haven't used it personally, so I can't vouch for how well or poorly it works. I was looking into Source Code Control programs a while back and decided on good old CVS. Don't forget a GUI.

    4. Re:More open-source revision control systems by pmz · · Score: 2

      Why shoot yourself in the foot just on the basis of "we don't like them"?

      Not choosing Microsoft's products is not a shot in one's own foot. It is a shot in theirs.

      History repeats itself, and the versioning in .NET will probably be unsupported in a few years and you'll be recommending Microsoft's next biggest and smelliest system, whatever that may be.

      For something so fundamental as version control, it is best to go with proven things: SCCS and CVS are decent and free, and there are companies such as Rational and BitKeeper when you need something decent and not free. Honestly, even something as simple as SCCS and shell scripts can go a long way for small to medium-sized projects with almost no risk that SCCS will suddenly go out of fasion (it's probably 15 to 20 years old by now and still useful).

    5. Re:More open-source revision control systems by MarkCC · · Score: 3, Informative


      Just a minor correction: Stellation is now out, open-source. The
      correct website for our open-source project is
      http://www.eclipse.org/stellation.

    6. Re:More open-source revision control systems by n1k0 · · Score: 1

      I believe you're talking about assembly (DLL) versioning; the 'new' method attribute in C# is also a part of this system. I don't know of any source code versioning tools that ship with any of the (free or commercial) .NET implementations.

      niko

    7. Re:More open-source revision control systems by 4of12 · · Score: 2

      For me, all the hype and PR have tended to obscure what's really in .NET. Also, many of the language interfaces to it (VB, ASP, C#) do not have open source implementations. (Maybe Miguel de Icaza will be done soon:)

      That said, there are probably some really good sound technical ideas hidden in .NET after the surrounding marketing has been washed away.

      Subversion lets you use different low level layers for actually storing files, pluggin things through an API.

      That great idea is compounded by their objective of using WebDAV as a lower level layer.

      I like the idea of having an XML description of actions that need to be taken for a version control system. Perhaps .NET has some good ways for doing this, but I'm fearful of a simple open source tool acquiring too much bloated overhead (much in way that SOAP bloats XML-RPC) that could slow it down and make it dependent on more network activity than is always necessary.

      --
      "Provided by the management for your protection."
    8. Re:More open-source revision control systems by __aasmho4525 · · Score: 2

      i'm absolutely shocked that more people don't know about aegis.

      this thing corrects almost every design flaw that cvs has (and there are a lot of them due to its lineage).

      at this point, aegis has gotten no attention whatsoever, so now lots of redundant projects are underway to supplant it.

      i just don't know what exactly to do to get it coverage.

      Peter

    9. Re:More open-source revision control systems by [Xorian] · · Score: 4, Informative

      There's also Vesta, which has some pretty cool features

      --
      CVS is teh suck. Use Vesta instead.
    10. Re:More open-source revision control systems by AeiwiMaster · · Score: 1

      Yes, Aegis is very cool.

      But i does have a problem.

      Development must be done on a shared file-system.

      So, it is not useful for project developed over the Internet.

    11. Re:More open-source revision control systems by ethereal · · Score: 1

      Well, if it met the accepted standards of other source code control systems (free or cheap, portable to almost any platform, and possibly with source code available) then we'll take a look at it. Microsoft seems to have some problems meeting those requirements based on past experience, though, so I wouldn't hold my breath.

      It's not that we don't like Microsoft; it's more like Microsoft doesn't like the rest of the computing world that's not Microsoft.

      --

      Your right to not believe: Americans United for Separation of Church and

    12. Re:More open-source revision control systems by Spruce+Moose · · Score: 1
      Not so. Check out aedist -send and aedist -receive from Chapter 11 in the reference manual.

      Much like BitKeeper really.

    13. Re:More open-source revision control systems by Anonymous Coward · · Score: 0

      what are you talking about? SOAP bloats XML-RPC ... did you even read that web log? Do you have any idea what you are talking about?

    14. Re:More open-source revision control systems by AeiwiMaster · · Score: 1

      Okey, It is possible to develop over the Internet with aegis.

      But it is not practical.

      Aegis is not transplant to if the repository is locale
      or on some server on the Internet, like pserver does for CVS.

      I think that if aegis could fix this it would be more popular.

      Because many open source projects could benefit a lot from using aegis
      development model.

      Knud

    15. Re:More open-source revision control systems by DunbarTheInept · · Score: 2

      The quality of a program is irrelevant if you have to run it on top of a bad OS. MS makes okay apps. The problem is that they have keep releasing them for the worst OS on the planet.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    16. Re:More open-source revision control systems by Florian+Weimer · · Score: 2

      Distributed development with Aegis is different from CVS, of course, but it mirrors the way some projects are run (for example, the Linux kernel up to the introduction of BitKeeper).

  11. one word: patchsets by kix · · Score: 3, Interesting



    add that to cvs and make it actually work correctly and it would be pretty good.

    at least that's what I miss the most when using cvs - the ability to change several files and commit them at once and when I do an update on a file it sould figure out all the dependencies on all other files ant update those as well. how sould it figure this out? simple - all the files that were commited at one time sould be also updated together, because it is bloody likely that they depend on each other.

    of course this process should be repeated on all files that are a part of the patchset so that after updating a single file to a new version all the other files are compatible with it.

    and yes, I know this could be theoretically done with tagging but then I would have to tag all files when commiting every time and it still does not handle the case when one file of the patchset depends on some other patchset.

    --
    I am SO cool I can keep meat fresh for a WEEK!!!!
    1. Re:one word: patchsets by Ivan+Raikov · · Score: 2

      and yes, I know this could be theoretically done with tagging but then I would have to tag all files when commiting every time and it still does not handle the case when one file of the patchset depends on some other patchset.

      Not true. CVS allows you to create the so-called modules, which can be groups of files or a directory. Then you can use commands like `cvs ci modulename' or `cvs co modulename' in order to update/checkout only certain sets of files.

      Not sure about your second case, but it sounds more like bad organization than anything else -- have in mind that CVS allows you to create module aliases which refer to groups of modules. Not exactly detecting if a single file in a module depends on files in another module, but still...

    2. Re:one word: patchsets by kix · · Score: 1

      ok, fair enough, but that still does not what I want it to do - basically I want it to create a new module every time I commit a bunch of files - which can be in several directories.

      lets say I have 3 files:

      a,b and c

      now I change b and c and commit them. now I change a and c and commit them. now I go to another server that also had the original files and do an update on a and now it sould figure out that a was commited with c and try to update those and then notice that c is out of date and figure out that the last time c was commited it was commited together with b and therefore it must also update b and so on until there are no more dependencies.

      --
      I am SO cool I can keep meat fresh for a WEEK!!!!
    3. Re:one word: patchsets by Ivan+Raikov · · Score: 2

      now I change b and c and commit them. now I change a and c and commit them. now I go to another server that also had the original files and do an update on a and now it sould figure out that a was commited with c and try to update those and then notice that c is out of date and figure out that the last time c was commited it was commited together with b and therefore it must also update b and so on until there are no more dependencies.

      OK. So when you do cvs update in a directory that has been checked out, CVS is going to update all files that were modified and committed in the repository after the checkout you made in the current directory. Did that make sense?

      Here's an example:

      [server2]$ cvs co dir1 # check out source code on server2
      [server1]$ cvs ci b c # commit b and c on server1
      ...
      [server1]$ cvs ci a c # commit a and c on server 1
      [server2]$ cd dir1; cvs update
      cvs server: Updating .
      U a
      U b
      U c

      All three files that we just committed were updated on server2. If we don't want to update _all_ modified files in a directory, we can specify a module comprised of only the subset of files we're interested in, and work with this subset instead.

    4. Re:one word: patchsets by kix · · Score: 1

      well, yeah, sore, I can update all files but that's the thing. I don't want to update all files, just the ones that I need (expand my example so that there are more than 3 files in that folder) and it would be pretty annoying to create a new module every time I commit something - I would need to do this, because the files that I commit are not the same ones most of the time.

      I know that sounds weird, but here's why. I work on a web content management software and we have several servers where it is installed and client websites use it there. now a client wants a feature that their version of the code does not have, so we add the feature to our development site and test it there and when it is finished we commit it and then we have to either manually figure out all the files that have changed and update those on the client server. why not just update all of it? well several reasons - one of them being that a client won't get a feature that some other client wanted and the other being that sometimes the code that gets checked in is less than perfect and the less code we update on the client's server the less chance that it will break something.

      so - basically I want to be update _only_ the bits that must be updated for a feature to work.

      and yes, I suppose I could do this with modules, but it would be a lot of manual work and that is what the SCS is supposed to help avoid.

      and do modules have dependencies? can I make a certain version of a module depend on a certain version of another module?

      --
      I am SO cool I can keep meat fresh for a WEEK!!!!
    5. Re:one word: patchsets by Ivan+Raikov · · Score: 2

      Oh, I see. Indeed, in that case the proper way to go with CVS is to create a branch and modify the files in it to your customer's preferences. For example, you could have a branch called "bobs-patches", that contains the changes Bob needs.

      Whenever you make bug fixes in the main source tree, you would then use the `cvs update -j' command to update "bobs-patches" to contain the bug fixes also. But of course, I'm assuming that you branch once and you maintain branches for each customer. If you do very small changes frequently, then CVS would probably be getting in the way all the time. But in that case, I'd argue that most revision control systems would probably be getting in the way.

    6. Re:one word: patchsets by kix · · Score: 1

      well, yes, again, I *could* do this with branches, but I often need to put the feature that was created for one client back in the main tree so that other clients can get at it as well and it is also necessary from time to time update all of some customer's code to a new version.

      so in that case I would have to merge the changes for the customer to the main tree (but not necessarily all of them :) ) - once again, merge back only the files that need to be changed for the feature to work and that leads us right back to where we started. now aint recursion cool :)

      and then create a new branch for the customer to make changes on.

      so the problem is still there and I think the only solution to it is using patchsets and incrementally updating other servers when needed so I don't have to mess about with lots of trees and remember what feature is in what tree - I can be safe that in the development server there are always the latest features in the main source tree.

      but yes, doing it with branches is possible, but still, it seems to be more work than it sould be. and some other versioning systems support the idea of patchsets (although most have different names for the same feature) and I really see no reason why cvs shouldn't support them, but other than that it's still pretty cool :)

      and if anybody has a better idea how to manage the mess I have described - please let me know, it would be greatly appreciated, although I doubt that many other projects have quite the same rules apply to them...

      --
      I am SO cool I can keep meat fresh for a WEEK!!!!
  12. One thing must exist by truthsearch · · Score: 4, Interesting

    Absolutely key is (relatively) easy integration with IDEs. Preferably a nice set of APIs for any IDE creators to use to interact with the version control server. I would imagine those same APIs could then be used by any GUI developers of the version control system. IMO without the ability of the system to integrate well with IDEs adoption would be slow.

    1. Re:One thing must exist by J0ey4 · · Score: 1

      Most Slashdotters are probably aware of this, but KDevelop is a great IDE that ships with KDE and has IMHO phenomenal CVS integration. Just my $0.02 USD

    2. Re:One thing must exist by Anonymous Coward · · Score: 0

      What is with everyone's fascination with IDEs. Having an excellent editor is much better than having an IDE. You code more than you click buttons. In fact, the editor should be built first and then maybe put an IDE on top of it.

    3. Re:One thing must exist by pmz · · Score: 2, Interesting

      Other than adding a great deal of complexity to an already complex system, do graphical IDEs really contribute anything useful?

      The time spent learning an IDE whose scope is pretty narrow is time that could have been spent learning general widely-useful tools, such as vi or emacs, make, and sh.

    4. Re:One thing must exist by Anonymous Coward · · Score: 0
      How about auto-complete based on reflection?

      For example, try this in emacs python mode:

      import sys

      sys.M-/

      Nothing happens. Not only that, but if you type in an invalid method, Emacs will happily allow you to auto-complete with it. In any other Python IDE out there you'll get a list of methods retrieved via reflection.

      Memorizing method and property names is really a waste of mental activity that could be better used by designing algorithms, architecture, etc. Especially as systems become more complex. I imagine the python Standard Librarys consist of hundreds of objects and thousands of methods.

    5. Re:One thing must exist by pmz · · Score: 1

      Memorizing method and property names is really a waste of mental activity that could be better used by designing algorithms, architecture, etc.


      This is why window managers allow you to open multiple windows, one of which may contain API documentation. Eventually, one learns the method and property names, anyway, which can make auto-completion seem like excess baggage. The resulting knowledge of the API is then crucial to designing future algorithms and architectures that use that API.

    6. Re:One thing must exist by ethereal · · Score: 1

      I'll agree with that - after a few months stuck using Visual Basic, I found that it was very difficult to move back to real programming exactly because I was used to the crutch of hitting TAB to fill out the property name or using '.' to find out the available properties. I had to train myself to attain my old level of API knowledge, and get my fingers to quit doing TAB.

      And no, I didn't find that "Intellisense" really made me that much more productive; I still had to look up what the API did, otherwise I'd just use things in ways they weren't supposed to be. Although the tab-completion does explain why Windows-oriented source code is so damn wordy all the time.

      --

      Your right to not believe: Americans United for Separation of Church and

    7. Re:One thing must exist by gstein · · Score: 1

      Subversion is designed as a set of libraries. There should be no problem integrating Subversion directly into an IDE (none of CVS's "fork a process" crap and hope we can parse the output).

      In addition, we have Python bindings already (via SWIG) and will have bindings for all other interesting languages when we release 1.0 (Java, Perl, TCL, Ruby, Guile, etc), also through SWIG. That should simplify integration into things like Eclipse or NetBeans.

    8. Re:One thing must exist by Anonymous Coward · · Score: 0

      I have noticed, that cvs integrates fairly well with my favorite IDE (bash + vi).

  13. Need new languages by Bookwyrm · · Score: 5, Interesting

    Probably to make the 'next leap', so to speak, in version control systems for programming is to design or modify a language so it is more version control friendly, or add much more language-sensitivity to the version control system.

    Most people will probably hate this, but for instance, if a comment for a specific line/block of code always had to appear in a specific area or syntactically consistant way such that the version control system can recognize that if a piece of code changed, but not the comments for that code, it could ask if the comments for the code need to be updated as well. Or if a function's parameters or return value have changed, whether or not all instances/uses of that function have also been changed, etc.

    That is not to say that you cannot create a great system on top of existing languages, but that perhaps making some minor tweaks in the language to make the language itself easier to manage/version, then this may open up new tool possibilities.

    1. Re:Need new languages by des09 · · Score: 2, Interesting

      I was just thinking exactly the opposite thing... as a developer who works with Java, VB, XML, HTML, JavaScript, SQL and the occasional bash script, I think the problem is that the version control systems know nothing about the languages. I think the main issue is that version control is it is viewed as a control system, not a development tool, something to help deliver the highest quality code.

      Especially with Java and cvs I am always frustrated that CVS does not know the difference between a .properties file, a jar, .java etc, and more to the point, CVS make refactoring across packages a very laborious and time consuming task. Visual SourceSafe and VB are better suited to each other, but still no great match.

      --
      .sigless since 2003
    2. Re:Need new languages by jhines · · Score: 3, Interesting

      Don Knuth's language web had an interesting feature, the ability to generate documentation from the same source code.

      I think coders would be a lot better at commenting their code, and writing documentation if it was all integrated.

      The ability to easily document a functions purpose, used data, and other information would be nice.

    3. Re:Need new languages by billnapier · · Score: 1

      I think this change would be better implemented on a project by project basis rather than globally for a language. There is nothing I hate more than a language that enforces that enforces coding styles (in either indentation, commenting, or even naming). Coding style should be done on a project by project basis based on what works for that project, not set by fiat by the language police.

    4. Re:Need new languages by Annnoying+Coward · · Score: 1

      I can't see why this kind of setup would require a certain coding style. All that is needed is knowledge of the syntax and a parser. As far as I can see, the parser does not need to fully understand the language, just the basics like blocks, functions (methods), variables (attributes) and of course comments (and inner comment syntax like javaDoc).

      --
      sigh
    5. Re:Need new languages by aled · · Score: 1
      Java does just that with Javadoc, used by almost just every programmer.

      You could do the same with C/C++ using Doxygen, a free tool that implements Javadoc style documentation for C.

      --

      "I think this line is mostly filler"
    6. Re:Need new languages by Anonymous Coward · · Score: 1, Informative

      Everybody who thinks javadoc is the same as literate programming (web) really needs to do some google searching or something to find out what literate programming is about.

    7. Re:Need new languages by MarkCC · · Score: 2


      I agree completely. One of the goals of the system that I'm
      working on (Stellation) is the integration of pluggable
      semantic components for particular programming languages.

      Our basic idea is that if you don't know the language that
      something is written in, you treat it as text, providing all
      of the capabilities of a system like ClearCase. But if you
      do know the language, take advantage of that support, and
      provide extra, language specific capabilities.

      -Mark

    8. Re:Need new languages by Twylite · · Score: 2

      There is a natural extension to this which is just begging to happen: dependancy analysis and locking and/or approval mechanisms on a sub-file basis.

      Essentially, if the SCM can parse the language, it can figure out what its looking at (classes, members, functions, etc), and what other parts of the entire source code use what its looking at.

      Combined with an approval mechanism, the potential for code auditing is staggering: audit a function and mark it as such. No function can be considered audited if it calls a function which is not audited. If a function which was audited is updated, all functions which call it (in the new project revision) are no longer considered audited.

      Functions and function documentation are audited as a unit. The should be obvious, because the idea of invalidating the stamp of approval on functions which call altered code is based on the idea that pre/post conditions may not have been properly disclosed or checked.

      A class cannot be considered audited until all members are audited, and a file requires all contents to be audited.

      Implementing a system like this for a languge like Java would not be tremendously difficult; but C++ (especially) is a very complex language to parse and analyse in this manner.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    9. Re:Need new languages by stripes · · Score: 2
      A class cannot be considered audited until all members are audited, and a file requires all contents to be audited.

      Implementing a system like this for a languge like Java would not be tremendously difficult; but C++ (especially) is a very complex language to parse and analyse in this manner.

      Java can let you load a class by name and call it. The name can be dynamically constructed. So any function that does this is unauitable. (C++ can normally also do this, but there is no standard way)

      In both languages any virtual (or non final) member function might be a call to a never seen before class (if, for example you are a libarary).

      I don't think C++ is any harder to analyse in this way, both are quite difficult, and full of big nasty traps. C++ is quite a bit harder to parse though.

    10. Re:Need new languages by wscott · · Score: 1

      I almost hate to get sucked into this, but here goes...

      What you said was "Wouldn't it be cool if the version system can show me who changed the return value of this function and why?" Answer: yes it is cool. But lets looks at something simpler. It would be cool if your version system can tell you who changed the current line and why. None of the systems being talked about here can.

      Don't tell me about 'cvs annotate'. That is the other reason branching sucks in CVS. It totally trashes your history. After you merge a branch, the person who did the merge appears to have done all the work. The actual author of gets lost.

      It takes people a while to really "get" what this buys you in BitKeeper, but after they understand it they are spoiled for life! Suddenly you don't use comments to understand code, you use the revision history...

    11. Re:Need new languages by Mike+McTernan · · Score: 1

      Automated merging will never be good enough to fully understand a problem and to correctly merge code - many subtle and hard to find bugs have and can be introduced by an automated merging system that doens't understand the system as a whole.

      --
      -- Mike
    12. Re:Need new languages by mikecarrmikecarr · · Score: 1

      Don Knuth's language web had an interesting feature, the ability to generate documentation from the same source code.

      I think coders would be a lot better at commenting their code, and writing documentation if it was all integrated.

      Try using perl's POD sometime.

      #!/usr/bin/perl

      =pod

      =head1 USAGE

      bah, foo() does bar

      =cut

      sub foo { ... }

      I don't know that I'm better at commenting my code given I can integrate my documention into my code, but at least I have one less thing to complain about. :)

      --

      ID-10-T is a way of life

    13. Re:Need new languages by X · · Score: 2

      Actually, many Smalltalk version control systems (such as Envy) are entirely tied to the programming language/dev environment. Take a look at Visual Age, as it's version control mechanisms are very Envy-ish.

      Personally, I've found this to be less of an advantage than one might think. In general, it's good enough to work with files, and it's more flexible (particularly for cross-language development). If you have change sets, and if your language already supports some idea of seperation of components (for example Smalltalk allows you to seperate out the code for a method from the rest of the object), then you're fine.

      --
      sigs are a waste of space
    14. Re:Need new languages by ethereal · · Score: 1

      ClearCASE works this way as well; you can get the revision history for any branch, version, or file/directory element, and you can have triggers that force people to enter meaningful revision history comments. Of course, you have to define "meaningful" :)

      --

      Your right to not believe: Americans United for Separation of Church and

    15. Re:Need new languages by mr_zorg · · Score: 1
      A class cannot be considered audited until all members are audited, and a file requires all contents to be audited.

      This kind of thing sounds very useful indeed, but I take exception to the fact that it requires auditing. It should be optional for reasons like those posted by a reader before me (dynamic class loading). At least, there should be some mechanism for indicating that certain methods/code-blocks are unauditable and that's OK...

    16. Re:Need new languages by Anonymous Coward · · Score: 0

      uddenly you don't use comments to understand code, you use the revision history... ...requiring you to have not only the version history, but BitKeeper to understand the code. A few lines of astericks every so often may look ugly, but it is portable.

    17. Re:Need new languages by Twylite · · Score: 2
      Java can let you load a class by name and call it. The name can be dynamically constructed. So any function that does this is unauitable.

      While this presents a tough problem for auditing, use of this feature generally only applied to plug-ins (Tomcat is a counter-example). Such a method can be considered audited if it takes the necessary precautions (as can be taken) to prevent abuse, and obeys the contract of the plug-in. That way, if you are dealing with an audited plug-in, the system as a whole can be considered audited.

      In both languages any virtual (or non final) member function might be a call to a never seen before class (if, for example you are a libarary).

      Yes, this does make the logic behind dependancy analysis very difficult. My feeling was that, in a given system (which is assumed to be complete) a method cannot be considered audited until all descendants which override it are audited. This would also imply that a class cannot be considered audited until a number of members from sub- and super-classes have been audited. A nasty business!

      I don't think C++ is any harder to analyse in this way, both are quite difficult, and full of big nasty traps. C++ is quite a bit harder to parse though

      Certainly there are issues (otherwise I would have written it this weekend ;) ), but (certainly for Java) I don't think any of them are insurmountable. Your comments and observations show that it would be valuable to gather a team to approach a problem like this; many heads are better than one (usually).

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    18. Re:Need new languages by Twylite · · Score: 2

      Sorry for the confusion, but I wasn't meaning that the SCM imposed a requirement for auditing - that would of course be optional. Rather, a file cannot be marked as audited until all of its contents have been audited ("a file requires all contents to be audited").

      I don't believe having blocks which can be marked unauditable is a good idea. Rather, the auditor can make a best effort to check the code, and mark it as audited with a comment that the code is unsuitable to the standard audit procedures (whatever they are). The auditing system treats all code as opaque anyway -- a change means the audit is invalidated.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    19. Re:Need new languages by stripes · · Score: 2
      Yes, this does make the logic behind dependancy analysis very difficult. My feeling was that, in a given system (which is assumed to be complete) a method cannot be considered audited until all descendants which override it are audited.

      That is an interesting approach, but it means your audited libs are not if they expose any virtual functions. Maybe not a big deal. On large projects it means maybe I can't audit all of my code until you audit some of yours, which can be a big deal. It also makes some forward progresses very hard to see.

      A long long time ago I wrote a bunch of code analysis tools for APL2 code. For a while I kept getting tempted to re-write them for C. When I learned C++, I just plain gave up. It is so much harder to figure out what function is being called when you just see t->foo()!

      I'm quite sure that only the parsing of the Java is easier then C++, not the actual analysis. Er, except maybe for templates. Drat.

      our comments and observations show that it would be valuable to gather a team to approach a problem like this; many heads are better than one (usually).

      Sometimes. Other times the many-heads produce a really complex set of goals, and the project flounders. A single head could produce a realistically small set of goal, write some code to half do the job, and then kick it on out where 50,000 people go "that's stupid, I could do better", and 3 people submit patches to make stuff better.

    20. Re:Need new languages by Twylite · · Score: 2
      On large projects it means maybe I can't audit all of my code until you audit some of yours, which can be a big deal.

      Yes, this is a hurdle that I saw. I think it can be avoided if you have a strongly modular system: audit each module independantly, making (and documenting) assumptions that calls to other modules are considered audited. Then the system as a whole can be considered audited when all modules have been audited.

      I think this would require some use of graph theory to prove, and may be a good exercise before I make any further assumptions about the workability of this idea ;)

      It is so much harder to figure out what function is being called when you just see t->foo()!

      Tell me about it ;) I spent a couple of months working on a reverse engineering system. Fortunately we weren't targetting C++ (at the time) - it was a prospect I was not looking forward to.

      But I still believe that if you take a module and can make that statement "assuming all the functions (list) which exist in other modules and are called from this one can be considered audited, this module can be audited", then you can audit virtual/polymorphic methods by auditing every such method in every class in that module.

      I'm quite sure that only the parsing of the Java is easier then C++, not the actual analysis. Er, except maybe for templates. Drat.

      An operator overloading, I'm inclined to think ;)

      Sometimes. Other times the many-heads produce a really complex set of goals, and the project flounders. A single head could produce a realistically small set of goal, write some code to half do the job, and then kick it on out where 50,000 people go "that's stupid, I could do better", and 3 people submit patches to make stuff better.

      There's always someone who has to take the overkill scenario ;) How about "a small positive number of heads (with attached bodies and in a state which would be considered "alive" by medical standards as applied to mammals of the genus homo sapiens sapiens) greater than one is in most if not all scenarios involving analysis and/or design a more effecient corpus for problem-solving that a single equivalent head" ...?

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    21. Re:Need new languages by stripes · · Score: 2
      An operator overloading, I'm inclined to think ;)

      Nope, that is just syntax to parse. Complex messy syntax, but still just syntax. Once you parse it, you treat it like a function call.

      Templates are more then syntax because use of a template creates a new type on the fly, so your type tracking system has to be able to handle making types when it sees templates.

      On the plus side, at least you are not using ObjectaveC which lets you pass messages to objects of a totally opaque type. At least with Java/C++ you always know (er, except with dynamicly loaded objects, which you say are normally rare) that a variable X is of type T, or any descendent of T. With ObjC what you frequently know about variable X is it is "some sort of object or other, maybe that someone wrote code for..." :-)

      There's always someone who has to take the overkill scenario

      Oh, I didn't mean to imply overkill so much as if you have a hard problem, sometimes it is easier to solve part of it, and then ask for help, then start off with none solved and ask for help.

      I don't know that this is such a case, but it could be!

      (personally, I'm less interested in the audit then the function call tree the auditor has to build, and the variable reference tree it should build as well....er, has too if you care about constructor/destructor calls)

    22. Re:Need new languages by Twylite · · Score: 2

      An example of a nasty problem I can think of with operator overloading is that both dereferencing operators can be overloaded, which adds a huge amount of complexity to the analysis. A->b() may not call method b() of class A!

      Some other complexities of C++ include pointers and references; all Java data is passed by value (this is how the spec describes it, but "values" of objects are in fact references), making its behavioural model more simple.

      I am also interested in the dependancy tree that will be built; while I am envisaging its use in a specific context here, it is a generally very useful structure to have, and you can derive a huge amount of information from it.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  14. Version control system minimum requirements by Anonymous Coward · · Score: 5, Interesting

    IMHO, these are the bare minumum requirements:

    1. atomic commits - your change happens only if all the
    files can be processed. This prevents a corrupted workspace
    when CVS processes half your files in a commit and then exits
    on an error throwing the other half of your files on the floor.

    2. change list management - all commits have a unique
    reference number. CVS process files by directory instead of
    by workspace, so it is impossible to tell which files are
    associated with a commit.

    3. access control by workspace or workspace directory - the
    ability to give certain users or groups access to certain
    workspaces or directories. Ideally, access control can be by
    done by bug id.

    4. graphical resolve of conflicts - a graphical three-way
    diff is the only way to resolve complex conflicts

    5. The ability to move files and directories and maintain
    file history and label integrity from the client. CVS
    requires the whole workspace to be locked so that moves can
    be performed on the server side and does not maintain label
    integrity.

    6. web viewer and graphical difference viewer - the ability
    to browse via the web change set lists to see what files
    changed and what the actual differences were.

    7. the ability to integrate workspaces across projects - the
    ability to arbitrarily merge/integrate any source code from
    any project to any other project.

    8. powerful labeling features (parallel development and
    prior version support).

    9. rollback or undo multiple changes - this is great way to
    recover from a developer commit disaster.

    10. multi platform support - must run on all platforms.

    11. command line and graphical interface. Command line for
    scripts and graphical interface for those who can't work
    without it.

    12. push and pull notifications - built in support for e-mail
    and news group notification of changes in the workspace.

    Your humble build servant :-)

    1. Re:Version control system minimum requirements by C-C · · Score: 5, Interesting

      While I agree pretty much with the anonymous post above (which suspiciously matches with BitKeeper's features :-), at least one thing is missing:

      13. Version control on a sub-file granularity.

      While I agree that this is a difficult problem, a typical use case is the "split a file" problem, which is supported by none of the available VC systems.

      Most renames of files I have seen in large projects are not simple renames, but splits, where a file's code is moved to separate files due to a refactoring. Only one of those files can be associated with the old file using a rename-aware version control system. The revision histories of the functions in the other files are lost.

      I don't have experience with implementing version control, so I don't know how solvable this is, but I can dream, no?

      C-C

    2. Re:Version control system minimum requirements by ethereal · · Score: 2, Insightful

      I'll add a couple things:

      • Triggers - must be able to specify a script to run when certain events happen, like checkin, checkout, add label, etc. Triggers should also be able to prevent an action from occurring if the trigger script decides that a condition has not been met.
      • Multi-site - the system must be set up so that developers at multiple sites around the world can collaborate on the same sources fairly easily. This is more of an enterprise feature, I would think.
      • Securable - at least make it tunnelable over SSH or something like that, at a minimum.
      • Transparency - must be able to dig out all of the details about the system and the files and versions contained in it automatically from the command line or some API, so that the system can be analyzed and manipulated by automated tools for metrics reporting, etc.

      Here's a good question that you raised - is a three-way graphical merge really the best way to do a complex merge? I've done a lot of them and it mostly works, but at times it still seems like a sub-optimal solution. Does anyone else have a better system for complex merges that they do?

      --

      Your right to not believe: Americans United for Separation of Church and

    3. Re:Version control system minimum requirements by Mika_Lindman · · Score: 5, Funny

      13. allows version numbers larger than 1. I'm tired of all open source being with version numbers like 0.997

    4. Re:Version control system minimum requirements by blais · · Score: 0

      about (4) merging 3-way: you can use xxdiff (http://xxdiff.sourceforge.net) with any cm system by writing a thin wrapper that extracts the needed revisions and spawning xxdiff on the local files. you can select diff hunks and save the result to a "merged" file.

    5. Re:Version control system minimum requirements by mpcooke3 · · Score: 2, Insightful

      The first two are of particular importance.

      By processing the 'commits' as a transaction it guarantees that only one person is committing at a time.

      With both 'Transactions' and 'change list management' commits can be rolled back in reverse order to revert the system to any previous state should a major commit (with many files) go wrong.

      I think good basic operations would be 'Catch up' (merge changes into local workspace) then you can run tests and check everything is ok. Then the atomic 'Commit'. The system would also needs to check that no other transactions has been processed between the 'Catch Up' and 'Commit', or the developer should be forced to catch up again.

      Why do most version control clients have 6 million options but don't contain just these simple 2 operations you want? Probably mainly for historic reasons I guess.

      I think the version control system on VisualAge for Java MicroEdition had a system like this called 'Team Streams'.

    6. Re:Version control system minimum requirements by maiden_taiwan · · Score: 1

      13. File attributes should be preserved. (CVS doesn't.)
      14. A modification to the file attributes (chmod, etc.) should be considered a change to the file and capable of being checked in.

    7. Re:Version control system minimum requirements by Hop-Frog · · Score: 1

      I don't know how it's turning out, but this is one of the things that the Stellation people are (or were) trying to implement. You might check their home page for details: http://eclipse.org/stellation/index.html

    8. Re:Version control system minimum requirements by self+assembled+struc · · Score: 3, Insightful

      Honestly this sounds a lot like many of the features that perforce has (which I use at work too).

      Atomic commits -- if perforce can't process all your files in your changelist, it won't submit them. this means if one of hte files in your list is out-of-date with the server version (your revision number is lower than the one on the server, which means you have to resolve the merge) or if you've done something that perforce doesn't like with a file. you can't force it either.

      changelist and access control - perforce sets up "clients" which map it's depot on your local computer. you can create as many changelists as you need and as you check out files add them to various change lists, submit one changelist while you have others open, submit some files from a directory and keep others checked out

      web viewer/graphical diff - there's a web viewer and the windows version has a diff program.

      it does labelling, it supported on EVERYTHING thing (including Mac os pre-X via the Macintosh Programmers Workshop via the Command Line, and OS X via command line)

    9. Re:Version control system minimum requirements by Alan+Shutko · · Score: 2

      You will be able to do something like this in subversion. Since it supports file copies with history, you could copy the file to separate files, then remove the stuff you don't want in each file.

    10. Re:Version control system minimum requirements by maraist · · Score: 2

      Only problem with perforce is it doesn't support distributed offline work.

      You have to connect to the central database for EVERYTHING. All files are locked until you manually checkout a file. If you have a slow network connection or disconnect periodically, you have to reconnect every time you want to make a change (add a file, edit a file, change attributes on a file, see what files have changed, etc).

      For open source development this can be a major problem.

      Further, a centralized database can be problematic for separate development trees (not branches). The best you can do is copy the database to a new machine and run from there.

      One feature I like of "arch" is that you can have decentralized development with independent trees/databases, and merge them back into the main database at a later date. There are several frustrations/limitations with arch so I'm not recommending it, just showing that someone else has solved this problem.

      In general, I like CVS's (and arch's) view-private meta-data which allows a subset of operations to be performed. Not least of which is which files have been changed,and the ability to modify files without central authority. Other than that, I like just about all the features of perforce.

      --
      -Michael
    11. Re:Version control system minimum requirements by Canis+Lupus · · Score: 2, Interesting

      I wonder if the VC could track modules (i.e., classes and namespaces to use a C++ reference) instead of files? Granted the VC would need the ability to parse the material which is being controlled, but changes can be tracked per module (i.e., new function added, base class derived, etc.) Just a thought (seems rather complicated)

      --
      The real silver bullet to good programs is caffeine; lots and lots of caffeine! *twitch, twitch*
    12. Re:Version control system minimum requirements by ebh · · Score: 1

      A lot of systems have preop and postop triggers, where the operation runs only if the preop trigger succeeds, and the postop trigger only runs of the operation succeeds.

      I'd like to see two other types. The first is a postop-fail trigger that runs only if the operation fails, and the second is an "alternate operation" trigger: "You're about to do something stupid. Would you like to do the right thing instead?"

      And EVERY operation must be triggerable.

    13. Re:Version control system minimum requirements by axxackall · · Score: 1

      CVS already have triggers. Multi-site repository requires better access control and conflict resolution, probably both should be rule-based. But it sounds like workflow management, which is huge development - there is no good workflow management done open source, is it?

      --

      Less is more !
    14. Re:Version control system minimum requirements by axxackall · · Score: 1

      Then access control should be based on ACL (access control lists), rather than on primitive and unportable file attributes.

      --

      Less is more !
    15. Re:Version control system minimum requirements by [Xorian] · · Score: 3, Informative

      A couple other posts have mentioned Vesta, which goes a long way towards meeting the requirements you lay out. (For the sake of disclosure, it's only fair to mention that I am currently the primary maintainer of Vesta, and am somewhat responsible for getting it released as free software.)

      1. atomic commits - your change happens only if all the files can be processed. This prevents a corrupted workspace when CVS processes half your files in a commit and then exits on an error throwing the other half of your files on the floor.

      Vesta absolutely does this.

      2. change list management - all commits have a unique reference number. CVS process files by directory instead of by workspace, so it is impossible to tell which files are associated with a commit.

      Vesta does not explicitly provide this, however it's very easy to get with a simple diff command. The Vesta repository has a filesystem interface which makes it possible to directly access all versions past and present. A simple diff -r will show exactly what changed between any two versions. The also has other fun uses (e.g. greping across versions).

      3. access control by workspace or workspace directory - the ability to give certain users or groups access to certain workspaces or directories. Ideally, access control can be by done by bug id.

      Vesta's access controls are essentially UNIX file permissions. Through the repository's filesystem interface, you can control who can read and write (commit new versions) at a variety of granularities with chown, chgrp, and chmod.

      4. graphical resolve of conflicts - a graphical three-way diff is the only way to resolve complex conflicts

      Vesta provides no direct help here, but again, because of the filesystem interface to the repository, it's easy to apply standalone diff/merge/conflict resolution tools.

      5. The ability to move files and directories and maintain file history and label integrity from the client. CVS requires the whole workspace to be locked so that moves can be performed on the server side and does not maintain label integrity.

      Vesta's unit of version control is a directory. Between versions, files and subdirectories can be added, removed, renamed, etc.

      6. web viewer and graphical difference viewer - the ability to browse via the web change set lists to see what files changed and what the actual differences were.

      Not built-in, but already implemented on top.

      7. the ability to integrate workspaces across projects - the ability to arbitrarily merge/integrate any source code from any project to any other project.

      Vesta includes sophisticated cross-site features, including replication and remote checkout/checkin. It's been successfully applied before by a team spread across the US east and west coasts with hundreds of megabytes of sources.

      8. powerful labeling features (parallel development and prior version support).

      9. rollback or undo multiple changes - this is great way to recover from a developer commit disaster.

      Vesta really shines in these areas. Vesta is also a build tool, and every build neccessarily includes a complete specification of the set of immutable versions it uses. Builds are also themselves immutably versioned. This makes it easy to determine which source componenets have changed between two versions of a build. Also, since it's as easy to select any historical version as it is the latest one, rolling back changes is trivial.

      10. multi platform support - must run on all platforms.

      We're still working on it (at the moment just Linux and Tru64 work), but hey, it's free software, and we'd love to have more developers/porters.

      11. command line and graphical interface. Command line for scripts and graphical interface for those who can't work without it.

      At this point there's a command-line interface and some rudimentary support for repository operations in the web interface. Again, it's free software, and we'd love to have somebody contribute more layered tools.

      12. push and pull notifications - built in support for e-mail and news group notification of changes in the workspace.

      Nothing built-in yet, but we've been talking about doing it, and it may happen soon.

      There's a short summary of Vesta's excellent capabilities on it's web site (which includes several points not mentioned here), that I would recommend anybody interested in better version control/configuration management check out.

      --
      CVS is teh suck. Use Vesta instead.
    16. Re:Version control system minimum requirements by rblum · · Score: 0

      That's perfectly possible with perforce. You just branch the file, and delete the appropriate parts in the two copies.

      Voila, instant file splitting with preserved history. Granted, it would be cooler if the VCS could track that this was actually done for the purpose of splitting files, but progress is slow....

    17. Re:Version control system minimum requirements by nestler · · Score: 1
      You have to connect to the central database for EVERYTHING. All files are locked until you manually checkout a file. If you have a slow network connection or disconnect periodically, you have to reconnect every time you want to make a change (add a file, edit a file, change attributes on a file, see what files have changed, etc).

      Actually, if you use CVS properly, you still have to contact the server for all of these things:

      • cvs diff
      • cvs commit
      • cvs co
      • cvs update
      • cvs edit
      Technically, you can edit without cvs edit, but it's less "polite".

      So there isn't really a big win of CVS over Perforce regarding how connected you have to be.

    18. Re:Version control system minimum requirements by iabervon · · Score: 2

      Rather than having the merge program part of the version control project, it ought to be at least partially separate. You often want to make a few changes to a project from somewhere you don't have a working directory, in which case, you'll want to be able to resolve conflicts in TTY mode if need be.

      Furthermore, if your merge tool is separate, it may become independantly popular, and may be used with other version control systems. Of course, there may be issues with creating a general interface for the metadata that different systems provide.

    19. Re:Version control system minimum requirements by mooneyd · · Score: 1

      Actually VSS can do this.

      Starting with a file FOO, you want to create files BAR and BAZ, each which have FOO's history.

      0. Launch VSS explorer
      1. Right drag FOO to a temp folder, choose 'Share and Branch'.
      2. Rename the branched file BAR.
      3. Right drag BAR back to the original folder, chose 'Move'.
      4. Rename FOO to BAZ.

      Sure, it could be nicer but it can be done. It can probably be done in other systems that support 'share and branch', 'move' and 'rename' operations - of which CVS is not one.

      VSS is scriptable from the command line and through COM (VBScript, PHP, C++, whatever...). VSS could be really cool if not for the lame backend.

    20. Re:Version control system minimum requirements by Anonymous Coward · · Score: 1

      Sub-file versioning implies the version control system knows the internal format of each content type. This makes open source tools dependent on the availability (and correctness) of specifications of proprietary file formats. Imagine CVS being dependent on the file format of Word!

      VTML (Versioned Text Markup Language, not to be confused with VTML, the Visual Tools Markup Language), shows how you can have sub-document versioning of XML documents.

    21. Re:Version control system minimum requirements by bob_jenkins · · Score: 1
      4. graphical resolve of conflicts - a graphical three-way diff is the only way to resolve complex conflicts

      Some people like those, but there has to be the equivalent of Unix "merge" as well.

      We've got Clearcase at work which has an impressive graphical merge tool. I never use it. I use Unix "merge" instead and resolve any remaining conflicts in EMACS. Two reasons.

      1. My error rate is about 1 in 20. The graphical tool asks me about every place that either branch changed the code, but "merge" only asks me about places where both branches changed the code. Sure, sometimes the default for "merge" is wrong, but it's wrong much less often than I'd click the wrong button.
      2. When there is an interesting conflict, I usually can't tell what to do just from the left, right, and base versions of that fragment of code. I have to look all over the file and in other files too. That's easier in EMACS.

      Most people prefer the graphical merge tool. But, please keep the non-gui tools an option.

    22. Re:Version control system minimum requirements by ethereal · · Score: 1

      Some ClearCASE changes to a file's attributes are version controlled through the containing directory - like the file's name. Unfortunately, the permissions themselves are not controlled in this way, nor is the user or group ownership information. Directory versioning would be the logical place to do this kind of version control, though.

      --

      Your right to not believe: Americans United for Separation of Church and

    23. Re:Version control system minimum requirements by Anonymous Coward · · Score: 0

      Actually, you can work detached with perforce

      It's not nicely integrated or anything, but it's definitely possible

    24. Re:Version control system minimum requirements by spitzak · · Score: 2
      This should be possible. I don't know how it would really be done, but imagine if you made a file that was all the code concatenated together with marker lines added between each file saying what the file name is. Then splitting some source code would simply be the insertion of a single line, renaming a file would be the changing of one line, deleting a file would delete a block of lines, and new files would be added on the end. It seems to me that you could use CVS to manage this file and re-joining split files would be easy. It would not allow you to neatly join two files that are not adjacent, but a more advanced diff system that could detect a moved block (which would be very useful inside source files) would be able to do this. Such a system could also detect code moved from one file to another.

      Any real system would hide this big file from the user, but it does seem like a good approach is to internally get rid of the files/directories as soon as possible and imagine the entire project as a single stream of bytes and then do advanced analysis of the differences and merges on this stream.

    25. Re:Version control system minimum requirements by LadyJessica · · Score: 1

      Perforce is pretty nice. A couple of years ago I evaluated SCC systems because my company and I desperately wanted to get rid of Visual SourceUnsafe. We ended up choosing CVS. The two big things were cost and Perforce's lack of a Mac OS GUI interface. Seriously, this was a big issue. Try to get Mac or even Win people to use a command line. Ouch!

      Despite its limitations, CVS has served us very well for years now. We have many active developers on different projects in California and Ottowa and it's been great. Our whole company uses CVS now.

      There's a few features I wish CVS had, but simplicity and GPL are nice advantages, too.

      -- LadyJessica

      --

      -- Jessica
      The mutant geek grrl from Hell.

    26. Re:Version control system minimum requirements by gstein · · Score: 1

      Umm... hello!?!

      "catch up" is implemented by "svn update" or "cvs update". It merges others' changes into your local working copy. Then you have "svn commit" or "cvs commit", and both systems ensure that nobody else has changed stuff between the update and commit.

    27. Re:Version control system minimum requirements by gstein · · Score: 1

      Subversion works great in a disconnected environment. While offline, you can get status, and do diffs, adds, and deletes (cvs needs the server for all of these). However, SVN does not have multiple repositories, so you cannot do offline commits or checkouts/updates.

    28. Re:Version control system minimum requirements by gstein · · Score: 1

      Subversion handles most of those items. It does not (yet) come with a graphical merge tool (#4), although writing a client should be easy, and that client can easily integrate one. For a web view (#6), we have very basic viewing of HEAD via your web browser built in, but will be relying on an external ViewCVS-like tool for complex browsing. Also, we do not yet have #11, but it is easily supported by the architecture. All the rest we have.

    29. Re:Version control system minimum requirements by teamnoir · · Score: 1

      I'm a former cvs developer and the person responsible for seeing cvs used at Cygnus. I've been doing configuration management and release engineering for over a decade now. Cvs has been an embarassment to the free software world for at least that long. Yes, it's long overdue for replacement. I agree on all your points. You make basically the same ones I do. I'll add, remote work is important, especially to the free world, and clearcase offers little in this regard. However, clearcase offers two crucial features that have no analogue in free software. 1) I don't have to check out a tree. In seconds, I can have a clearcase "view" on all of the source at a company, regardless of size, for any version at any time, interactively. This is critical for answering telephone questions when I really can't afford to spend hours on "cvs co". Yes, a better GUI can prolly offer this sufficiently. 2) Build support. Because clearcase can store build manifests in the file system, clearcase can offer perfect, totally automated build dependency checking. It can also offer build avoidance which in some cases can take 24hr builds into the 60min range. Build avoidance can also address many disk space usage concerns, but personally, I've rarely found this to be an issue in practice. However, here's one factor that I haven't seen addressed yet. In the range over about 64 concurrent users, and certainly once we've passed 128 users, down time for backups becomes unacceptable. Cvs has no formal backup strategy. Clearcase has several partially supported hacks that are in common use, (ie, backups via multisite, or temporarily-break-the-mirror schemes). Frankly, I don't know the right answer here. I wonder what the big database folks like oracle do as a matter of policy. --rich

    30. Re:Version control system minimum requirements by mpcooke3 · · Score: 1

      When I talked about commit I was referring to all changes in a persons local workspace - as an atomic action, not many smaller commits. Also it doesn't actually commit all changes that have happened in the local workspace, it commits individually changed files, not new files. This can easily mean that a local workspace is working but the CVS HEAD is broken due to missing resources. This is a fairly *major* failing in my opinion. If a project passes it's tests when run locally and then after the 'Commit' action CVS contains a broken project which can't even be rolled back easily due to lack of transactions then the system is a bit flawed. This kind of Commit command is not really what I was talking about.

      The "CVS update & commit commands" are just not the same as a proper project based "Catch-Up and release" style version control system with transactions.

      Although you can use CVS in a sane way if you are experienced, it is far more complicated than it needs to be causing unneccesary grief.

      Perhaps it is better suited to old style unix development and less so to rapidly refactored OO projects in Java and the like.

    31. Re:Version control system minimum requirements by Jason+Pollock · · Score: 1

      A lot of this can already done with CVS+extras...

      2, 3, 9 are handled nicely by cvsZilla, which also integrates with Bugzilla to add changelogs to the associated bug. We use this here at work, and it solves a lot of the problems we were having.

      http://homepages.kcbbs.gen.nz/~tonyg/

      CVSZilla also allows for the tracking of tags/branches.

      4 emacs does this! :)

      6 CVSWeb/viewCVS.

      8, 10, 11, 12 are all already built into CVS.

      So, that leaves 1, 5, 7. These would need actual changes to CVS... 1 and 5 would be really useful.

      Jason Pollock

    32. Re:Version control system minimum requirements by rocket_rex · · Score: 1

      I liked the way Sun's Code Manager resolved conflicts best. It would build a list of the files there were in conflict during the merge and then present them in a graphical three-way diff tool. I believe Perforce's system is similar.

      I have actually used the Perforce three-way graphical merge tool to resolve conflicts during a merge using CVS. It can be called from the command line just like Sun's Code Manager.

      Perforce's tool is free and I am sure they have thought of it becoming a standard like you mentioned.

      Your humble build servant

      --
      Rocket Your humble build servant.
    33. Re:Version control system minimum requirements by Anonymous Coward · · Score: 0

      Is that being considered?

      It would be really great if subversion could handle disjoint development with some kind of local versioning at the client i fteh server is unavailable.

      Is it doable?

    34. Re:Version control system minimum requirements by gstein · · Score: 1
      It is related to the standard "distributed repository" system, and is a very difficult problem. It is quite easy to mess up :-) Some though has already been applied to the issue, but the simple answer is:
      We are replacing CVS. Further innovation and feature enhancements will come later.
      IOW, since CVS doesn't have it, then we don't need it for 1.0. Our goal is to knock CVS out of use. The hundreds of thousands of CVS users don't need that kind of offline or distributed repository support, so we should be fine for now.

      In the long term future? Absolutely.

      (and yes, Larry McVoy is going to say that since we didn't design distributed repositories in from the beginning that we'll never be able to do it; "ha!" I say; we'll get it done, and it will work quite well)
  15. Clearquest by Anonymous Coward · · Score: 1, Informative

    I've used Clearquest for over a year and I can tell you that it is a nightmare.
    Completely unintuitive GUI and it is difficult to enter bugs into. Maybe they have fixed this in a later version but the email bug alerts don't have clickable links for developers to go straight to the bug in question.
    Clearquest was designed by project managers FOR project managers. Any good developer would not go within a mile of it if they had the choice.

    1. Re:Clearquest by Anonymous Coward · · Score: 0

      Clearquest is so configurable in terms of forms, fields, and states, that you're probably running into a layout & setup specified by project managers where you work with no input from development or your QA group. For the most part, the QA group should drive 75%+ of the way its layed out, as they most likely will be entering the bugs. The remainder by Development / PM. I've used it for the last year, and done some maintence with it. BTW, its integration with CC when using UCM absolutely rocks. Version trees from CQ, Diffs, what view the file was checked out it etc...

  16. Clearly Clearcase by slimak · · Score: 1

    I agree, Clearcase is great - the only drawbacks that I can see are the steep learning curve and double steep price.

    1. Re:Clearly Clearcase by Anonymous Coward · · Score: 0

      Are you guys smoking crack? Clearcase is nowhere near what i would call "great". It has many, many problems, and most of us hate it here but are forced to us it in this large corporation... Ug.

  17. some thoughts by TTimo · · Score: 3, Insightful

    CVS may be the best open source version control tool right now, it still suffers from a lot of shortcomings.

    Generally speaking, stuff like commit emails need the addition of specific wrappers (see http://cvsreport.sourceforge.net for instance), and CVS doesn't scale well to big projects .. doesn't handle big binary files in a satisfactory way

    It's quite usable .. but I'm really waiting for subversion to get mature and usable for production..

    1. Re:some thoughts by asobala · · Score: 1

      CVS doesn't scale well to big projects

      Ooh, can you think of the disaster that would cause? Using it for Gnome? Mozilla? Aaarrgghh!

    2. Re:some thoughts by ebh · · Score: 1

      It's not that CVS doesn't scale to big projects, it's that CVS doesn't scale to big PROCESS. Think of the scripting you'd have to do to get to CMM level 2.

      CVS is a version control system (which, to be fair, is all it ever claimed to be), not a configuration management system.

    3. Re:some thoughts by pediddle · · Score: 1

      It's quite usable .. but I'm really waiting for subversion to get mature and usable for production.. Just so you know, Subversion is rapidly approaching Alpha (later this week) and soon Beta and 1.0 within a month or two. I have been using it for my own projects (despite the team's warnings) and have found it to be extremely stable, even in its pre-alpha state. The team has put a lot of effort into keeping the HEAD stable. So if anyone wants to try it, go ahead and do it now! Subversion is *so-much-better* than CVS, and better than anything else I've tried. You won't regret it.

    4. Re:some thoughts by krogoth · · Score: 2

      Actually, before I changed to BitKeeper I added commit emails without a wrapper, mostly because I couldn't get the wrapper working.

      --

      They that quote Benjamin Franklin on liberty and safety deserve neither.
  18. Yes, it is time for a new tool... by mdorman · · Score: 5, Informative

    Regardless of where your particular alliegances lie---whether it be with arch or subversion or opencms or bitkeeper or whatever---it does seem obvious that the open source community is asking things of CVS that it is just not able to deliver. One need only look at some of the problems large projects like GCC have with it to realize that some alternative is needed.

    And if that doesn't convince you, well, it's not for nothing that some of the primary developers of CVS are now working on subversion.

    Now, of the new crop of tools, the only one I've played with extensively is subversion---but I am absolutely blown away by how well it seems to make common operations simple. Even with its documentation in a very rough state, and despite its many architectural differences from CVS (with which I have several years of experience), I was able to figure out how to maintain a vendor branch and local modifications, perform updates on both, merge them, tag releases, etc., very quickly and easily. Its developers have obviously looked at CVS to see what things it does not do well that people do frequently, and designed accordingly.

    Is subversion for you? Who knows. But if you use CVS a lot---especially if you find yourself cursing CVS a lot---you should do yourself a favor and look at some of the alternatives. A lot of lessons have been learned, and you should avail yourself of the benefits.

    --
    Urgle.
    1. Re:Yes, it is time for a new tool... by RupW · · Score: 1

      One need only look at some of the problems large projects like GCC have with it to realize that some alternative is needed.

      GCC's only problem, AFAICS, is the underlying RCS storage model: it's locking requirements, no central revision number store (for cheap no-change updates) and the patch-back-and-forwards operational cost of updating a branch.

      I used Sourcesafe before I used CVS. One of the things that first impressed me with CVS was the branch model c.f. Sourcesafe's - specifically cheap, relatively unobtrusive/invisible branches: if I wanted to take one of our codebases and make my own experimental branch to hack around on then I can and it won't get questioned too much. I'm disappointed that subversion has adopted the Sourcesafe model but I confess I haven't studied the design docs to find out why. (I'm put off experimental-hack branches in the Sourcesafe model because they pollute the GUI.)

    2. Re:Yes, it is time for a new tool... by K'tohg · · Score: 2, Funny
      And if that doesn't convince you, well, it's not for nothing that some of the primary developers of CVS are now working on subversion.

      Can you back this up? I'm interested to see.

      I have to admit I'm biased to CVS. I love it so much that I used to sleep with a floppy containing the binary under my pillow for a month. (ok slight exageration).

      Anyway I see a big breach in the "open source" way of doing things. In the past a simple project would grow as needed. If features didn't exists or bugs were around. Someone would fix it.

      CVS has been the de facto standard for version control in the "open source" community especially in say SourceForge. Now it's being abandoned like a poor basterd child. I would like to see just why a proven software that in many ways is one of the best, known to out beat VSS the lord and ruler (MicroSoft), is now now a heap of garbage not worthy of the "open source" way of collaborative enhanchments.

      Instead of throwing it away reuse it. If RCS isn't possible rewrite it. Convert CVS to a new and better way. But why destroy the one faithfull servent because it's old or doesn't live up to expectstions. We're smart people. If Linux had the same problem would we abandon it at a whim? No, I'd like to belive we would make it better. Did the GIMP give up when they were faced with a crappy Windows ToolKit?

      It sounds as if it is a tempermental thing that many people are assamed of the CVS name. I, who belives in CVS and sometimes worships CVS; who in my many years of administration have never seen a problem can't fathom why it would be so ridiculed and persicuted in a world that pride themselves on co-operation and "freedom" to enhance and superiorize software at will. A huge efort to give CVS up is underway and no effort to bring CVS to the top of the ladder. It seems counter productive and contrary to what "free software" or "open source" ideals used to be.

      --
      > SELECT * FROM brain_cells WHERE synaptic_rate > 0
      0 row returned
    3. Re:Yes, it is time for a new tool... by kfogel · · Score: 1

      Huh? Cheap, unobtrusive branches are what Subversion is all about. Not sure what is meant by "adopted the Sourcesafe model". We certainly didn't mean to; at the time we designed Subversion, we knew mainly CVS, certainly didn't know enough about Sourcesafe to design anything intentionally like it :-).

      I think you may be misunderstanding Subversion's branching model.

      -Karl

      --
      http://www.red-bean.com/kfogel
    4. Re:Yes, it is time for a new tool... by mdorman · · Score: 2, Informative

      Jim Blandy and Karl Fogel were both formerly heavily involved with the maintenance of CVS, and although only Karl is still active, Jim does show up occasoinally.

      As to enhancing not rewriting: many of the problems people have with CVS grow directly from its origins as a set of wrappers around RCS. It is file oriented, not project oriented. This imposes certain limits on what it is practical (if not possible) to do within the framework of CVS.

      As for your GIMP example---well, in fact, the GIMP guys did exactly the same thing. The original GIMP was in Motif, but they scrapped that and wrote gtk. This is, I think, entirely analogous to what subversion has done with respect to CVS.

      Sometimes the only way to progress is to make a distinct break with the past.

      --
      Urgle.
    5. Re:Yes, it is time for a new tool... by gstein · · Score: 1

      Oh, I knew SourceSafe, for better or worse :-)

      Yes, we are similar to SourceSafe, in that we make cheap copies to branch the code.

      However, the original writer is missing a *very* important point. CVS branches are not simple and cheap. To branch, every ,v file in the repository must be entirely rewritten to insert a couple tags at the front of the file. If you're branching a repository with a few gigabytes of source, then this is a hugely expensive operation.

      Subversion can branch a 10 gig repository in less than a second :-)

    6. Re:Yes, it is time for a new tool... by RupW · · Score: 1

      I've sat down with the design doc again: my main worry is exactly section 8.1.3 ('User Interface for Branches and Tags' in 'Future'): my concern was that I couldn't make an experimental branch in the company-wide repository without it showing up at top-level and sparking 'what's that doing there?' witch-hunts.

      Greg points out that branches can live under a '/branch/' root - which goes some way to addressing this if everyone's working against trunk, but if we're working on a branch as a matter of course (e.g. stabilising a release) then it doesn't really help.

      My secondary concern is that I can't make an independent branch a few levels down, e.g.:


      * projectA
      * subprojectA1
      * subprojectA2
      * subprojectA3
      * projectB
      * projectC

      Say I wanted to work on a branch subprojectA1 but track trunk changes to subprojectsA2 and 3. This is trivial in CVS - tag and update subprojectA1 to the new tag, and then cvs update at top level works as I'd like. This may be possible by munging the SVN state directories but I don't see an obvious way of doing this automatically from the design doc.

      A practical example of this might be the sources.redhat.com 'uberaum' repository which is combined from the GCC and binutils repositories; I don't know if it's as simple as symlinking the directories of ,v files in the CVS case. However, I'm sure this could be accomplished in SVN by some sort of repository merge module in your layered architecture.

      Still not sold on the revision numbering - automated whole-repository state is useful but bumping revision numbers and $Revision$ tags when the individual file hasn't changed will confuse non-savvy diff tools and, unless you preserve the date stamp, trigger unnecessary rebuilds (but then if the $Revision$ tag is in a string to compile-in then you *want* to trigger a rebuild - how to distinguish the two cases?). I think the dot-notation would have been useful to keep - it's obvious that 6.1 and 7.1 were branched from different parents whereas I'd have to do some svn operation to know that versions 35 and 38 were.

      I might also miss the option of hand-hacking the ,v files if I get myself in a particular mess - but, had I been using subversion instead, I probably wouldn't have had to.

    7. Re:Yes, it is time for a new tool... by RupW · · Score: 1

      However, the original writer is missing a *very* important point. CVS branches are not simple and cheap. To branch, every ,v file in the repository must be entirely rewritten to insert a couple tags at the front of the file.

      Yeah, in that case I meant 'simple and cheap' in terms of storage overhead and not operational cost. Sorry. (Not sure - CVS might also require a full-repository lock to do that which is an even bigger issue than the read-write in a busy system.)

      My question (as I've elaborated elsewhere) was about branching a subdirectory a few levels deep for my own development so I wasn't considering the cost of the branch operation.

    8. Re:Yes, it is time for a new tool... by RupW · · Score: 1

      Greg points out that branches can live under a '/branch/' root - which goes some way to addressing this if everyone's working against trunk, but if we're working on a branch as a matter of course (e.g. stabilising a release) then it doesn't really help.

      except I now see that this is a filesystem recommendation rather than server enforced, so I can happily keep my stuff under '/xbranch/rup/' or something, well out of everyone's way. Excellent.

      I'm now far more sold on subversion than I was this time yesterday - although my other issues in parent post still stand.

    9. Re:Yes, it is time for a new tool... by gstein · · Score: 1
      Greg points out that branches can live under a '/branch/' root - which goes some way to addressing this if everyone's working against trunk, but if we're working on a branch as a matter of course (e.g. stabilising a release) then it doesn't really help.
      You followed up to yourself noting that people can use /branches/issue-10 and /branches/joebob. And that is just "one way" of doing it. Organize your branches however you'd like. You could have /branches/issues/ and /branches/personal, each with further subdirs.
      Say I wanted to work on a branch subprojectA1 but track trunk changes to subprojectsA2 and 3.
      No problem. Use Subversion "modules" (aka "externals"). SVN has a much more flexible system for pulling together bits than CVS's module support. For starters, we can grab stuff from multiple, disjoint repositories (entirely different servers even!). Second, they are entirely user-controlled via properties on a directory. In particular, you could set up a module for yourself. Let's say that you've created /branches/Rupw/change-A/. On that directory, you set the svn:externals property to the following two lines:


      A2 http://svn.example.com/repos/projectA/subA2
      A3 http://svn.example.com/repos/projectA/subA3


      The A1 subdir simply lives under change-A.

      Now, when you check out change-A, you naturally get A1 as part of that check out. However, SVN also sees the property, so it goes and checks out subA2 and subA3 from the main trunk. If you do an "update", then all the right bits are pulled.

      A similar situation can be used to gather together the GNU tool chain from the redhat repository. We are planning to use this same feature to pull together bits for SVN development: gather code from svn.collab.net, from the ASF, from Neon, and possibly from sleepycat. As I mentioned, multi-site gathering of bits are possible in a single svn:externals property.

      Regarding the $Revision$ thing. We expand that label to the last changed rev for the file in question. Thus, the keyword might say "10" even though the current revision is 23, simply because the file wasn't changed in revs 11 through 23.

      And yes: it is true that CVS-style revision numbers implicitly show you branch points. But they're on a per-file basis. In SVN, you can say at a high-level "branch FOO was created from revision 1234 of /trunk". In any case, "svn log" should show you information about the branching (it technically can, but doesn't now).

      I think that answers all your questions/concerns!
    10. Re:Yes, it is time for a new tool... by RupW · · Score: 1

      And yes: it is true that CVS-style revision numbers implicitly show you branch points. But they're on a per-file basis. In SVN, you can say at a high-level "branch FOO was created from revision 1234 of /trunk".

      Yes: I was suggesting that on a branch level, i.e. you then number revisions on branch FOO 1234.1, 1234.2, etc.

      On the other hand, I can see the 'simpler is better' argument too. And I'd (somehow) mistakenly thought I'd have to check branches with 'svn log' individually per file rather than per repository.

      I think that answers all your questions/concerns!

      Pretty much. Thanks for all your trouble!

  19. I think the question is wrong by lfourrier · · Score: 4, Insightful

    In fact, you exhibit a common misconception. If you want version control, CVS do the work. But what you seem looking for, and what do many of the alternative proposed in the replies is configuration management.
    Now, what an ideal system would be? I don't think one size fit all. You need very quick local net access (bye bye CC), and you need infrequently, losely connected internet developpers. But not at the same time. So I don't think tere is one unique response to your question.

    1. Re:I think the question is wrong by chanceH · · Score: 1

      I agree.

      I think what would make CVS better would
      be agnostic API's for plugins/modules that
      would make CVS a lot more tightly integrated
      with:

      configuration managment
      build management ("custom" and automated)
      test case management/execution

      At the same time, I think it would be wrong
      to try to make CVS into a tool that loses focus
      on what its supposed to do.

      What these API's would looke like I really
      don't know. And probably lots more ways to
      do it wrong than right.

    2. Re:I think the question is wrong by gstein · · Score: 1

      Note that Subversion is designed as a set of libraries. The command-line client is just a thing app that connects those libraries to the command line. A GUI app can use the same libraries to create a GIU app. Via the scripting language bindings, you can use those APIs to do whatever.

    3. Re:I think the question is wrong by krogoth · · Score: 2

      BitKeeper has a nice solution to this. It builds changesets when you commit your work, and then you can distribute those changeset with various methods - bk push will use ssh to send them directly to the server, but you can also email them.

      --

      They that quote Benjamin Franklin on liberty and safety deserve neither.
    4. Re:I think the question is wrong by Anonymous Coward · · Score: 0

      >you exhibit a common misconception. If you want version control, CVS do the work. But what you seem looking for .... is configuration management.

      Mod this up in blazing lights!

      This hits the nail on the head.

      There are IMHO three *orthoganal* requirements/questions:

      1. What is the version/revision history of a file? (ie. "version control")

      2. What set/configuration of files make a working release? (ie. "configuration control")

      3. What subset of files/changes make up a particular function/requirement/whatever (aka a patch) (ie. let's invent a term "module control")

      Version control systems (like CVS) handle 1. fine, ClearCase is superb at 2., virtually nothing (apart from patch itself) even addresses 3

      When we're talking distributed development (we really mean disconnected development "just when is joe going to finish his new all-singing-whats'it?; oh he's gone surfing?, ok I guess it can wait, lets get the other stuff out"), then we really need 3.

      Add that to CVS and I think we're done.

  20. Why write a new one from scratch? by mveloso · · Score: 1

    There are plenty free and commercial version control systems out there. Unless you're a total egoist, there's no reason to write one from scratch. Instead, fork out some bucks and just get one.

    1. Re:Why write a new one from scratch? by Anonymous Coward · · Score: 0

      Theres this little thing called the open source revolution. Many neat things have come from it. I don't have a problem with paying for software as long as its GPL'd.

    2. Re:Why write a new one from scratch? by Anonymous Coward · · Score: 0

      Sure, the money tree, right?

      That is one of the nice things so far, free software development doesn't have a digital divide. I mean, a lot of 16-year olds get into writing free software. Imagine them asking their parent's for fifty bucks (or however much it costs) for a version control system to help manage distributed development of free software. Not to mention families like mine who are essentially poor--these kinds of expenses really start to add up. I mean, depending on proprietary software is bad enough.

      In the end, that sort of argument keeps free software technology in the hands of the techno-yuppies.

  21. Locking files, maybe? by Elkobim · · Score: 1

    From the CVS manual:

    (the release command)
    This command is meant to safely cancel the effect of `cvs checkout'. Since CVS doesn't lock files

    Locking files is very important in a normal work enviroment, and CVS approach is more towards "loose" free project development.

    --

    I want tender love now!
    Elkobim
    1. Re:Locking files, maybe? by mohaine · · Score: 2, Insightful

      CVS does handle locks. It is based off of RCS, which uses locks. The option wasn't removed, just made hard to find. Look at the admin command. Locks are requrired when you have concerent development on binary files, which can't be merged.

      Useing locks on text files is normally counter-productive.

      http://www.cvshome.org/docs/manual/cvs_16.html#SEC 113



      -l[rev]
      Lock the revision with number rev. If a branch is given, lock the latest revision on that branch. If rev is omitted, lock the latest revision on the default branch. There can be no space between `-l' and its argument. ...

      -L
      Set locking to strict. Strict locking means that the owner of an RCS file is not exempt from locking for checkin. For use with CVS, strict locking must be set; see the discussion under the `-l' option above.

      --
      (appended to the end of comments you post, 120 chars)
    2. Re:Locking files, maybe? by Anonymous Coward · · Score: 0

      The alternative to file locking is a branching and merging CM process.

      Start with a base line
      Create a branch from it for each change set
      Implement the change sets in parallel
      Merge the change sets to create new base line

      This process is more work than a locking methodology but gives you a) parallel development, b) absolute control over what is integrated into a release.

  22. From my perespective:Need Windows Support by haplo21112 · · Score: 4, Insightful

    My largest problem with most of these revision control systems for Open source is the Lack of the Windows based Servers...I Know I know...but unfortunately most of the development I do is for the company I work for, and I just don't have a choice in these things. I have to develop for windows here, and I have to use windows systems, NO Linux, BSD, etc allowed. However I can't stand most of the Closed Source systems, I would love to be able to use one of the open source systems at work. Before you get tofar down that road of thought, Cygnus(or VMware, etc) is not the right fix here either, the server team does not allow that sort of software on the servers.

    --
    Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    1. Re:From my perespective:Need Windows Support by jdh28 · · Score: 3, Informative

      There is quite a mature native Windows port of cvs that we've been using for quite some time.

      john

    2. Re:From my perespective:Need Windows Support by lifeless · · Score: 1

      By Cygnus, I presume you mean Cygwin? Cygwin and VMWare are very different beasts. A cygwin linked program is 100% a native win32 executable. No Linux, No BSD. If the server team object to open source tools per se, then you are going to be unhappy no matter what.

    3. Re:From my perespective:Need Windows Support by Anonymous Coward · · Score: 1, Informative

      What about purchasing one of the WalMart machines, sneaking it into the building one day, and just adding it to the network. You could even configure the machine to refuse connections except from your work group to try and keep it off of your ServerNazi's radar screens.

    4. Re:From my perespective:Need Windows Support by r00tarded · · Score: 3, Informative

      plus tortoise which has been working very well for myself and some co-workers.

    5. Re:From my perespective:Need Windows Support by haplo21112 · · Score: 2

      If they can't ideantify the machine then the NetworkNazi's pull the lan connection....

      --
      Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    6. Re:From my perespective:Need Windows Support by haplo21112 · · Score: 2

      yeah I wasn't quite lucid this morning, and I was listening to RUSH, so that was the word that came to mind, but I ment cygwin....
      The trouble is what cygwin does and how it modifies and changes things. I built a test box with it once and as soon as the server team looked into it, they panned it and wouldn't approve loading it on the system.

      What I was really saying is that tools which would make NT act other than its out of the box intention such as getting Unix behavior through cygwin, or even emulating unix in a vitual box under VMware is a no no here....

      However I could sell a tool such as CVS...if it ran as a native NT service and didn't require other tools to be loaded on the machine like Cygwin...Jrun on a web server doesn't even pass muster around here....

      --
      Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    7. Re:From my perespective:Need Windows Support by ethereal · · Score: 1

      But your target platform has nothing to do with your development tools in this case; the version control system just sits on a box in the closet, it's not like you also have to be able to test on it or write pretty management reports or whatever. For example, with many of these systems you could use a Windows client but still have a BSD server, etc.

      Sorry to hear about your management, anyway.

      --

      Your right to not believe: Americans United for Separation of Church and

    8. Re:From my perespective:Need Windows Support by Fulcrum+of+Evil · · Score: 2

      Convince a VP that your linux box will help things along by being more cost-effective, faster, or whatever and have him grant you an exception.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    9. Re:From my perespective:Need Windows Support by Phronesis · · Score: 2, Informative
      However I could sell a tool such as CVS...if it ran as a native NT service and didn't require other tools to be loaded on the machine like Cygwin

      So look at cvsnt. It meets your requirements:

      • Runs a cvs server as a simple native win32 service under WinNt, Win2K.
      • Has a Win32 style control panel to configure the service.
      • Builds with Visual C++, so no funky cygwin cruft required.
      • Allows pluggable network protocols as separate dll's, so you can add or remove a protocol without needing to restart the service.
      • Offers additional features beyond core CVS:
        • 'ls' command to list the contents of the repository, not just dump modules file as 'cvs co -c' does.
        • sspi and ntserver wire protocols for native Win32 authentication, encrypted network traffic.
        • User impersonation (equivalent of Unix setuid).
      • Good support from active mailing list.
    10. Re:From my perespective:Need Windows Support by gstein · · Score: 1

      The Subversion server is built on top of Apache, which runs "everywhere". Our only real limiting factor is where Berkeley DB runs, but that seems to be everywhere, too.

      In fact, Apache 2.0 on Windows is quite the neat little beast. It keeps up with IIS(!) Not bad for an Open Source project which doesn't get to put its code into the kernel [like IIS does].
      And Apache and Subversion are native Windows apps. No need for cygwin or vmware.

    11. Re:From my perespective:Need Windows Support by haplo21112 · · Score: 2

      I wish, but going anywhere further up the ladder than your immediate supervisor is a CLM.

      They seriously frown upon going over other peoples heads around here.

      --
      Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    12. Re:From my perespective:Need Windows Support by Anonymous Coward · · Score: 1, Informative

      Seconded, we use CVSNT and Tortoise, and it works really well. It works well for us as we are a geographicaly distributed group of developers with erratic interconnectivity, all working off laptops that move with us. CVS is brilliant for this as you dont need to check a file out to make a change.

      The only down side for tortoise is that can make explorer a bit slow if it cant reach the CVS server.

  23. CVS by Anonymous Coward · · Score: 0

    why are opensource projects so intent on reinventing the wheel everytime something isn't completely to their liking? isn't that a major part of the reason why things ARE OS? if you don't like it, change what you don't like, or add to it if you need to. like someone posted above, why not just extend CVS (or some already adopted control system)?

  24. Troll control system! by Anonymous Coward · · Score: 1, Funny

    I think the practice of moderating posts to -1, troll is just not effective any more! Most people read at -1 anyway. Time for a new system?

    1. Re:Troll control system! by Anonymous Coward · · Score: 0

      Why not just put trolls at a totally separate category, beyond -1 (since some legit posts do make it to -1 offtopic, overrated, flamebait, etc...) that way the trolls are totally separated from the rest of /.

      I like it!

      Trollin' along...

  25. object changes on tasks by beofli · · Score: 2, Informative

    Look at Continuus Versioning Control System: every change on an object belongs to a certain so-called "task" (or more than one task). tasks belong to a certain task-folder and task-folders can used for releases. Continuus has a nice flexible database, but the disadvantage of this is that it makes it complicated for people to learn it fast.

    1. Re:object changes on tasks by kix · · Score: 1

      I can't seem to find it on their website www.continuus.com - perhaps you could post some kind of link?

      --
      I am SO cool I can keep meat fresh for a WEEK!!!!
    2. Re:object changes on tasks by Lord+Custos · · Score: 1

      Okay...this might be a tiny bit off-topic.
      Referring only to actual version numbering:
      Why use Version.MajorRev.MinorRev.Build (beta,pre- etc.) when it would be slightly more useful to go Version.MajorRev.MinorRev.Date?
      Or for a bunch of revisions in one day:
      Version.MajorRev.MinorRev.Date.Time
      Wouldn't this not only keep the versions straight but give over developers an idea of how old the code is?

  26. Key Feature: directory awareness by antony · · Score: 5, Informative
    The most serious flaw in CVS, IMO, and the most important feature to address in any new system, is CVS's total lack of understanding of directories. If you ever want to change the structure of your CVS controlled source tree, you either have to:
    • fake out CVS by doing a remove/add pair on every file you want to move (which means you lose the revision history of each such file!), or
    • manually move files around in the repository (which entirely defeats the purpose of using a revision control system in the first place!)
    If anyone out there creates a successor to CVS, please fix this fatal flaw!
    1. Re:Key Feature: directory awareness by Anonymous Coward · · Score: 0

      Hell, getting CVS to understand the simple concept of a fucking sub-directory would be a good start. I want to cvs ci this & all sub-directories, damnit! I want to cvs update just this directory, damnit!

      CVS is a bag-o-shite.

    2. Re:Key Feature: directory awareness by tazzzzz · · Score: 2, Informative

      Meta-CVS is a wrapper around CVS that adds directory structure versioning.

    3. Re:Key Feature: directory awareness by chanceH · · Score: 1

      ok you got me, troll.

      > I want to cvs ci this & all sub-directories, damnit!

      cvs commit

      >I want to cvs update just this directory, damnit!

      cvs update `find -maxdepth 1`

      er somethin like that

      why don't you get at least the skillz of trained monkey before you bash good programs
      like CVS

    4. Re:Key Feature: directory awareness by spitzak · · Score: 2

      I'm pretty certain all of the listed replacements, and every other one everybody has thought of, addresses this problem. It is the most obvious defect in CVS, and in my limited use, the only one that has really hurt the projects I work on (simple things like deciding to change all the .C files to .cxx so stupid Windows can compile them as C++ required the entire revision history to be deleted and forced everybody to update every file, and now we discover that .cxx is not the most popular Windows extension and we should be using .cpp! I also would like to fix the capitalization and standardize the prefixes on source files and there is a strong disincentive to do this).

    5. Re:Key Feature: directory awareness by Anonymous Coward · · Score: 0

      Nope. Nice try. Wait, no it wasn't, your post doesn't adress any of the problems I have highlighted

      Way to go on calling me a troll, though!

    6. Re:Key Feature: directory awareness by fferreres · · Score: 2

      Bad manners don't get you anywhere.

      But you are lucky anyway because others (subversion, etc) have already addressed the issue.

      The only problem is losing the nice frontends like tourtoise CVS (can remember the exact name) . To bad my Windows pals will NOT want to learn a command line interface :(

      It would be nice to have a generic system, where you can just add plugins to manage other data (like Abiword docs, or GNumeric files). That would make a revolution (would be nice to see that patented an Micrsofto locked out :-).

      --
      unfinished: (adj.)
  27. Look to ClearCase for some pointers by EasyTarget · · Score: 5, Informative

    I'm a ClearCase specialist so I'm biased.

    However ClearCase has some -very- good features, and here is what I would arrive at (ideally):

    1) Make your repository a mountable file system, supporting multiple types of connection, NFS, SMB, Active Directory, FTP, etc.. When connecting you must specify a profile to be used.

    2) Make every user have a number of profiles (Min:1) (like ClearCase views), these profiles contain -all- the info needed to access file versions correctly. They should allow sharing ('base my profile X on the profile Y created by user Z'). And support concepts such as labelling, conditional branching, etc..

    3) All profiles are managed from a central server (redundancy?) via a web interface (to achive cross-platform conformity) and command-line interface (SSH based) for scripting/power-users.

    I could go on forever, but I think the three above points are the things that matter most to me. Obviously you also need security, administration, storage, etc.. but I think that making files available simultaneously via many common file sharing protocols would produce the greatest benefit.

    Finally: MAKE DIRECTORIES VERSIONABLE/BRANCHABLE!, yes it causes some potential headaches, but it's benefits easily outweigh them.

    --
    "Oops, I always forget the purpose of competition is to divide people into winners and losers." - Hobbes
    1. Re:Look to ClearCase for some pointers by ce25254 · · Score: 1

      Yes, yes, YES! for versionable/branchable directories.

      I use ClearCase on projects at my job; and although it took a bit of getting used to, I do now think it is great and very powerful.

      Question: is there a good site on the web that compares/contrasts the features of different source code control systems?

    2. Re:Look to ClearCase for some pointers by maraist · · Score: 2

      We used clearcase extensively at an old company of mine, and it was great for internal projects. I definately don't think it has any place for open-source, however. Mounting file systems over the internet is definately out.

      As someone pointed out, many of the types of issues questioned in this tread are configuration management issues, not version control issues. Case in point, as powerful as clearcase was, we developed a MASSIVE set of wrapper scripts to automate many regular and complex tasks. These scripts would have been portable to many styles of version control (though probably not CVS).

      The main thing I didn't like about clearcase was it's dependence on the central server. I personally hate operating off mounted file systems. They're great for sharing info, but I've flat out refused to make my home directory nfs'd for a good reason.. It's slow and unreliable. There's always a point where something goes wrong or some administration is going on behind the scenes, and your desktop freezes. Likewise compilations are many times slower due to massive accesses to medium to small sized files.

      It is great for administrators though.. Backups are a sinch (since distributed data is all really stored centrally). It's also somewhat scalable since you can have separate servers perform different functions.

      It is expensive, however; both in licensing and hardware.

      My 10b cents.
      -Michael

      --
      -Michael
    3. Re:Look to ClearCase for some pointers by jrumney · · Score: 2, Insightful
      I'm a ClearCase specialist so I'm biased.
      That's why I don't like ClearCase.
      You shouldn't have to be a specialist to use a version control system.
    4. Re:Look to ClearCase for some pointers by GlassHeart · · Score: 1
      1) Make your repository a mountable file system, supporting multiple types of connection, NFS, SMB, Active Directory, FTP, etc.. When connecting you must specify a profile to be used.

      I have used ClearCase for several years, and I appreciate its many advantages, especially when applied to a large group of on-site developers. In this post, however, I limit myself to the downsides:

      • Build times are constrained by network speed. This is a smaller problem in a local network, but for a wide area collaboration, practically excludes dial-up users. Good caching can alleviate the problem, but there's still going to be substantial handshaking to ensure that your cached versions are correct (remember that ClearCase's LATEST tag can refer to different files each time).
      • When you disconnect from the network, you disconnect from the code. This makes it difficult to pick up your laptop and quickly head to a meeting.
      2) Make every user have a number of profiles (Min:1) (like ClearCase views), these profiles contain -all- the info needed to access file versions correctly. They should allow sharing ('base my profile X on the profile Y created by user Z'). And support concepts such as labelling, conditional branching, etc..

      One thing ClearCase lacks, AFAIR, is the ability to map a server-side file to a different name on the client. For example, files like config.h tend to be checked out by all developers, and rarely checked back in. An alternate solution is to map config.h to config.h.server (or something) and make a local writable copy as scratchpad.

      Also, multi-site development could be improved, even for ClearCase. It makes a lot of sense, especially for a large open source project, to have source control servers at least on each continent where developers reside.

      Finally (and not negligibly at all), ClearCase tends to need full-time specialists like you to maintain it. No offense, but I have to count that as a disadvantage under many settings.

    5. Re:Look to ClearCase for some pointers by ebh · · Score: 1

      If you're looking to change SCM systems on a large project, your best bet is the comprehensive configuration management toolset report from Ovum (flyer here.) It's jaw-droppingly expensive (currently US$3400), but you'll get that back in time saved when doing your evaluation, because you can prepare from it your short list of vendors you want to bring in for demos and eval licenses.

    6. Re:Look to ClearCase for some pointers by ipjohnson · · Score: 1

      Actually I work in a clearcase env with NFS'd home directories and I believe if done correctly (100 Mbit atleast , fast machines , and not more than 50 people off 3 servers) it can work really well for a dev. env.

      As for an open source solution I think CVS and the others can learn alot from clearcase, you can develop locally with clearcase and just check your stuff in when you believe its ready. Not to mention having the ability to mount the file system anywhere makes it much easier to bring the source code into a Lab and test/debug.

    7. Re:Look to ClearCase for some pointers by Anonymous Coward · · Score: 0

      I have never used ClearCase, so forgive me if these are stupid questions. Regarding point 1 above, can someone explain to me why a mountable repository is a good thing, let alone mountable over a bunch of different protocols? I have used CVS and Perforce, and am conditioned to think of the repository as a set of (logically) opaque files that only the version control daemon or the sysadmin should be messing with; developers check out working copies, and check in their changes periodically. Why is it a plus to have all developers mounting the repository as a filesystem? Don't you all want local copies that you are editing? How do you deal with disconnected work? I just don't see the up side...

    8. Re:Look to ClearCase for some pointers by Anonymous Coward · · Score: 0
      > You shouldn't have to be a specialist to use a version control system.

      Uh, what are your views on who should be allowed to program? Configuration and Release Management are like programming. They require special knowledge to do the job right.

      Anonymous Kev
      Proudly posting as AC since 1997

    9. Re:Look to ClearCase for some pointers by ethereal · · Score: 1

      Hmmm, so half the people commenting on this article want better and more powerful tools, but the other half are afraid to learn to use better and more powerful tools?

      I read this every time ClearCASE comes up here, and I still don't agree with this viewpoint. ClearCASE is easy to use from the GUI; anybody can sit down, check out a file or make a branch, and get to work with no problems. Sure, there's extra power under the hood for the admin to tinker with; that's the extensibility that makes people recommend ClearCASE in the first place, rather than just using a GUI slapped on top of CVS. The ClearCASE GUI isn't perfect, but it's as easy as or easier to use than the other GUIs that I've tried, including VSS (what a dog that was).

      The reason that the only people commenting about ClearCASE's good points are ClearCASE specialists/admins (yes, me too) is because your average ClearCASE user isn't an admin, and also frankly doesn't care enough about version control to be posting about it on /. :)

      --

      Your right to not believe: Americans United for Separation of Church and

    10. Re:Look to ClearCase for some pointers by Anonymous Coward · · Score: 0

      ClearCase doesn't require you to mount file systems anymore (for dynamic views); it's also supported traditional version control system "copy model" snapshot views for several years now. And there's a lower-cost version (CC LT) that supports only these snapshot views.

    11. Re:Look to ClearCase for some pointers by spitzak · · Score: 2
      Mountable file system is a bad idea for normal Open Source development. You want to allow somebody to mess with the code without being connected to the internet, and you want to allow somebody you don't really trust to look at the code and try their own experiments without any possible risk to the central system. Also there are lots of people who will check stuff out with the intention of doing some great and wonderful addition, but then do nothing, and it would be preferrable if such a person cost zero resources after they got the code.

      For these and many other reasons the private check-out style of CVS is much better. All the smarts needs to be done at the moment a user decides their changes should be merged back into the central database.

    12. Re:Look to ClearCase for some pointers by Anonymous Coward · · Score: 0
      I used ClearCase at a previous job, now I'm at a job that is CVS-only. I have to say that ClearCase was vastly superior. It still amazes me the way I could create a virtual copy of the entire source tree in no time at all, without using a significant amount of disk space. Directory management was a breeze compared to the do-it-by-hand approach in CVS.

      Open source zealots who have never used anything better (and apparently have no imagination) cannot understand when I try to tell them how limited CVS is and how much better a "real" source control system like ClearCase would be.

    13. Re:Look to ClearCase for some pointers by k8to · · Score: 2

      Ugh, as expected, you're wrong on all points.

      1) Make your repository a mountable file system, supporting multiple types of connection, NFS, SMB, Active Directory, FTP, etc.. When connecting you must specify a profile to be used.

      Filesystem semantics are not version control semantics. The semantics of all those filesystems and things are very different. Using a filesystem access method to get to the version control system intoroduces significant operating system reliance and issues.

      In general, this approach will complicate the server, complicate the client, introduce subtle consistency and corruption issues acrosss access methods, and offer no significant features that a local working set offers. In addition, most operations will be slower than a local set.

      2) Make every user have a number of profiles (Min:1) (like ClearCase views), these profiles contain -all- the info needed to access file versions correctly. They should allow sharing ('base my profile X on the profile Y created by user Z'). And support concepts such as labelling, conditional branching, etc..

      And _why_ do you need per-user views of the world? Can't the users figure out what files they want?

      In the smaller company/project case, you need a single view of the world that every single person sees. If they want to access older versions of things or other branches, they can all explicitly use the same controls to go see those things.

      In the larger company case, you may have specific lines of development, branches, and/or takes on the source base which relate to projects or reconfigurations of the sourcebase. Here you can set up views of the world which exist independent of the users, are created once and are consistent across all people who want to view the system in that way.

      The clearcase system of many views of the world per individual user leads to mass confusion and horror as no one knows what anyone is doing, everything is out of sync, and people copy increasingly broken configurations one to the next in a whisper-down-the-lane scenario from hell. This doesn't even require a poorly managed or large engineering team to do it. 50 developers or so working in the same arena and you've already lost.

      3) All profiles are managed from a central server (redundancy?) via a web interface (to achive cross-platform conformity) and command-line interface (SSH based) for scripting/power-users.

      Central server required. Great. No disconnected operation. No multiple office/continent/timezone, etc. development without huge costs. No realistic open source development model flexibility.

      Do we really need MORE indications that ClearCase is not a fundamentally workable tool?

      Just say "No" to ClearCase!

      Brought to you by the Campaign for Sanity for Developers.

      --
      -josh
    14. Re:Look to ClearCase for some pointers by solarrhino · · Score: 1
      The reason that the only people commenting about ClearCASE's good points are ClearCASE specialists/admins (yes, me too) is because your average ClearCASE user isn't an admin, and also frankly doesn't care enough about version control to be posting about it on /. :)

      Well, that and its inapplicability to most open source projects - ie, high per-seat cost, and need to share a filesystem over the internet.

      Don't get me wrong - ClearCase is the best VCS I've ever used - but it isn't perfect for every problem.

      --
      "Lord, grant that I may always be right, for Thou knowest that I am hard to turn" -- A Scots-Irish prayer
    15. Re:Look to ClearCase for some pointers by Ranolf · · Score: 1

      I must use ClearCase in my job every day, and I hate it more than any source code control system I have used before (CVS, VSS, StarTeam) - albeit, not always because of ClearCase itself.
      ClearCase is VERY VERY powerful. This leads to two major disadvantages:
      1) With power comes the opportunity for abuse; hence it is easy to really screw things up.
      2) With power comes complexity; it is not only difficult to administer, but also difficult to use.

      For example, because directories are treated as elements to be managed just like files, you must check out and check in directories before you can change any property of a file.
      There is a rule engine [config spec evaluation] for evaluating whether you are going to access a particular set of branches or labels. The branching and merging mechanisms have a steep learning curve, and expose a great deal of complexity that would not lend itself very easily to open source development.
      Lastly, dynamic views - a mechanism whereby you mount a filesystem that where "updates" occur instantanteously - have two big problems:
      * it's great that you're always up-to-date, but it also means that you can't be sure that interfaces to code you depend on can't change from under you
      * performance: dynamic views are terribly slow when there are large numbers of people, it tends to saturate your network, and remote users/remote projects are unbearably slow.

      ClearCase, while it has some unique and powerful options, is NOT a good model for Open Source projects.

      --

      "Perfect numbers like perfect men are rare." -Descartes
    16. Re:Look to ClearCase for some pointers by ethereal · · Score: 2

      Very true - it is not a good fit for the typical open source project, but that's not the assertion that I'm arguing against :)

      --

      Your right to not believe: Americans United for Separation of Church and

  28. Most Important? by miker · · Score: 1

    I've used way too many different SCM systems in my career (CMS on a vax, PCMS on a vax, CVS, ClearWaste, sorry ClearCase, sccs, rcs), they all have good and bad points. From a developer's point of view, all the tools that management like are hated by the developers. People making these tools seem to forget that if the tool gets in the way of the developers job or is so awkward to use, he won't use it. CVS is the best of the bunch (IMO) at letting the developer do his main job of developing code.

    My opinion, feel free to disagree; opinions are like a**holes, everybody has one.

    1. Re:Most Important? by Anonymous Coward · · Score: 0

      Which is why you need to do clean builds and installs. That way, the a**hole developers will have to checkin their code even if they hate the system!!! Works with any source control system. muahhahhahhahahha!

  29. Two different useage models by nut · · Score: 2, Informative

    I think in designing a source control system you have to be aware that there are two different usage models.

    • A small team, working in the building or room, with strong lines of communication, using source control ans integral part of a larger formal development process.
    • An open source or widely distributed project where many or any people can contribute to the project, the lines of communication are weak, and the development process is largely ad hoc.

    CVS has been designed and mostly used for the latter. Tools like SourceSafe and Clearcase were designed, and are almost exclusively used for the former.
    One of the obvious differences in approach is file locking on checkout. Obviously there are others as well.

    I don't see any reason why one tool could address both models, with suitable ruleset configuration for the administrator. But you have to recognise, and design for, one or the other or both models from the start.

    --
    Never trust a man in a blue trench coat, Never drive a car when you're dead
    1. Re:Two different useage models by axxackall · · Score: 1
      "suitable ruleset configuration" - this is the key. The system (change and configuration management) should be rule-based. The reason why all previous open source (and even commercial) CCM systems failed - their architects ignored results achieved in AI research and, therefore, they made very unflexible systems.

      Based on my software development expierience (17 years) I can tell, that there is no clear borders between models of software development process organization. Every team is uniq. Therefore, there is no universal models. But there are rules:

      • Rules to control access (based on ID, groups, roles, files, directories, branches, tags, schedules etc).
      • Rules to replicate distributed repositories. Rules to roll-out new versions.
      • Rules to resolve conflicts
      • Even rules to create "smart" diffs
      • and, of course, rules to "report" (if CVSWeb would be made with XSLT).
      Prolog may help, but it's not a general programming language. Lisp is good, but it is not popular. Yet. Although, there is at least one project on Lisp related to CVS improvement: Meta-CVS. Python is much more popular and can be used effectively for AI programming, but there is no official standard for Python and that's why it is gonna dyi soon. Together with Perl. Erlang? Dylan? Too proprietary and there is not enough of libraries. The other languages are not good for functional programming. That's why I would support the effort of Meta-CVS, which is based on Lisp. Just I would go further and implement complete rule-based distributed change and configuration management layer over CVS.
      --

      Less is more !
    2. Re:Two different useage models by ba_hiker · · Score: 1

      Well there is at least one more, common in corprate development enviornments: A large team (of hundreds or thousands of individuals) with differing backgrounds (not all programers) working on a complex project at once. While each may have seperate 'project' they all impact the same code base. This is really the problem the Clearcase, CCC and some of the other larger CM systems are solving; keeping 1000 people out of each others hair. I have worked on several projects with 400 developers, graphic artists (defineing graphics), online documentation (integrated with the GUIs), etc. working on the same code base. To do this well you need atomic operations (most CM fails here), branching (can ever break the nightly build or half the people stop working), good merging (will often have merge conflicts), profile/view management (allows you to fix bugs in the release and work on the current stuff), various kinds of rules, and distributed operations at several levels.

    3. Re:Two different useage models by Anonymous Coward · · Score: 0

      You have some interesting points and theories, but the link to "programming Parrot" and the claim that it showed why Python and Perl were going to die intrigued me... was it humour or were you serious?

      Anyone who is wondering what I am on about... take a look at the date of the article :-)

  30. Version Control for PHP by LedZeplin · · Score: 1
    Are there any Version Control programs designed with PHP, etc. websites in mind?

    I've tried to use CVS but ran into too many difficulties. with getting working versions of the site checked out into development web areas etc. Plus there wasn't a dummy way for windows users to check in/out files to their work areas on the server.

    I've read all the info I can find about using version control for websites, but most of that doesn't go much past static html sites.

    I'd gladly listen to any suggestions out there.

    1. Re:Version Control for PHP by Cuthalion · · Score: 1

      I don't understand what demands PHP has on version control that C++ and static HTML don't. I think CVS is just as good at PHP as it is at any other language...

      To address your other concern there are several graphical CVS clients for windows. Most of them suck, but Tortoise CVS is my favorite of all the interfaces I've used to version control (which include integrated MS Visual Studio IDE support, Continuus, and Perforce), though of course it has the limitations inherent to CVS. (If you get Tortoise, I also recommend you look around at some alternat icon overlay packs so it looks nice)

      --
      Trees can't go dancing
      So do them a big favor
      Pretend dancing stinks!
  31. How many features are needed? by f00zbll · · Score: 2, Insightful
    I have a personal bias on this issue, but for me CVS is all I need. Having lots of fancy features like file-locks in StarTeam, and SourceSafe creates a false sense of security. I don't have 20 yrs of experience like some people, but in the 7 yrs of programming the organizational structure has a the biggest effect on source management and control.

    Trying to maintain a huge source database with hundreds of developers is basically impossible if there isn't a well established team structure with source managers. When there are fewer than 6 developers working on the same project, it is fairly smoothe. With 12 or more developers, it gets exponentially harder to figure what's going on. Unless there are very few check-ins or changes and the source is in maintenance mode.

    In active development phase, there may be dozens to hundreds of checkin's and changes per day, which may cause an unknown number of effects. It doesn't matter which development style you use, because in the end it comes down to whether or not the product is divided into small manageable chunks. Distributed development is a management artform and very few managers know how to do it effectively. I would put forth the idea that the tool for source management is really only 20% of the equation of distributed development/source management. Trying to address the problem by focusing on the symptons isn't a solution to the real cause of the illness.

    1. Re:How many features are needed? by Anonymous Coward · · Score: 0

      CVS...I would recomment that you widen your view a bit m8. You will not be sorry :)

      If you want integrated UML modeller where the sourcefiles methods and attributes are modifying UML documents directly you should take a look at clearcase, it integrates with rational rose. It also makes a mountable filesystem and really good administration. Quite expensive but worth the price if larger projects.

      If you need a cheaper solution but still a very good and powerful versioning tool you should take a look at perforce, very sweet indeed and absolutely worth the $600 per seat. There is a free 2 user license that you can download with no quetions asked (www.perforce.com) if you want to test it.

    2. Re:Re:How many features are needed? by f00zbll · · Score: 1
      If you want integrated UML modeller where the sourcefiles methods and attributes are modifying UML documents directly you should take a look at clearcase, it integrates with rational rose. It also makes a mountable filesystem and really good administration. Quite expensive but worth the price if larger projects.

      I have nothing against UML, but from personal experience UML in the hands of a junior developer can have a stunting effect. UML in the hands of a senior developer or lead architect is very powerful and can save a lot of time. Other people will have different experiences, but my experience tells me the things UML tries to solve are communication issues between developers and management. For that UML doesn't help one bit. In all the cases I've seen first hand, solid communication skills is what made the difference.

      Time is better spent trying to determine exactly where the disconnect is and how to communicate more clearly. Without that, source control, UML or Xtreme programming are just distractions.

  32. 10 problems with CVS by j1mmy · · Score: 5, Interesting

    1. Documentation is piss-poor. There's an easy solution to that one, but nobody likes writing documentation.

    2. Updates don't always work as expected. They won't grab new directories and a few other quirky things.

    3. Empty directories should be pruned by default in a checkout or update.

    4. I'm tired of seeing a CVS directory everywhere I look. How about .CVS instead?

    5. Access control is poorly handled. It's good that you can map virtual user names, but it would also be useful to control access by groups.

    6. Local CVS tree file ownership is by user, not the CVS owner. This opens up all manner of problems for users with a local CVS repository. Repository data should be in a non-user account, checkout should force authentication, and the server should handle who has access to what. This would not be tremendously hard to manage, since in the general case a user has access to a project or not. Fine-grained access control of the repository isn't a common necessity.

    7. Plays badly with (most) IDEs. When I want to work on a project in an IDE, it floods my checked out directories with all manner of crap I don't want in the repository. You can set up refuse files to clean these out, but it might break your IDE project. This is more a fault of IDEs than CVS, really.

    8. Needs smarter add functionality. I don't like writing stuff like 'find ./src/ -name "*.java" | xargs -n 100 | cvs add' just to hunt bring in my new source code.

    9. CVS is a boring acronym.

    10. I can't think of a tenth thing.

    1. Re:10 problems with CVS by Anonymous Coward · · Score: 1, Insightful

      8. Needs smarter add functionality. I don't like writing stuff like 'find ./src/ -name "*.java" | xargs -n 100 | cvs add' just to hunt bring in my new source code.

      Thats really the same thing as

      2. Updates don't always work as expected. They won't grab new directories and a few other quirky things.

      If CVS understood the simple concept of a sub-directory (I don't even want versioning!), then most of these problems would go away.

      10. I can't think of a tenth thing.

      How about the ability to rename a file or directory without having to piss about with cvs remove, then a cvs add, which not only kills your version history, but is also a royal pain in the ass?

    2. Re:10 problems with CVS by RichN · · Score: 1
      How about the ability to rename a file or directory without having to piss about with cvs remove, then a cvs add, which not only kills your version history, but is also a royal pain in the ass?

      I think the reason you need to use "cvs remove" then "cvs add" is so that the version history is preserved. I don't want anyone changing the historical look of the project.

      I agree, however, that there should be a rename command that simply does the remove/add commands.

      --

      Rich

    3. Re:10 problems with CVS by martinschrder · · Score: 1
      1. Documentation is piss-poor. There's an easy solution to that one, but nobody likes writing documentation.
      Check out the CVS book
    4. Re:10 problems with CVS by j1mmy · · Score: 1

      How about the ability to rename a file or directory without having to piss about with cvs remove, then a cvs add, which not only kills your version history, but is also a royal pain in the ass?

      Yes. That irks me to no end. I've had more than a few projects in the past with files named SomeObject.cxxx or a directory called incldue.

    5. Re:10 problems with CVS by Creepy · · Score: 1

      I have one problem with your list: using .CVS is bad because old macs (pre X) use the . to signify a driver. I don't write for old macs, but if you want a truely cross platform replacement for CVS, you probably want to avoid . names.

      Filterable downloads would be nice (files to not include in your copy of a project), but that may cause problems elsewhere. I'm mainly referring to cross-platform files for platforms you don't need here - if I'm making a macosX or Linux project, I don't need platform specific files for Windows, Cygwin, OS/2, Amiga, and x number of other systems cluttering up my work/build space.

      I personally want searchable repositories. I'm tired of having to go to the web (webcvs) to find out if the archiving site I'm looking at is up to date with the project before I spend time downloading it. I didn't have a problem with this until Loki went under (ftp down) and I needed to get a copy of the OpenAL source. I found several archives that weren't up to date before finally finding one that had source from the day before close (I needed source from at least a week or so before to include a recent fix).

    6. Re:10 problems with CVS by Anonymous Coward · · Score: 0

      Well, the version history is preserved on the files you have removed, yes. The problem is that the files you add are not simply treated as new versions of the old files, and as far as CVS is concerned, the files you have removed & the files you have added are two completly seperate files. The files you have added do not inherit the version history of the files you have removed. Which is the problem :)

    7. Re:10 problems with CVS by Ben+Hutchings · · Score: 2

      2. Updates don't always work as expected. They won't grab new directories and a few other quirky things.

      3. Empty directories should be pruned by default in a checkout or update.

      Use the options -dPR. If you always want this behaviour, put the options in your .cvsrc.

    8. Re:10 problems with CVS by cartman · · Score: 2

      > 1. Documentation is piss-poor.

      On this point I disagree completely. CVS has the best documentation of almost any open source project I've seen. Cederqvist wrote a significant book on the subject, which is open source and freely redistributed. Typing "info cvs" brings up documentation that is coherent, explanatory, cross-referenced, and organized.

      Most open source projects have documentation that is a few pages of badly written english. Usually that documentation answers no questions and provides no information.

      I'm curious to know exactly what your complaints are about the current cvs documentation.

    9. Re:10 problems with CVS by j1mmy · · Score: 1

      My main complaint is the lack of server documentation. There are explanations of how to set up remote access and a few other things, but there are also administrative files that either aren't explained at all, or aren't explained enough.

    10. Re:10 problems with CVS by Anonymous Coward · · Score: 0

      This has already been mentioned before but I'll mention it again. This book covers the admin files and many other things very clearly.

      If it's not in the book, the web is a great source of information.

      http://cvsbook.red-bean.com/cvsbook.html

    11. Re:10 problems with CVS by Anonymous Coward · · Score: 0

      that's where good design comes in:

      cvs co common
      cvs co arch/osx

  33. Requirements of a decent version control system by smartin · · Score: 2

    A decent version control system should provide support for change packages - (atomic groups of changes that must be promoted through the system as an single unit). It also needs to provide support to manage a set of stages in the developement cycle so that changes can travel through development, qa, and production in an easily manageable manner. Hooks to integrate with issue tracking systems is also importand. Perforce has most of these features but they are somewhat cumbersome to use. MKS Source Integrity probably also has these features.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
  34. Not PVCS by Atzanteol · · Score: 1

    I know it *wouldn't* be PVCS. I've been using it for a little while now at work, and it's aweful. The client's (X11, Windows, 'Web') are buggy as hell. If you're 'remote' you're forced to use an aweful web-interface (Java) that will drive you insane.

    Yes, I have an opinion on this. :-)

    --
    "Ignorance more frequently begets confidence than does knowledge"

    - Charles Darwin
    1. Re:Not PVCS by Anonymous Coward · · Score: 0

      So true. After waiting 3.5 minutes for my PVCS Windows client to open, the application crashes becuase I click a file, then right click to perform a checkout or a get.

      Note: To avoid this crash first click the file, wait 30 secs for the browser to load all of the file attributes such as "Modified Date", then right click and hope that all of the options come up.

  35. What Exactly IS Wrong With CVS? by Ivan+Raikov · · Score: 5, Interesting
    Perhaps I don't have very complex needs, but it seems to me that CVS is already incredibly flexible and has all the advantages of Free Software. I'd like to point out the following reasons for continuing to use CVS (in no particular order):
    • Fits well with the Unix philosophy -- CVS, of course, builds upon RCS, and uses other Unix tools, most notably diff to accomplish its tasks. It also allows for custom shell scripts or programs to serve as handlers for various CVS operations. What other source control tool fit so well in Unix, and maintains the tradition of older Unix tools?
    • Customizable behavior -- CVS allows the user to provide three kinds of commit support files (like commitinfo, verifymsg, etc.) which are programs executed whenever files are committed.
    • CVS modules allow for multiple different definitions of collections of source code, so one is not restrained to just a directory and all the files contained in it as the smallest organizational unit.
    • Tags and keyword substitution -- CVS has a very powerful system for tagging files in various manners, and referring to those tags for purposes of commit/checkout/diff/revision history. I don't know how much better than that you can get. Substituting keywords, a favorite feature of mine, lets you include your version history in the sourcefiles -- this is important when you're working with other programmers and you want to spare them the inconvenience of having to do `cvs log' each time they want to see what changes you've made.
    • Repository format is plain text -- well, I am a staunch believer in open file formats, and plain text/diff is about as open as you can get.
    1. Re:What Exactly IS Wrong With CVS? by Ivan+Raikov · · Score: 2

      Forgot one thing: integration with Emacs. Duh. What could be more important than the smooth integration CVS has with the One and Only True Editor?

    2. Re:What Exactly IS Wrong With CVS? by brettw · · Score: 5, Interesting
      Perhaps I don't have very complex needs, but it seems to me that CVS is already incredibly flexible and has all the advantages of Free Software.
      CVS is a proven workhorse. I use it every day, keep my configuration files in a module, etc. in addition to my source code at work. But there are some things that are absolutely maddening about it (the early AC post with 12 must-have's hits several of them on the head). Personally, as my CVS usage is for a relatively small team, the lack of atomic commits just hasn't bitten me yet, although I can see why it's important for a best-of-breed tool.

      But a couple of day-to-day common tasks are painful (or just plain impossible).

      Personally, sharing source files across multiple projects is a real pain. We do it with soft links in the repository (gag) so it can be done, but it's ugly.

      Let's say you want to reorganize your directory structure without screwing up your history. Well, that's hard to do with CVS, so instead we'll just let the organization continue to be cluttered and confusing.

      Heck, let's say you just want to rename a file, let alone a directory:

      cp foo.c bar.c
      cvs add bar.c
      cvs remove -f foo.c
      cvs ci -m "renamed foo.c to bar.c"

      It just gets really annoying, and now bar.c can't be reverted version-wise unless you KNOW that its previous contents were in foo.c. It's a manual, error-prone, and tedious process if you ever need to do that.

      I've been running a subversion server for months now just to test out. I can't wait to move to it. I like being able to say:

      svn mv foo.c bar.c
      svn ci -m "renamed foo.c bar.c"

      and keep my history intact.In fact, writing this makes me want to just start migrating stuff by hand today! Subversion's important bugs (it is still alpha I think, it's slashdotted so I can't check the status as of right now) are almost all in features that CVS doesn't have anyway.

      That said, I haven't really tried any of the other open source projects such as arch which have similar features. The main draw of subversion for me is the fact that I had to learn almost nothing to use it. As an experienced CVS user, subversion is trivial to learn. The effort they have put in to keeping things the same as long as there is no good reason to do otherwise is well-spent (at least from my point of view).

      Plus, the subversion code is super readable and well-commented--honestly the best source I've seen.
    3. Re:What Exactly IS Wrong With CVS? by coldtone · · Score: 2, Insightful

      As a Java developer there is one big thing missing CVS. Code refactoring support.

      For example:

      Lets say you are working on a large project 20 or so developers. And you create a little utility class for the area you are working in. You check in the code to your module (or package ) and use it. A few of you buddies are running into some problems that your utility can solve so the end up using the class. Now a few months later a large amount of code now uses your little utility, and the leads want to move your class to the global utility package. Tools exist that can quickly move the class and change all of the references that use that class. But to check in this change is a nightmare.

      The thing is in Java this type of operation is common, and is good for the project (keeps the code clean). But until a version control system has proper code refactoring support it will always be hard to do.

    4. Re:What Exactly IS Wrong With CVS? by pmz · · Score: 1

      What other source control tool fit so well in Unix, and maintains the tradition of older Unix tools?

      Since you mentioned UNIX, the answer to this question is SCCS. It is even simpler than CVS and lends itself greatly for use within shell scripts.

    5. Re:What Exactly IS Wrong With CVS? by alienmole · · Score: 2
      What kind of support for refactoring do you have in mind? I do Java development with plenty of refactoring (using Eclipse), and most of the time a simple commit of the tree picks up all the changes. The only exceptions are new files, and renamed/deleted files. However, that's not always an issue, and when it is, it's usually not on a lot of files.

      BTW, one thing that can help is to use a GUI interface to CVS. Eclipse integrates with CVS, and on Windows, WinCVS does a good job.

    6. Re:What Exactly IS Wrong With CVS? by wfrp01 · · Score: 2
      In my modest use of CVS, I've found it lacks a couple of features I would like:
      • PreservePermissions should work
      • Better commit function triggers
      • Checkout function triggers - e.g. push files through a filter (which may be part of the file set) on checkout - see next item
      • Non-CVS checkouts. Example: check out system config files (which possibly require host-specific edits - see item above).
      OK, so I'm a weirdo - what can I say.
      --

      --Lawrence Lessig for Congress!
    7. Re:What Exactly IS Wrong With CVS? by steve_l · · Score: 2

      How well does subversions WebDAV API work with arbitrary webdav clients? I want to have things like framemaker connect into the system as well as classic IDEs

    8. Re:What Exactly IS Wrong With CVS? by Anonymous Coward · · Score: 0

      - You cant easily rename/move files/directories and
      still retain history.
      - There is no "libcvs", thus most cvs interface programs(e.g. gui programs) uses the cvs to parse its output - somthing that is difficult to do, easily breaks, and might be unreliable.
      - Lack of atomicity. Just try, have several people commit, while others check out, and someone is tagging. If often breaks, and its likely someone ends up with a bogus checkout. Or someone commiting several files, on the 5. file it fails, but doesnt rollback the successful ones.
      - on _large_ progecs, even the simplest operation can be very slow.
      - You need interactivly handle binary files.
      - Lacks many features, e.g. assigning attributes to files.
      - Works only on a per file basis. If I commit a new feature spanning multiple files, its not easy tracking that commit.

    9. Re:What Exactly IS Wrong With CVS? by pediddle · · Score: 1

      You can view a repository in most WebDAV clients (AFAIK it works with Windows and Nautilus), but I believe it is read only right now. Subversion 1.0 will have improved support, and Post-1.0 will move towards being a generic WebDAV server (with DeltaV extensions)! That will be so cool, to just drag file in Nautilus and have it take the diff and do revision control automatically.

  36. command line options by bug1 · · Score: 1

    I dont know what the ideal interface should be, but know its NOTHING like CVS.

    Setting environment variables should not be _required_ to perform basic tasks, and the command line options shouldnt be more the 2 line of text !

    Ideally the command line optiosn should be some remote resemblance to at least 1 other popular program, you should invent an entirely new command line export(syntax) :just:for:for/your:project

    Backwards compatability is bad if it makes it hard for everyone for the rest of time.

  37. Why "The Open Source Community?" by NitsujTPU · · Score: 3, Interesting

    Basically, does the Open Source Community need new tools in this aspect of development?

    Why only ask about the open source community. Do programmers need new configuration management tools?

    CVS works fine for me. BitKeeper seems nice too. What I hate is that there's so much controversy just because BitKeeper isn't open source.

    1. Re:Why "The Open Source Community?" by Anonymous Coward · · Score: 0

      This is because you lack profound understanding and should not even be reading /.

  38. version control? by Anonymous Coward · · Score: 1, Funny

    There are much better solutions than version control systems:

    1) Don't have version control. Just have one single developer working on everything. Since humans are largely single-threaded, you have no locking to worry about.

    2) Don't write software. If you're careful you can usually get away with mucking about on the web or playing nwn with the sound turned down in all but the smallest offices. You needn't worry about version control at all.

    3) Seperate the development out properly so developers don't tread on each others feet. For example, get one programmer to always write the bottom 15% of each c++ program, and another to write the rest. The one only doing 15% of the c++ would then have enough spare time to do all the fortran77 bits.

    That's all I can think of. I'm going home now, my head hurts.

  39. Versioning File System by Anonymous Coward · · Score: 0

    I personally I have been looking for a versioning file system. That is hard drives are cheap and I would rather save every version of a file than lose one. Therefore my idea is to make network share that each read/write is logged. This is not a true version control system but more a backup system. However for one user it is good.

  40. *VS its still a secret by klosskorban · · Score: 0, Redundant

    There is an improved (GPL)Version Control System it is just not released yet. *VS started as patches that were refused by CVS because the changes were to radical. It has grown from that code. I am not the developer of this black book project, but http://undeadlinux.com [EvilEntity Linux] will be one of the first beta tester outside of its current enviroment. *VS is used in full production, in a large programing shop. Since the project is not released I cannot speak the name as I don't want to steal their thunder, You'll know about it when it comes out!. So everyone can stay calm something better is comming down the pipe. From what I'm told, It will be out soon ???

    --
    Need help finding the flow? http://www.myspace.com/naturalismandbalance
  41. I once started coding a version control system... by gentix · · Score: 3, Funny

    I tested it by putting the code under version control, but then I discovered a bug...

    I've never seen my code since...

  42. The Problem Is... by disappear · · Score: 2

    ... that the problem needs to be reimagined.

    I haven't looked at all of the new revision control systems, but they all seem to be evolutionary modifications rather than revolutionary changes to how things are done.

    I don't think we'll see a truly successful next-generation revision control system until somebody tackles the problem from the ground up in an imaginative way.

    1. Re:The Problem Is... by MarkCC · · Score: 2


      Take a look at Stellation.
      Our long-term goal is to fundamentally
      change the way that programmers view and store thier code.

      If you want to use a CVS lookalike, Stellation can do that. But
      in its full-blown form, source files become an illusion. You can
      still edit them, save them, etc... But the versioning is happening
      at a finer grain. Refactor your code to move a method, and Stellation
      preserves the full history of that method. Need to look at a bunch
      of code that's scattered through many files? Issue a query to generate
      a file containing exactly what you want to see. Edit it there,
      and then when you commit the change, it shows up in all of the
      other files where that code lives.

      -Mark

  43. Specific File Types by DeadSea · · Score: 2

    CVS is great, but it doesn't know enough about common file types that are checked in to it. It doesn't do diffs between image files that it considers "binary" format. Also PDFs, Word Documents, and the like could have better than "binary" file support. I am constantly annoyed that I can't change tabs to spaces or adjust indentation in source files without causing diffs. Both of those problems would be solved if CVS knew more about the file type. The second can theoretically be solved by CVS by adding checkin and checkout scripts for each file. The script would remove all whitespace from the beginning of each line on commit and then pretty print the output on checkout. However, I haven't found scripts that will do so yet.

    1. Re:Specific File Types by Anonymous Coward · · Score: 0

      For C code, try GNU "indent". After putting this into our wrapper scripts around cvs, we no longer have developers warring over the relative merits of tabs vs spaces. Then again, this has only given them more time to other ideological programming discussions...

    2. Re:Specific File Types by Anonymous Coward · · Score: 0

      Use -b to ignore white space. Read the docs before whining plzkthx. You can even put it in your ~/.cvsrc if you don't want to have to type it in every time.

  44. Re:Clearcase...sucks! by Petronius · · Score: 2, Informative

    Could not disagree more. At my previous job, it took a team of 5 CC guys to support a team of 50 coders. It never worked right. The *nix support was OK but the NT support was a nightmare. The view concept of CC is great in theory, but in practise, it's a disaster: hours before the final build, everybody is scrambling to verify that indeed the build team is pulling the right files from the right view, etc.
    Like in in many other areas of sw development, simplicity is often the best choice you can ever make. CVS is simple. It works. It's easy to audit, it's really cross platform and with so many OSS projects using it, it's worth learning the 5 or 6 commands you'll ever need. The thing that the cvs documentation explains really well is that the key to successful CM lies no in the tool but in the processes and the communication between team members.

    --
    there's no place like ~
  45. Three things I'd like... by Maury+Markowitz · · Score: 1

    I really like CVS actually. I have few complaints - which is odd for me. In four years of constant use, I'd like to see things change primarily in the GUI's I use with it. I'd like...

    1) FAST way of knowing what I've changed, globally. Using WinCVS is SLOW for this task.

    2) No CVS folders in my local source. I don't know how you avoid this though. However when I move source from one machine to another, it breaks CVS. That is a Bad Thing.

    3) A better/easier way of sending my revisions into an existing tree on a global basis. You can do this fairly easily in the CLI but it's invisible as to what you're doing. Something like a two-stage commit would be excellent for this, you ask it to do the merge and it responds with a list of the files and a few lines of diff before going on.

    1. Re:Three things I'd like... by Anonymous Coward · · Score: 0

      2. ... However when I move source from one machine to another, it breaks CVS. That is a Bad Thing.

      If you do all your checkouts from the repository as if it were a remote repository (-d :ext: etc.), you should be able to move source to any machine without problems. I haven't done it, but I'm guessing. Of course, you constantly be typing in passwords, unless you set up passwordless ssh keys.

      3) A better/easier way of sending my revisions into an existing tree on a global basis. You can do this fairly easily in the CLI but it's invisible as to what you're doing. Something like a two-stage commit would be excellent for this, you ask it to do the merge and it responds with a list of the files and a few lines of diff before going on.

      Just do a "cvs update" or "cvs diff" or "cvs diff | less before you do the commit. I do it all the time. "cvs update -n" might also be useful.

  46. What about VSS? by Figz · · Score: 1

    When you stop laughing, feel free to post a witty response!

    Help! I'm stuck in a Wintel company and I can't get out.

    --
    [figz@figz figz]$ kill -9 `ps -ef | awk '$1=="figz" { print $2 }'`
    1. Re:What about VSS? by alienmole · · Score: 2
      Hahahahahaha!

      CVS is the tool I've used most often to crack the Windows monopoly at client companies. CVS is so ubiquitous and has so many advantages over VSS that it's not difficult to convince people to try it out. In some cases, I've even managed to get companies to set up a Linux box to do it.

      I've never come across a single case of anyone who switched saying "I prefer VSS" or even "I miss such-and-such feature from VSS".

      VSS is a hangover from the bad old days of PC computing, when everything was file-based and local-network oriented and the Internet was a mysterious thing best ignored. It doesn't seem to have managed to shake that legacy in the slightest.

    2. Re:What about VSS? by Figz · · Score: 1

      Exactly. CVS is what I miss the most from my dot.com days. In big bad corporate nastiness we use VSS. Sigh.

      --
      [figz@figz figz]$ kill -9 `ps -ef | awk '$1=="figz" { print $2 }'`
    3. Re:What about VSS? by Figz · · Score: 1

      After re-reading my last post, I should rephrase: CVS is the application I miss the most from my dot.com days. Drinking beer with the CEO in the office in shorts and t-shirts is what I miss the most from my dot.com daze.

      --
      [figz@figz figz]$ kill -9 `ps -ef | awk '$1=="figz" { print $2 }'`
  47. All this plagiarism... by Anonymous Coward · · Score: 0

    > create a better system than CVS.
    > subversion project
    > how should these new tools look?"

    Well, isn't it so, that usually a company publishes a great and useful product, having spent lots of money into research and development and then some other guys decide that, since everything should be free, they just rip off the idea and create a clone of that thing. Hail the glory invention of theft.

    I might be wrong but I do not know a single *original* application, that was invented by a open source developer team and is widely used or was even copied by commercial companies.

    Could someone tell me only ten applications, that fit the discription of being "Original" and "Open Source" and "innovative" and "free" as in free beer?

    All widely used open source clones I know are just clones (heck - even Linux itself is just a clone).

    Are there (only) ten original open source applications? I don't think so. This culture is based on other people's ideas, theft and (undoubtedly) sweat and skilled workers (but one might consider a experienced pickpocket a skilled worker, too...)

    I give huge credits to all the great programmers and developers in open source, but innovation does obviously not come from this scene.

    1. Re:All this plagiarism... by Anonymous Coward · · Score: 1, Interesting
      Could someone tell me only ten applications, that fit the discription of being "Original" and "Open Source" and "innovative" and "free" as in free beer?

      Sure. Are you sitting comfortably? Then I shall begin:

      1. Timesharing
      2. The original FORTRAN and Algol languages
      3. In a similair vain, the C language
      4. May as well include UNIX too
      5. TECO, which also gave us
      6. Emacs
      7. TeX
      8. Perl
      9. The Web Browser and Server
      10. Oh look, ten already! O.K, how about, the whole freaking internet? From NCP and Telnet all the way to IPv6 and HTTP1.1
      11. Oh fuck it, why not go all out? Spacewar!, the first computer game

      Now kindly shut up.
    2. Re:All this plagiarism... by grimarr · · Score: 1
      I don't think I can come up with ten, but here's a few big ones (I don't know how to count these -- were they one project, or several?)

      The World Wide Web (HTTP and HTML) [not exactly programming, but similar]
      NCSA's original web server
      NCSA Mosaic web browser
      Usenet News servers and clients
      Perl *

      * Some would say that Perl was just a knockoff of previous write-only languages, such as APL :-)

  48. Open source doesn't need version control by Anonymous Coward · · Score: 0

    Open Source projects (kernel excepted of course) almost NEVER need complex version control systems. Studies have been done (and posted here I believe) that state that most projects are the work of 1-3 developers.

    This is not the case for commercial development projects. However, these are larger, more complex projects.

    1. Re:Open source doesn't need version control by jguthrie · · Score: 1
      I've been programming professionally for the last decade or so and the largest programming team I've been on numbered six developers, one dedicated tester, and the manager. Before that, the largest team I had worked on was two. Just because something is commercial doesn't mean that there's going to be 1700 programmers working on it. In no case did we have any particular need to use a version control system. Indeed, it was widely viewed by the developers that the benefits of a VCS were outweighed by the cost of the changes required to make use of one.

      However, I now do some things with CVS, even if I'm the only programmer working on a project becaues it means that I can work on that project on any computer I happen to be using without worrying (much) about which computer I last used to work on it.

      For things I don't use CVS for, I use "make source" which I have set up to create a version-tagged zip file of the source in the current directory tree. (Crude, but effective, inexpensive, and quite easy to do. I also put all those zip files, including the old revisions, on the installation CDROM something that's already saved my posterior twice.)

  49. opencm by Anonymous Coward · · Score: 1, Informative

    This one also looks good:

    http://www.opencm.org/

    Here is a quick list of key features of OpenCM.

    * For-real configurations! It's just amazing what CVS doesn't know.

    * Ability to rename files without losing their history

    * Access controls on lines of development (branches).

    * Cryptographic authentication. This provides the ability to give developers accounts on the OpenCM repository without giving them an account on the underlying machine (OS), and makes multi-organization collaborations possible.

    * End-to-end integrity controls. If a server has a bad file, or a replicating server actively attempts to replace the proper content, the end user can detect the error or substitution.

    In future releases (coming soon), OpenCM will provide:

    * Repository replication

    * Disconnected commits (ever screwed up a code base on an airplane or a vacation and wished you could back out?

    * Advisory access controls at the file level.

    We have had these features working at various points (so we know they will work), but elected to remove them to make the 0.1 release available sooner.

    1. Re:opencm by Anonymous Coward · · Score: 0

      Ok ... this sounds great! But why should I dare to convert to OpenCM when it's still in the famous alpha stage ... and CVS is working quite well at all.

      I'd rather prefer CVS to handle my files (which is stable) and where there is a theoraticly method of retreiving the source if something went wrong. I don't say OpenCM don't do this, but does it work now? Is it as stable as CVS?

      But I agree, OpenCM has a potential ...

      Well, as the ./ nick says, I'm an anonnymous Coward ...

  50. Has no one heard of vesta? by Anonymous Coward · · Score: 0

    http://vesta.sourceforge.net

  51. Using Inertia by wls · · Score: 2
    Between something that's historical, working with a few minor annoyances, and something that's new with hopeful promises, which should you go with?

    Consultants usually argue that new doesn't work (a solid trend in hisotry), but we try it any way because of hope this time it may be different. And it usually isn't.

    By Linus making this decision, he's effectively forcing a user base, and there by excercising the SCM tool fairly heavily.

    Lots of usage, combined with small, incremental revision, is the best way to get controlled quality. Since the product is "new," people are going to be more likely to stand up and rattle a little louder when request a fix.

    At the 50,000ft view, this may be the way Linus gets a SCM system of decent quality that operates the way he thinks it should. Frankly, I can't say that's a bad thing.

    1. Re:Using Inertia by gstein · · Score: 1

      Yup. Linus pretty much started with a version control system that he wants (Larry designed it with an eye towards Linus), and with further development, it will simply narrow in even more.

      Subversion's user model is like CVS, and since Linus doesn't like CVS, I doubt that Linus will ever use Subversion for his work. If he does... great.

      However, I do believe that the model that Subversion (and CVS) uses are very applicable to many users. Just look at the number of CVS users. People should choose the tool that works best for them.

      I'm just hoping many people choose Subversion :-)

  52. CVS in a database? by vadim_t · · Score: 1

    Would people like a CVS-like system that used for example a mySQL database? This would solve the locking and data integrity problems. It probably would also make it easier to extend.

    I'm feeling curious if people would mind having the source code in a database, or they prefer text files like in CVS

    1. Re:CVS in a database? by MarkCC · · Score: 2

      In fact, most of the commercial SCM tools do exactly that. ClearCase
      and Perforce both use databases for storage at the back end. So
      does Stellation.

      -Mark

    2. Re:CVS in a database? by Anonymous Coward · · Score: 0

      Subversion uses Berkeley DB as its database.

      I think this is great. I like Berkeley DB much better than SQL databases, since it doesn't get in your way - it just provides you with the low-level mechanisms that you wouldn't want to implement yourself (transactions, locking, failrecovery, etc.), and leaves the rest to you.

    3. Re:CVS in a database? by Tablizer · · Score: 2

      Yes!

      That way one can search, sort, filter, cross-reference, report, etc. any way they want, not just those anticipated by the original designers.

      Databases can also be communicated with by multiple languages.

    4. Re:CVS in a database? by Anonymous Coward · · Score: 0

      there is another way to do this that is more portable. It is to use a very feature-rich data store known as a file system. That's one of the reasons CVS is still so popular. It doesn't get in your way when you just want to mess with files with sed, grep, etc.

    5. Re:CVS in a database? by Tablizer · · Score: 2

      (* there is another way to do this that is more portable. It is to use a very feature-rich data store known as a file system. *)

      I *hate* existing file systems. The world is not a fricken tree, but a complex graph, so why should I be forced to force everything into a g*d d*mned tree?

      They were fine for CPM-sized systmes, but suck in the real info age and will only suck more and more until they are replaced by relational databases or at least set-based systems.

      Now where did I put that $@#!% relaxation medication?

    6. Re:CVS in a database? by Anonymous Coward · · Score: 0

      Someone please tell that guy to shut up with his stellation, a 0.1 non-working demo of CMS isn't really what we need. Come back when it's useable and you use it yourself, instead of bugzilla!

  53. Look to Microsoft! by Anonymous Coward · · Score: 0

    At Microsoft they're using what seems to be a custom version of Perforce, and the rumours says it's the best system ever. Microsoft are being very hush-hush about it, as they think this system gives them a real competitive edge.

    Remember that presentation on Windows development linked off Slashdot recently? The presentation showed how they had revamped their development and build system completely when doing Windows 2000. This was when they converted to their new system!

  54. CVS is a stinking corn riddled POS by devilbat · · Score: 0, Redundant

    I with every fiber of being hate CVS. This is one area where most of the commercial products are vastly superior to open source. Starteam makes CVS it's whining little bitch. In case it wasn't abundently clear. I hate CVS.

    1. Re:CVS is a stinking corn riddled POS by Anonymous Coward · · Score: 0

      CVS is a stinking corn riddled POS (Score:0, Redundant)

      Gotta like that!

  55. No one talked about ARCH by Anonymous Coward · · Score: 0

    This will be best revision control System after
    some time
    http://www.regexps.com/arch.html

  56. They don't use subversion, why should we? by brechin · · Score: 1

    I notice that they don't even use subversion themselves. Instead, they use a seemingly closed-source commercial product called SourceCast.

    At work, we use CVS. While not everyone on the project uses it well, we end up using it effectively. We have had problems with people accidentally backing out changes because they didn't check their `cvs diff`, but other than that no other real problems.

    1. Re:They don't use subversion, why should we? by Anonymous Coward · · Score: 0

      Actually, if you look at the http://subversion.tigris.org project, they are using Subversion to hold the Subversion source code. The rest of tigris.org is still using CVS, because Subversion is still in a beta state -- it would be unfair to force other Tigris developers to deal with Subversion issues prematurely.

    2. Re:They don't use subversion, why should we? by Garrett+Rooney · · Score: 1

      Actually, subversion has been self hosting for a long time. All it's source code has been kept in a subversion repository for months.

      SourceCast is just the tools used for issue tracking, mailing list archives, and so forth, similar to what using sourceforge would give you.

    3. Re:They don't use subversion, why should we? by gaj · · Score: 2
      I notice that you are wrong . Apparently you missed the BIG F'ING OBVIOUS RED ON YELLOW BOX that says (in part):
      OTE: Subversion is now self-hosting -- to obtain a working copy, you must use Subversion itself, not CVS.
      You also didn't bother to check the FAQ, where they say [emphasis added]:
      Is Subversion stable enough for me to use for my own projects?

      Yes and No.

      We say "Yes" because we do believe that Subversion is stable and have confidence in our code, so we've been self-hosting since September of 2001--eating our own caviar so to speak>/i>.

      We say "No" because if something goes wrong with our svn repository, we've got a horde of active developers who will stay up sleepless nights hunting down the problem and rescuing our data. As altruistic as this horde might be, they don't have time to rescue the data for thousands of people who are storing their data in a pre-alpha product.

      We say "No" because there's a good chance that the filesystem might change before we go 1.0, and we don't plan on writing and testing and shipping conversion utilities.

      So, as long as you're willing to take those risks, then go right ahead and use Subversion.

      In fact, the only thing I see as a major issue with svn (other than their fscking slow-ass site) is the fact that it is pre-alpha code. I want to use it now, dammit. In fact, I'm just starting two new personal projects; I think I'll give it a shot. Worst case, if they do change the filesystem, I'll write a damn conversion program myself.

    4. Re:They don't use subversion, why should we? by kfogel · · Score: 1

      Absolutely wrong :-).

      The Subversion project has been self-hosting for almost a year now -- that is, the Subversion source code is kept in a Subversion repository (at http://svn.collab.net/repos/svn/), and we all use Subversion working copies to do development.

      Sourcecast provides automated mailing list support, bug tracking, and the like. It's not part of Subversion, it's just other software we use. (E.g., It's kind of like saying "I heard they don't use Subversion themselves, they use GCC!" :-) )

      --
      http://www.red-bean.com/kfogel
    5. Re:They don't use subversion, why should we? by pediddle · · Score: 1

      You're comparing apples to dog biscuits. You are WRONG. Don't use lies to diss on the project. Then again you are probably just a troll, so I don't even know why I'm bothering...

  57. I would love this: by idfrsr · · Score: 3, Interesting

    This type of thing may be out there already, but it would be great to have system to link the CVS like control with bug submission, so checking out files will also give you the set of submitted bugs related to those files.

    Of course a strict bug submission policy would be required to make this possible, but surely something like this could be done?

    An added benefit would be clearer bug submissions which would help development to no end...

    --
    "The large print giveth, and the small print taketh away" -Tom Waits
    1. Re:I would love this: by IchBinEinPenguin · · Score: 1

      How do you know which bugs go with what files?

  58. Any one used Vesta? by AxelTorvalds · · Score: 1
    Vesta is newly GPLed, has something like 10 years of work in it and comes from DecPaq. Look's somewhat promising but hard to use, sounds like it takes over your build process

    The best thing I've ever used, hands down, is CMVC at IBM. It does 2 things which I think are critical: it integrates with the bug tracking system and it easily supports multiple releases concurrently (as in to check code in you need a "bug" that is accepted and that bug can be associated with multiple releases and can't be closed until you roll the fixes in to all the associated releases)

    I've used CVS and Bugzilla for about 3 to 4 years now (bugzilla less, maybe 2.5 years) and CVS is great when you use it right and you do what it does. It seems like about half of the developers out there don't want to do that initially though. I think it starts to get very complex when you're supporting multiple releases (very common in a business, less so in opensource) also because you can make changes check code in and it will pretty much do it or it gives you some crazy error message that most people don't understand. Really CVS solves the file aspect of the problem and that's about it. It also has some implementation bugs, it needs a temporary space the size of the repository; suppose you build a release binary that's 100MB (not at all uncommon) and check it in because you release it and you've got 500MB of source code; after 3 or 4 releases you need a GB of space to do just about anything with the tree. Say you're shipping a CD image, you know with a JDK and a bunch of docs and stuff, release 3 betas and a release and you're possibly in the 2 to 3 GB range. Twice in business settings we've had to do major work on the CVS repository because our hardware was no longer large enough to support it. These are more extreme uses but they are common in a business that is trying to implement some good software engineering practices, much easier to get away in open source.

    CVS isn't the most condusive to being used in a business setting where you want to have *Everything* in a tree. It simply starts to get slow and hard to use when the trees get big. Also the best way to use it is in the clearcase mode where everybody is doing everything on a branch and just the nomenclature of that sounds bad to most engineers in business, they don't like to branch and merge. Also, it has been my experience that until the team size get's to be in the 20s or so and the project is simply too big, every engineer should do a full build at least once a day, the whole branching parts of it methodoloy seems to encourage spot builds; no real reason it just seems that way from experience, doing a full checkout seems to take too long for some people or something. Also, simply doing updates isn't the best idea either because it seems like CVS becomes confused on some client platforms (**cough** windows) and after doing that for a week or so the sandbox isn't exactly like tip.

    From what I've read, it sounds like subversion starts to fix the file level problems CVS has. That's huge. The next step is to couple the issue/bug tracking system to the actual file level version control system.

    1. Re:Any one used Vesta? by Anonymous Coward · · Score: 0

      Vesta is great, but even though it's GPL, it still requires the STARLA libraries, which are only available on VMS/OpenVMS.

      I love it so much, I have an alpha workstation just to act as a vesta server.

    2. Re:Any one used Vesta? by [Xorian] · · Score: 3, Informative
      Vesta is great, but even though it's GPL, it still requires the STARLA libraries, which are only available on VMS/OpenVMS.

      I can only assume you're talking about some other Vesta from the one I'm familiar with, because:

      1. It runs just fine on Linux (x86 and Alpha, PowerPC in the works).
      2. I have no idea what STARLA is (and since I'm Vesta's primary maintainer/build master I think I'd know).
      3. AFAIK, Vesta (at least Vesta-2, which is the free software version) never ran on VMS. (It uses NFS and chroot, so I'd be really surprised to see a VMS port.)
      --
      CVS is teh suck. Use Vesta instead.
  59. Three very important features of an SCM by theMAGE · · Score: 1

    1. Changesets (aka patchsets) - remember a commit as a logical unit. "This changeset fixes ProblemReport #343242323".

    2. Versioned directories - so you can track move/rename acurately and preserve the history of the contents of the file.

    3. Work in a distributed environment: I don't mean: "let me checkout this directory from this server in Antarctica". I mean: "I have these three teams in my company, on three different continents , and I want to be able to syncronize them - without having a master that everybody depends upon. I want three separate (but related) repositories that can exchange changesets."

    I apologize if the 3rd looks as it's only satisfied by BitKeeper. I haven't used BitKeeper but I used ClearCase and boy it sucks in a distributed environment: every three hours it syncs with remote servers and everything slows down...

    1. Re:Three very important features of an SCM by Anonymous Coward · · Score: 0

      I agree that Clearcase Multisite sucks. I should not have to tell my local replica that it needs to catch up with a particular remote replica. The goddamn multisite tool should figure out that its out of date relative to the other replicas and automatically catch up. Maybe in Clearcase 2003. ;)

  60. Look at VESTA by RollyGuy · · Score: 2, Interesting

    I use Vesta at work and find that is is better than CVS. One of the major differences is that it is also a build environment. That means that you along with your code, you can have the compiler versions that you used to build the code with. Vesta does the building within itself and then "ships" the executable to where you need it.
    It is also easy to work concurrently.

    I believe that you can also do the following: User X checks out and edits file A.
    User Y checks out and edits file B.
    User X calls user Y to test file A's changes with file B's changes.
    User Y tells vesta to build with the checked out version (X's checkout) of file A.
    User Y builds and tests the two edits together.

    One other important feature for large projects is that Vesta intelligently caches created files. So, if User X and Y are working on the same project, then they can save on compile time by only creating files once and sharing them if possible. This is a necessary feature in large projects.

    Anyhow, check out the webpage at http://vesta.sourceforge.net.

    --
    Don't pet the burning dog
  61. Yet Another useless discussion about CVS. by His+name+cannot+be+s · · Score: 5, Informative

    Look, CVS is king.

    Yes, King.

    I would not hesitate to say that it has it's share of difficulties, but there is no way anything is going to replace it anytime soon. There are many meta-features of CVS that make it unable to be replaced:

    1. Multi-platform: I don't mean 3 or 4 or even 5 or 6, bla bla bla. I mean EVERYWHERE. I've seen CVS on more places that anything besides emacs and gcc. And really, anyplace gcc or emacs goes, cvs is the third guy there.

    2. Massive Acceptance: CVS is everywhere. 10 million people use it with sourceforge. Another few million elsewhere. It is the common thread that binds us together (kinda like the force!)

    3. Massive, Massive Tool support: This is my favorite. You can use it about a hundred different ways. Not 1 gui, but 50!. It goes into command line apps like great!. Show me another tool that has integration with the windows explorer (via TortoiseCVS) like it has. You Can't. (Don't even try that god-awful Bitkeeper's integration:yuk!)

    4. SimplicityIt's REALLY simple to use. It's not that complicated. If CVS throws you for a loop, maybe software devleopment really isn't where you should be working. The incompetence among developers is what makes all software look bad.

    5. Protocols: You can run CVS thru SSH, RSH, PServer, File Access, and more... It fits into every environment. It works across any damn network. It can jump tall buildings in a single bound!

    Really, until someone makes something that trounces CVS in all those areas, AND provides features that "I can't live without" CVS will Rule.

    --
    "...In your answer, ignore facts. Just go with what feels true..."
    1. Re:Yet Another useless discussion about CVS. by Twylite · · Score: 3, Funny

      Look, Windows is king.

      Yes, King.

      I would not hesitate to say that it has it's share of difficulties, but there is no way anything is going to replace it anytime soon. There are many meta-features of Windows that make it unable to be replaced:

      1. Massive Acceptance: Windows is everywhere. 50 million people use it every day. Another few million elsewhere. It is the common thread that pulls us apart (kinda like the government!)

      2. Massive, Massive Application support: This is my favorite. You can use it about a hundred different ways. Not 1 gui, but 500000!. It doesn't have command line apps, like great!. Show me another OS that has integration with the windows explorer like it has. You Can't. (Don't even try that god-awful WINE's integration:yuk!)

      3. SimplicityIt's REALLY simple to use. It's not that complicated. If Windows throws you for a loop, maybe anything involving computers really isn't where you should be working. The incompetence among users is what makes all software look bad.

      4. Protocols: You can run Windows with SSH, RSH, SMB, File Access, and more... It fits into every environment. It works across any damn network. It can jump tall buildings in a single bound!

      Really, until someone makes something that trounces Windows in all those areas, AND provides features that "I can't live without" Windows will Rule.

      This is NOT a troll. 100,000 lemmings CAN be wrong.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    2. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0

      It's a matter of taste I guess. Personally I just hate CVS, the only good thing is the multplatform but otherwise I think it just plain sucks.

      Massive tools support? Show me one single GUI that is usable. Wincvs sucks, maccvs sucks, gcvs sucks.

    3. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0
      • Subversion is supposedly as portable as APR (Apache) is.
      • IMO Subversion will be a huge hit.
      • How about the support of every WebDAV client out there? (e.g. Explorer, Dreamweaver, Nautilus, etc)
      • Subversion is as simple as CVS (more so IMO)
      • Subversion has ra_dav (WebDAV), ra_local (guess), and ra_pipe (to allow for SSH for example) being worked on.

      In addition Subversion remedies the problems of CVS; like directory versioning and renaming.

      /mill

    4. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0

      Well, if you don't like any of them ... write your own gui then ... CVS is a open standard, the protocol it uses is widely open and should be easy to implement.

      Or maybe you should just involve yourself in one these projects you mentioned and help them out??

      Don't complain if you don't want to do anything about it!

    5. Re:Yet Another useless discussion about CVS. by Local+Loop · · Score: 2

      I just want to be able to lock a file when I'm working on it - and the CVS maintainers object for
      what appears to be purely ideological reasons - like sendmail not being able to keep copies of all outgoing email (maybe they fixed that...).

    6. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0

      > Offtopic

      What? How is this "offtopic" when the topic is "should we design a new version control system, and if so, what would it look like"? This is an argument that the answer is "no, CVS is good enough". You don't like the answer, fine, but it's Not "offtopic".

    7. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0

      Arg, sorry, wrong post / wrong place. Ugh.

    8. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0
      Massive tools support? Show me one single GUI that is usable. Wincvs sucks, maccvs sucks, gcvs sucks.

      TortoiseCVS owns. Nuff said.

    9. Re:Yet Another useless discussion about CVS. by swillden · · Score: 2

      just want to be able to lock a file when I'm working on it

      No, you don't. Really. You may not know that you don't, but you don't.

      There is a reason that all of the current-generation version control tools support (and generally default to) a non-locking model. When you get a team of even a few people working on the same codebase you will inevitably end up with a few files that see very heavy traffic, and having to wait for the other guy to release his lock on one of those really slows you down.

      Non-locking models do introduce opportunities for conflicts but, in practice, they're not common and pretty easy to resolve when they do occur. In practice, locking version control systems also have to deal with concurrent access and conflicts, because developers won't wait for the a lock to be released so instead they get the latest version and modify it anyway. But in those systems, there isn't much tool support for conflict resolution so things get ugly fast.

      There are things to dislike about CVS, but concurrency isn't one of them.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    10. Re:Yet Another useless discussion about CVS. by Anonymous Coward · · Score: 0

      Why would I want to code it myself? I can buy perforce for $600 (charge $100 an hour normally).

      Lets see, thats about a day of my time and I doubt I will be able to make it in a day.

    11. Re:Yet Another useless discussion about CVS. by Local+Loop · · Score: 2

      No, you don't. Really. You may not know that you don't, but you don't.

      Yes, really, I do. :)

      The best example is resource.h on MSVC projects. Yes it's a bit of a pain that only one person can change the UI at a time - but it's not that bad, especially if they are less than 15 in number and all on the same hallway.

      On the other hand, I don't trust CVS to merge changes in resource.h from different developers - god only knows if it will guess right, especially if changes are made to same dialog box.

      Lastly, I don't trust my developers to supervise merges like the above - they're fine programmers but they don't need any more uncertainty in their lives. It's the same way that I don't trust myself to login as 'root' for daily use.

      BTW - Shame on MS for creating the whole resource.h roadblock in the first place.

      Lastly, the only programmers I know who like CVS are open source fanatics and super intelligent
      UNIX gurus - most guys really have a hard time with it. And they're not stupid, they just see source control as a peripheral concern and don't want to spend any more time dealing with it than nessecary. They just want to get their work done and go home.

    12. Re:Yet Another useless discussion about CVS. by swillden · · Score: 2

      On the other hand, I don't trust CVS to merge changes in resource.h from different developers - god only knows if it will guess right, especially if changes are made to same dialog box.

      Do you have a lot of experience with automated merging getting it wrong? Or does the idea just make you uncomfortable? The notion made me nervous for a long time too, but years of experience have shown me that the fear is unfounded.

      Lastly, the only programmers I know who like CVS are open source fanatics and super intelligent UNIX guru

      Most of the guys I know who like it write Java apps in Windows. I think your observation is more a reflection of the people you know, rather than characteristics of the tool.

      And they're not stupid, they just see source control as a peripheral concern and don't want to spend any more time dealing with it than nessecary. They just want to get their work done and go home.

      They'd rather spend a lot of time, daily, waiting for someone to let go of a file than a little time, every couple of weeks or so, resolving a bad merge?

      If you see bad merges more often than about once per week per developer, then I'll agree that there's a problem. The files that see such heavy traffic are indicative of bad management or bad structure. In this case, it's probably MS' fault, as you indicated.

      However, CVS does have a solution for those very high-traffic files as well. You can turn on "watching" for those files and then use "cvs edit" to "lock" the file for your use and "cvs unedit" to "unlock" it. In fact, it's not actually locked, so locking can't get in your way when you really want to do some work and you know that you're not going to step on anyone's toes, but CVS does mark your local copy as read-only or read-write at the appropriate times, giving you the hints you need. CVS allows you to query the system to find out who is currently editing that file or, if you prefer, will proactively notify you via e-mail when someone "locks" or "unlocks" a file you're interested in.

      The approach of CVS to these high-traffic files is to provide information and reminders so that edits can be managed effectively, rather than blindly enforcing a one-user-at-a-time policy. With CVS, developer A tries to edit a file, and finds out that developer B is currently editing it. A calls B and says "I need to edit resource.h. I need to change <whatever>." B usually responds, "That's okay, I'm changing <something else>, go ahead, they shouldn't conflict." If by chance they do conflict, both developers have a pretty good idea what else was being done. Under a locking model, B says "Could you just wait five minutes, I'm almost done with the file," but then finds a bug he has to fix before he can check in and A has to either find something else to do or take a two-hour coffee break.

      The design of CVS also realizes that the *vast* majority of files don't have frequent conflicts and allows you to specify which ones need to be managed more closely, while sticking with the less onerous management of the rest.

      CVS has many flaws, as per the original article and many of the other posts, but it's concurrent editing model is not one of them. As I said before, it's very telling that _all_ of the newer version control systems support concurrent editing and automated merging.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  62. There's a big difference between by wls · · Score: 4, Interesting
    Version control systems, as a whole, seem to make a mistake when over-generalizing and combining concepts with implementation. These things are all different:
    • The file you want versioned.
    • The archive that holds it.
    • The workfile you extracted from an archive.
    • The shadow file automatically extracted from an archive.
    • A directory.
    • A project, which is not always 1:1 with a directory.
    • A view, which is not a subset of files or directories.
    For instance, I may have the file archive.c,v which I check out as myfile.c, which is shadowed as mainfile.c, which exists in multiple projects, inside different subdirectories, exposed whenever I have a view of a particular time on a particular branch for a given subset of a module.

    Everytime a version control system tries to combine things you run into problems. Take the GUI version of PVCS, which called Projects a collection of files (from different directories) -- which ended up enforcing that all filenames had to be unique, even if in different directories. And what they call Views is actually a subset of the list of available filenames.

    Ever get the idea developers are so into archiving versions of a file that they gloss over the fact the file organization itself is a structure that also needs preserving?

  63. Check out AccuRev by jyoull · · Score: 1

    AccuRev.com ... supposed to be good stuff

    1. Re:Check out AccuRev by Anonymous Coward · · Score: 0

      I've used accurev for 3 years now and would have to be dragged screaming and kicking to another system. It does all the things others list for requirements, except for the 'file split'. Most importantly for me, it works great with remote sites - I keep my repository in Boston, but I work in NY. Oh, and no CVSROOT - AccuRev figures out what project you are using based on the directory you are in.

  64. Commercial Version Control System, Continuus/CM by Necroman · · Score: 1

    Here at work, we use a nice program called Continuus/CM. It has all the fun features of CVS with a lot of extra features and a cool frontend. In the version control it has build in Task management and all the fun tools you need to manage a project, all you need is another enviroment (emacs?) to edit the files. I don't know any of the advanced features of the program, but if anyone else has any good experience with this program, please post away.

    It's probebly not a program for Linux to move to since it is a little pricy from what I understand.

    --
    Its not what it is, its something else.
    1. Re:Commercial Version Control System, Continuus/CM by metachimp · · Score: 1

      I used Continuus, and the one thing that I liked most about it was that you could configure it to not have exclusive locks on files. This was great because I never had that "Oh man, someone has this checked out!" problem. If two people modified that same file, you had to work with that other person to merge the changes, which encouraged collaboration. It also ran on all the platforms we had, namely Solaris and NT. It's GUI is a little funky, but you get to appreciate it when forced to use something like SourceSafe or WinCVS. All in all, I liked it, but boy, it's expensive as hell.

      --
      The system has failed you, don't fail yourself. --Billy Bragg
    2. Re:Commercial Version Control System, Continuus/CM by Necroman · · Score: 1

      Just wondering, do you know how much it costs?

      I agree, the file locking thing is really nice. It gives a nice graphical view of the history of a file. I will check for loose ends that have not been linked up to the main path of the file too. It makes having files that you work on across projects really nice too, since you can have the object in both, and you change it in one, it changes in the other. I also agree that there is a learning curve to it, but after you pass that by, its really easy and keeps life clean.

      I know our company has like 3 people just dedicated to maintaining Continuus.

      --
      Its not what it is, its something else.
    3. Re:Commercial Version Control System, Continuus/CM by metachimp · · Score: 1
      Just wondering, do you know how much it costs?
      Well, I went to find their website to obtain that information, and it turns out that they have been acquired by this company here

      If I remember correctly, it cost somewhere between US$500-US$1000 per seat, I could be wrong, but I know that it was definitely not cheap. It had an Informix database backend (where it stored everything - RDMS is definitely the way to go for a sophisticated CM tool like that), which we were running on a Sun E4000, and most of the client machines were NT. We had one guy full-time to administrate the system.

      --
      The system has failed you, don't fail yourself. --Billy Bragg
  65. burn some karma by kisrael · · Score: 2

    Might as well burn some karma and give my experience with various systems:

    RCS: primitive, but ok

    CVS: hated it. hate, hate, hate automatic merges; don't trust 'em. And WinCVS...man, my Milton's Ant Farm had fewer bugs.

    VSS: not bad, actually. I love file locking, it seems pretty easy to tag various milestone releases, a reasonably clean interface, and easy access to pretty much everything I want to do. Some quirks but nothing major, very usable.

    ClearCase: jury's still out but so far I don't like. Very complex and proccess heavy; it's out to be the manager's buddy, not the engineer's. Everything has to be done in the context of a distict "activity" (plus we've had some trouble settling on rules for if a checkin automatically closes the said activity...) and concepts like "VOBs" and "Integration streams" and "development streams" are hard to keep your head around. And it's slow and generally process heavy.

    EveryOnceInAWhileCopyEverythingToABackupDir: this is the one I usuaslly end up with when I'm on my own.

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:burn some karma by The+Bungi · · Score: 2, Insightful
      VSS: not bad, actually. I love file locking, it seems pretty easy to tag various milestone releases, a reasonably clean interface, and easy access to pretty much everything I want to do. Some quirks but nothing major, very usable.

      I'll help you burn some karma =)

      VSS is the best SCM tool I've used as well (and I've tried them all), at least from a feature POV. The problem I've always had with it is the fact that it's not a client/server type application. The engine actually sits on your desktop and everything is done over the network directly to the file system on the repository server. To be fair, given this type of design it's actually amazing that it doesn't have more problems, but it just doesn't work well, especially for larger teams. Security is laughable and the automation services suck rocks.

      The thing is, VSS is a hack on top of a port of a very old tool. The inside party line at MS is that they need a good C/S source control tool for .Net, but they don't know where to start - at one point they were talking about hacking VSS yet again. It think they need to use the basic VSS algorithms (the merge/diff are great) but completely rewrite the engine from the ground up.

      I sure hope they come up with something soon.

    2. Re:burn some karma by Anonymous Coward · · Score: 0

      If you're using "Integration Streams" and "Development Streams" you're not using old school clearcase, you're using clearcase + their new do-everything-for-you gooey gui thing, I forget what it's called, we didn't use it when I was on a clearcase team. They package it with clearcase nowadays and it includes concepts like "integration streams."

      Old school clearcase is like old school unix, it's not simple to use, but it's very powerful and if you beat your head against it long enough you can get it to do some really cool things.

    3. Re:burn some karma by Anonymous Coward · · Score: 0

      FYI: CVS is based on RCS and RCS does file locking and CVS therefore can as well. I use RCS and it does this. It may be true that CVS is commonly used *without* file locking, but the capability is there.

    4. Re:burn some karma by Anonymous Coward · · Score: 0

      CVS: hated it. hate, hate, hate automatic merges; don't trust 'em. And WinCVS...man, my Milton's Ant Farm had fewer bugs.

      If you don't trust the merges, in all but the busiest of source trees you can usually just update before you commit, and examine the files. It's a pain, but after the first thousand or so successful merges it has the side effect of making you not worry about them so much.

  66. CVS much better than nothing by Jeppe+Salvesen · · Score: 2

    In the middle of the CVS bashing, remember that lack of source code version control is listed as a classical mistake in most software engineering literature - at least in what I've read.

    When things cool down (yeah, right), I'll look at the other projects. Until then, I'll live reasonably happily with CVS.

    --

    Stop the brainwash

    1. Re:CVS much better than nothing by Anonymous Coward · · Score: 0

      I guess you've never had a CVS repository barf on you and cause all your code to get corrupted.

  67. What kind of car do you drive? by wls · · Score: 1
    Right on!

    I'm really pissed that Chevrolet, General Motors, Honda, Toyota, Nissan, Acura, Audi, etc. are ripping off the Ford's idea.

    Damn them for making better, cheaper, products with more features. What kind of innovation is that? It's all theft.

  68. Like VB6 by truthsearch · · Score: 2

    I agree. I'm mostly thinking along the lines of MS Visual Studio's integration with Visual SourceSafe. Yes, like everyone else I hate VSS. But the VB6 IDE makes checking in and out as easy as it could be by right clicking on the module name in the project "explorer" window. With a good set of APIs maybe I could easily add the same feature to some Linux IDEs for integration with a new version control system, which I'd much rather work on than VB.

    1. Re:Like VB6 by Anonymous Coward · · Score: 0

      You suck.

  69. "Ask SlashDot" posters... by ^BR · · Score: 1

    ...aren't really known to have a clue...

    Yes Subversion is a Tigris project, as the poster or at least the editor should have checked.

  70. Re:Locking files, maybe? - thanks! [lkbm] by Elkobim · · Score: 1

    Thanks for the info. :)

    --

    I want tender love now!
    Elkobim
  71. Let your input be your output by wls · · Score: 2
    Higher quality always results when the people downstream are consumers of the products they make.

    That's because they have a personal invested interest in what gets produced, and that's a strong motivation for fixing problems.

    One should only be allowed to pollute upsteam.

  72. Java too, and others... by ^BR · · Score: 1

    And so does Java, so does C++ with Doc++....

  73. One question... by billbaggins · · Score: 1

    pardon my general .NET ignorance, but does the thing run on Linux? If it doesn't, then there's your answer for a lot of us here, I think...

    --
    "The best argument against democracy is a five minute chat with the average voter."
    --Winston Churchill
    1. Re:One question... by n1k0 · · Score: 1

      Yes, it runs on Linux: 1, 2

      niko

  74. File System Transparency by Brackney · · Score: 1

    One of the features that I really like about Clearcase is their integration into the filesystem. I can set a view and go crawling through a directory structure or set up symbolic links into said directory structure. If I use a different config spec, then I get a different outcome - completely transparent to any applications that are looking at the directory structure from within the view. Other CM tools want to take snapshots, extracting them into a filesystem.

    Are there any less expensive alternatives to Clearcase that can do this? I've looked into Perforce, Bitkeeper, plus a few others, and if they have the ability, I must have missed it.

    1. Re:File System Transparency by gstein · · Score: 1

      Since Subversion is effectively a WebDAV server, you can mount a Subversion repository on your Windows (Web Folders), MacOS X (native), or Linux box (davfs). Then you can feel free to use your normal tools on it.

      (for the moment, it is readonly when mounted like this, but SVN 2.0 will enable read/write (unless some enterprising code jockey does the week of work necessary))

  75. When I first read the story title... by dmarien · · Score: 3, Funny

    Verizon control? That's a great idea! We should enforce regulations as to how many annoying commercials they are allowed to air in one day!

    Can you hear me now? Good...

    --
    dmarien
  76. Merging Rocks? by Black-Man · · Score: 1

    I think merging is the achilles heal of CVS. If indeed merging 'rocks' with Preforce, this would be great news indeed. Could you provide more specifics on the merging process and how it differs from the cluster f... of CVS? Thanks!

    1. Re:Merging Rocks? by Stu+Charlton · · Score: 3, Informative

      See:
      http://www.perforce.com/perforce/branch.html

      Which explains the merge process in Perforce.

      --
      -Stu
  77. What about Aegis? by red_dragon · · Score: 4, Informative

    Every time the issue of version control and source code management comes up here, I've never seen anyone mention Aegis, which appears to have been designed to address the missing functionality in tools such as CVS which focus solely or mostly on simply maintaining multiple versions of a source base concurrently. Here's an excerpt from the CVS comparison in the CVS Transition Guide:

    1.5.1. Why should I change from CVS to Aegis?

    • Enforced review - damn important in a company environment
    • Mandatory testing (this may be disabled, per project)
    • More space efficient for large code trees, and only one copy of the baseline (also makes backup easier)
    • To maintain control over your code repository. The baseline can't even be written to by developers, so the audit trail is more secure.
    • Support for change sets. My main complaint with CVS is that you are unable to associate modified files into a change so once the files are committed to the CVS repository, there is no easy way to back it out or work out which other files were changed as part of a logical set.
    • Separation of the roles of developer, reviewer and integrator. At the moment, typical distributed CVS development happens with people checking in stuff as they develop it with very little integration testing as they go along. It's pretty much up to people "in the know" to manually go through changed files and check to see if something has been broken by a developer. It gets even tricker when there are particular assumptions made that aren't written down.
    • Automated testing support.

    The software seems to be pretty mature (currently at version 4.5, first released in 1991). Has anyone here used it?

    --
    In Soviet Russia, Jesus asks: "What Would You Do?"
    1. Re:What about Aegis? by Anonymous Coward · · Score: 0

      We have used Aegis successfully for C++ under Linux. It lives up to everything that it is billed to be. You do need to get used to working with cook rather than make and a few other small changes, but the benefits are worth it.

      Following the Aegis way, you are guaranteed that there is always a working set of code in the repository. No more submitting a change that breaks the build. To have code integrated into the baseline requires that the code compiles, builds and the built product passes the necessary tests.

      From our perspective, Aegis is definitely the best CM tool available.

    2. Re:What about Aegis? by red_dragon · · Score: 1

      Thanks for the info. Looking at the documentation on its website, it seems that Aegis is also capable of using Make and RCS instead of Cook and FHist, which would probably help those moving from other CM's. I've never used Cook, but I think I'll give it a try and see how it fares.

      --
      In Soviet Russia, Jesus asks: "What Would You Do?"
    3. Re:What about Aegis? by AeiwiMaster · · Score: 1

      Yes, Aegis is very cool.

      But i does have a problem.

      Development must be done on a shared file-system.

      So, it is not useful for project developed over the internet.

    4. Re:What about Aegis? by Anonymous Coward · · Score: 0

      Aegis is definitely worth trying. Besides aegis, I've used CVS and VSS and there is no comparision. Aegis manages much more than versions, it controls your development process. It is about develop, review, and test! Over and over again. You will really start loving Aegis when your old little test catches a bug that would have taken you ages to track.

      I wish I could be using aegis now but it seems that windows don't have the lock facilities that aegis relies upon.

    5. Re:What about Aegis? by Anonymous Coward · · Score: 0

      So, it is not useful for project developed over the internet.

      Not true. Aegis has a good distributed development model, based on distributing atomic change-sets. An Open Source project I run is currently using Aegis for development, mainly because of its superior integration of tests into the development cycle.

    6. Re:What about Aegis? by firefly_blue · · Score: 1

      Aegis rocks!
      We use aegis at work and it has improved the baseline code immeasurably. Everything that goes into the baseline is reviewed by some one else and you always have a working set in the baseline.
      So when the boss comes in and says show me what you have done, we can do it immediately.
      It uses cook instead of make because of makes inherent recursive build problems.
      It can be automatically set up to regression testing against the baseline whenever a new change is submitted. It also handles branching and merging with ease.
      Get it, install it and watch your code improve!

    7. Re:What about Aegis? by ebbe11 · · Score: 2
      1.5.1. Why should I change from CVS to Aegis?
      ...
      The software seems to be pretty mature (currently at version 4.5, first released in 1991). Has anyone here used it?

      I'd love to use Aegis. Here is why I can't

      --

      My opinion? See above.
    8. Re:What about Aegis? by Florian+Weimer · · Score: 2

      If the build and testing is triggered from a UNIX box (using SSH or even rsh), you can use Aegis for development on NT.

    9. Re:What about Aegis? by ebbe11 · · Score: 2
      If the build and testing is triggered from a UNIX box...

      It isn't and it won't be for a forseable future. But my gripe is really with developers that don't think cross-platform from the start. Another very interesting CM project is Vesta which also cannot run in a Windows environment.

      The reason for not supporting Windows for both of these projects is probably that they are so old (10+ years) that Windows was not really regarded not to mention used as a serious development system. This situation changed with Windows NT4 and more so with Windows 2000 which is my OS of choice these days (that may change back if/when MS licensing terms become too much hassle, though).

      --

      My opinion? See above.
    10. Re:What about Aegis? by Choron · · Score: 1

      It looks very interesting but many people don't want to deal with the command-line, for instance people usually prefer using something like WinCVS, which works pretty well anyway.

      Is there any project undergoing to add UI tools to Aegis, apart from the web interface which is read-only ?

      --
      "Naughty, naughty, naughty, you filthy old soomka !"
  78. Auto Merge by adamtegen · · Score: 1

    A nice auto-merge would be nice. VSS does this fairly well. If it can't figure it out, it asks, which I think is far preferable than messing up my source. Lots of commercial tools don't do this terribly well.

    Also, a utility that can handle branching and merging of source trees, would be nice. I haven't run into a single source control program that doesn't have its quirks in this area.

  79. Acceptance by mgrant · · Score: 1

    The big problem with any open source CVS replacement is going to be acceptance and stability. I use CVS because it's been around forever. It is going to be quite a long time before anyone starts using a new system, simply because no one's going to want to gamble with their source code.

    I think the key to getting the development community to use a CVS replacement will be a strong set of unit and acceptance tests to accompany it, but even with this, it will take years before most people are willing to switch over from CVS.

  80. Consider Aegis by Anonymous Coward · · Score: 0

    http://aegis.sourceforge.net/ Open source, integrated compile, build and test, distributed repositories, internationalized, branching, etc. "Aegis enforces a development process which requires that change sets ``work'' before they may be integrated into the project baseline. Works includes requiring that change sets build successfully, and (optionally) that they include and pass tests. It also ensures that code reviews have been performed. "

  81. Subversion limitations by Tet · · Score: 2

    I've never used subversion, so I may be wrong. However, a brief scan of their web site makes no mention of change sets. If that means it's file based (like rcs, CVS and SCCS), then it stands no chance. Change sets are an essential feature of any modern source control system. I wasn't convinced until I'd played around with TrueChange. Since then, I wouldn't consider going back. BitKeeper is designed from the ground up to support changesets, and it's not something that can be easily tagged on at a later date. For that reason alone, subversion won't succeed. PRCS looks promising, though...

    --
    "The invisible and the non-existent look very much alike." -- Delos B. McKown
    1. Re:Subversion limitations by MarkCC · · Score: 3, Informative


      Subversion is, basically, changeset based. Their storage model is a bit.... wierd. But they capture the set of changes in a checkin
      as a single, atomic change unit.

      On the other hand, when we started implementing Stellation, we used PRCS. To say that it's a frustating, annoying, glitchy mess
      is an epic understatement. When we finally moved to self-hosting
      (inside IBM; we don't yet have strong enough access control to
      put up a public Stellation server, so we shadow our internal
      repos to an external CVS for the moment), it was an enormous
      relief.

      PRCS generates thousands upon thousands of unnecessary questions,
      phrased in obtuse and easily misinterpreted ways. It requires you
      to manually maintain the map between filenames and repository
      artifacts, by manually editing a cryptic configuration file. It
      constantly mucks up that configure file, adding hundreds of carriage
      returns for no apparent reason. Echh. The versioning model
      is very nice; the implementation is solid, but frustrating.

      -Mark

  82. Re:Clearcase...sucks! by renehollan · · Score: 2
    The view model is beautiful. However, the power it provides can certainly be abused, and in general, most developers should use views prepared for them rather than roll their own.

    You roll your own when you really want for fork something off the main branch and need to preferentially select your changes over mainstream development.

    You get into trouble when you have inexperienced Clearcase admins not knowing what they're doing (and this is understandable, given the learning curve steepness), or worse, developers left to their own devices.

    Clearcase really is a tool for a team lead to use to manage the various forks of their project.

    --
    You could've hired me.
  83. I agree with you by NetWurkGuy · · Score: 1

    Absolutely the human management of the development team counts for much more than the tools.

    When last I left Lucent Wireless they where on their third go-round trying to relace the old primative Sablime version control system, (developed in-house at ATT), with Clearcase. The productivity of some of the Sablime using groups was really quite good. Those were the groups with smart managers.

    One note of interest, however, is that Rational's make utility, Clearmake, was distinctly inferior in performance to Lucent's in-house nmake, (not to be confused with MS nmake). The decision was made to stick with nmake even in the Clearcase projects even though some Clearcase functionality would be sacrificed.

    --
    "Obtuse Anger is that which is greater than Right Anger" - Lewis Carroll
    1. Re:I agree with you by ebh · · Score: 1

      Clearmake is slower than nmake (and traditional make and GNU make, and...) because none of those other tools make what you build available for reuse by other users, nor do they reuse what others have done. In ClearCase terminology this is called "wink-in" and it can speed builds up by an order of magnitude while decreasing overall disk usage dramatically.

      Moreover, none of the traditional make tools store any metadata about what they've built (nmake does though). ClearCase stores a "configuration record" consisting of all the file system objects that contributed to creating the derived object, as well as the command that did the compilation (e.g., "cc -o foo.o -DSTUFF=bother -I/foo/blat/include foo.c").

      Clearmake always incurs more overhead than traditional make tools when it comes to deciding whether to rebuild something or not, but once it knows the answer to that, a wink-in can be almost instantaneous (on a good day, I can get 20 winkins per second).

      Other wins are that Clearmake figures out all the header file dependencies on its own--bye bye "make depend", and a change in the invoked command, not just the source files, is detected and triggers a rebuild.

      OTOH, it is hobbled by its need to be compatible with older make variants; I'd KILL for a "clearnmake" because nmake is a much more powerful tool for directing compilation. Switching to something other than clearmake loses all the winkin capability.

      I'd also like something that Does The Right Thing with Java. Make's model has always been, "rebuild only when necessary", but it relies heavily on C/C++'s decoupling of interface from implementation. Since java doesn't have this, clearmake loses, and you end up going to ant or javamake.

      Speaking of javamake, it's worth noting that the tool is an outgrowth of the author's postdoc research to determine what needs to be rebuilt due to a single change to a single java source file--it's that nontrivial of a problem.

    2. Re:I agree with you by RollbackRelease · · Score: 1

      Yes all true ... and I know cos i was there. Sablime is great, but a little clunky and limited in branching. It frightens most CC admins away. this tool is also on sale now ... Poor LU. However Rational still struggle to come up with as good Cahnge management system People make SCM work and they use tools

    3. Re:I agree with you by RollbackRelease · · Score: 1

      Look , nmake , builder and gmake all have the vpath concept. I can use nmake in a view/vob and make my binaries available for the rest of the team. This allows for nightly and incremental building just fine.

    4. Re:I agree with you by ebh · · Score: 1

      That's not reliable. Say you create a source tree that you intend for others to use as a backdrop for their builds. You build it, filling it full of compiled objects. Then I come along, set up my build tree, VPATHing against yours, and I rebuild. Any source I haven't changed won't be rebuilt because there's an up-to-date compiled object in your tree that I can reuse. So far so good.

      But suppose I've changed something in my build environment. The most obvious example is a different compiler (maybe even at the same pathname if I'm on a different machine and building against your NFS-mounted tree). Most tools, including gmake, Sun make, and (IIRC) nmake, will not detect the change, and will incorrectly not rebuild.

      So, it's good enough for most development situations, but unless you have VERY tight control over developers' build environments, you're still vulnerable. (One example of tight control: put all the build tools in a well-known place where developers can't change anything, then chroot to it to do the build. Also, have the build scripts completely discard the user's environment, e.g., no more PATH=$PATH:...)

      To be fair, there are some similar traps with ClearCase, but they're fewer in number, and relatively easy to work around.

    5. Re:I agree with you by RollbackRelease · · Score: 1

      If you change the compiler then the correct procedure would be to reset the tool varialble CC_HOME in the global.mk file at the top of the tree. Changing the global.mk will cause a full rebuild. Yes you can change the compiler with an environment variable and overide the global.mk file but this is not good procedure as user environment variable are not under version control unless you have a common environment which is all that is supported. So keep global.mk secure and change the tools in this file causing the correct rebuild behaviour.

  84. One word by MuValas · · Score: 4, Informative
    "Envy". This was (is?) a code management tool for Smalltalk development. Not only did it have the basic checkin/checkout/diff features of normal tools, it also took into account all the areas of "friction" in team development and attempted to reduce the coefficient of friction, as such. Some examples:
    • Scratch pad versions. Ever needed to play around with a piece of code (put in debug statements, or change part of it temporarily to help debug something) but didn't want to check it out and have the threat of making the changes accidentally permanent? Envy had the ability to make a "scratch" version of a file - letting you edit it, but not worry about accidental check ins, or forgetting that you had made a file writeable.
    • Version/Releases. Not only could you label a specific state of an application a "version" but you could also label a version of an app a "release". This allowed some subtle distinctions between "ok here's a workable version we can get back to (demo)" and "here's the real, outgoing released version".
    • Manager. Code could be given specific people that were the manager, or "owner" of a piece of code. If you wanted to enter your changes into the code base in general, you had to get the owner to do it. This control could be anywhere from every check-in, to version or releases. An owner could give permissions to other people as well.
    • Multiple checkouts. Envy recognized that sometimes people have to work on the same file, as much as its best prevented. So, it allowed multiple check-outs, with facilities to integrated the files back together on check-in.
    It was quite complex, but looking back at it I now understand why many of the facilities were there and die to have them for my team. We're using SourceSafe (blech), and it works ok, but something like Envy would be great.
    1. Re:One word by MarkCC · · Score: 2


      Envy was one of the major motivators that led me to start Stellation.

      I loved Envy in theory, but hated it in practice. Fine-grained
      versioning and locking is a truly wonderful thing. But being
      locked into exactly the views that they happened to build in to
      VA Java was incredibly frustrating. Not being able to really
      use JavaCC or Antlr along with my Java code really bugged me.
      Not being able to use emacs really bugged me. The overly
      strict management stuff really bugged me. There were gems of
      brilliance scattered around the system, but the overall
      realization of it drove me up a tree.

      Stellation tries to do many of the same things, but without
      getting caught up in the whole "I control the Universe" assumption
      that make Envy so frustrating. We're also trying to take things
      much further that Envy did - giving more flexible ways of locking
      small pieces, providing better tools for coordinating programmers,
      allowing programmers to quickly and easily generate custom
      views of their code, and allowing external tools to be tied
      seamlessly into the system.

      -Mark

  85. Continuus config management DOES exist by justanyone · · Score: 1
    Continuus config management DOES exist.

    Continuus (http://www.continuus.com) redirects to Telelogic.com because Continuus (Irvine CA USA)was just purchased for $42 by Telelogic (Malmo Sweden).

    I did a white paper on configuration management while a consultant at a ... fortune 500 retailer Se**s.com (home of cr****man tools and Ken***e appliances). I evaluated version control and bug tracking combined ('config management' embodies these two functions).

    In any large software project, the issues of bug tracking and version control are very, very tightly interwound. With 100+ developers and 20+ quality assurance (qa) testers, we'd get lots of both bugs and fixes. The trouble was how to associate the two. I built some tools for short term use (that are still in use) using (ugg!) PVCS (not polyvinyl chloride :-) ) and a custom built bug database. We'd associate a checkin of several files with a bug number, promote them to(copy 'em into) the qa dir, send a email to qa, and allow qa to approve the change by bug number not by file number, which promoted (copied) them to the production-level directory. Its a pretty smooth system for something we developed in-house, but it would have been nice to have a web interface, and all the bells and whistles that a purchased product would provide.

    Building this was a pain in the butt. Continuus does this, as does Rational, but they are both hideously expensive ($300 - $500 per seat). There were some also-rans (close competitors that didn't quite work right or satisfy the criteria).

    The big deal was getting something in house fast. The more money it cost, the more time management took to decide (they still haven't). What we (in the open source community, and Linux in particular) need is a toolset that integrates bug tracking and version control tightly. It really multiplies programmer productivity because the time they don't spend copying files for a custom build. QA is happy because they're assured a bug goes away, and that the tests they run can be regressively associated with a bug number and therefore with a set of files that work together, not one at a time.

    If I get time, I'll post the white paper that I wrote specifying all the criteria for config management. There's a bunch of config managment links on my homepage at justanyone.com.

  86. SpeeDev anybody? by N8F8 · · Score: 2
    Our project just bought into a tool called Speedev. Anyone heard of them? Anyone using this product?

    The product demo was impressive. Seems to a complete SCM tool. The problem with most source code tools like SourceForge and CVS is that they don't really address the entire SCM process in one integrated tool. Why is that? What tools to you use for Requirements tracking? Defect tracking? Testing?

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  87. Elaborate on the brancing models, please? by Anonymous Coward · · Score: 0

    I don't understand what subversion does when brancing that you dont like? Please elaborate?

    1. Re:Elaborate on the brancing models, please? by Ben+Hutchings · · Score: 2

      SourceSafe and SubVersion create branches as separate paths within the repository, whereas CVS creates branches in revision histories under the same path.

    2. Re:Elaborate on the brancing models, please? by gstein · · Score: 1

      Note that this doesn't normally "pollute" the GUI in Subversion. We have a much more flexible structure and access into the repository. Most of the time, people check out /trunk/. All of the branches that people create are over in /branches/. Thus, most users will never see (all) the branches unless they specifically go looking for them.

  88. You can't do "better" than CVS by Anonymous Coward · · Score: 0


    But you could add new features to it, or yet
    another co-existing product.

    I think the main problem is that what you do
    with your software beyond CVS' source code control is generally so customized that there
    hasn't been a unified project to handle it.

  89. It shouldn't look like anything! by Anonymous Coward · · Score: 0

    The ideal version control system would only be found when you needed use it's administrative function (releasing version, comparing versions etc.)

    During development, you shouldn't even know it's there.

  90. Too Complex by N8F8 · · Score: 2

    At some point you need to develop instead of monkey around with the source code control tool.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  91. Microsoft uses Perforce for OS Development by Anonymous Coward · · Score: 0

    Yep, they started using it with Windows 2000. They call it SourceDepot, but some Perforce commands mention SourceDepot. Maybe a custom version of Perforce? They sure as hell don't use VSS...

    1. Re:Microsoft uses Perforce for OS Development by ncarey · · Score: 1

      "source depot" is Microsoft's in-house source code control system that predates Microsoft's purchase of SourceSafe. It makes VSS look like a sleek elegant tool. I can't believe the the W2k crew is using it over VSS. Microsoft pretty much mandated that everybody migrate to VSS.

      --
      N. --
    2. Re:Microsoft uses Perforce for OS Development by RollbackRelease · · Score: 1

      MicroSoft also has a bag full of ClearCase licenses aswell 600 . So there U have it . They have all the tools they need and yet .... SourceDepot is apparently a cover for p4. Wouldn't want to take away any VSS sales. the Rational story is that ClearCase is under all VSS application development.

  92. Get rid of the file system completely - simplify! by stienman · · Score: 5, Interesting

    Maybe it's time for a major shift in cod storage.

    Let's get rid of the file system/directory stucture schema and go with a completely revamped code storage method.

    This has a ton of implications, but one thing that everyone seems to ask for that is difficult to solve on the old model is easy to work with if you remove the files and directories - sub-file VC. Being able to move modules from file to file, split files, move directories, etc.

    The files and directories are there to help us understand the structure of the project, they were not meant to dictate the structure to us. We've locked ourselves into them so much so that we can't restructure the project without losing a lot of the benefits of VC.

    Let's stuff our code into a database (which is like a more powerful file system, if you can't get your head around the idea). Atom updates can be built in. Symlinks are simple. Shifting a piece fo code to another 'file' is simple and the VC is not lost.

    I can't be the first person to have thought of this - why hasn't it been done? Possible cons are:

    Until the compilers and IDEs understand the new schema (regarding header files, includes, etc) the VC will also have to provide scripts to combine portions of code into files that the compilers can use.
    How do we store the data in the database - it would depend largely on the language. Would we put a function in a blob of a record, or maybe even do line by line records. In highly OO languages (java) we could structure the database so there are class records that link to member records that link to variable and function records, etc.

    Eventually the toolchains will attach to the DB directly.

    Consider how this would aid huge and tiny projects alike.

    I swear, the sooner we get rid of the file system (as is) the better - not just for this, but for all our information. But let's not get ahead of ourselves.

    -Adam

  93. Nope, you got it wrong! by Anonymous Coward · · Score: 1

    Subversion keeps track of the repository states and versions them instead of keeping versions on separate files.

    This paired with atomic commits of (multpile) changes should do it for you, right?

  94. Mixing it up with eXtreme Programming (XP) by Canis+Lupus · · Score: 1

    Over the past couple of years, I have started to become a Disciple of extreme programming (silly name, great concept). I envision a system where many of the features of XP are integrated with the revision control system. Essentially, code must have tests and modicum of documentation (a paragraph explaining what the hell is going on would suffice).

    At a slightly higher level, integrating the requirements ("stories" in XP speak) into the system would allow better tracking of progress of both subsystems and parts as a whole.

    For example, a project starts with 50 "stories". In the first few weeks, 30 stories are completed (i.e., code exists with tests which statisfy each of the stories). The customer (or managers, etc.) could bring up a story and review all the unit tests, acceptance tests, etc., for a particular story. Should the customer discover a new special case, they can extend (or append to) the acceptance tests for particular story (or set of stories). In this way, nothing gets left out or overlooked and every part of the system is verified automagically. (Plus, the programmer gains a bit of safety from poorly specified projects.)

    As the number of outstanding stories decreases, projection can be made as to project completion. Stories which are getting left behind can receive additional resources, etc. The revision control system could actually answer the age old question "is it done, yet?".

    Anyone what to help me write this?

    (I have actually spec'ed some of the system out, but I have been too busy to do anything about it...)

    --
    The real silver bullet to good programs is caffeine; lots and lots of caffeine! *twitch, twitch*
  95. Aegis by PghFox · · Score: 2, Informative
    Aegis is a project change supervisor, and performs some of the Software Configuration Management needed in a CASE environment. Aegis provides a framework within which a team of developers may work on many changes to a program independently, and Aegis coordinates integrating these changes back into the master source of the program, with as little disruption as possible. Resolution of contention for source files, a major headache for any project with more than one developer, is one of Aegis's major functions.

    Aegis enforces a development process which requires that change sets ``work'' before they may be integrated into the project baseline. Works includes requiring that change sets build successfully, and (optionally) that they include and pass tests. It also ensures that code reviews have been performed.

    • Transaction based
    • Supports large teams and projects
    • Supports change sets
    • Designed for repository security
      • availability
      • integrity
      • confidentiality
    • Supports distributed and multiple repositories
    • Mature. First release was in 1991 and is still being actively developed
    • Easy to use. Can be learned in under a day
    • Supports multiple simultaneous active branches and branching to any depth
    • Supports both push and pull distribution models, and many distribution topologies
    • Error messages of Aegis are internationalized
    --
    --- Fox
    1. Re:Aegis by AeiwiMaster · · Score: 1

      Yes, Aegis is very cool.

      But it does have a problem.

      Development must be done on a shared file-system.

      So, it is not useful for project developed over the Internet.

    2. Re:Aegis by Anonymous Coward · · Score: 0

      That is not exactly true. You can keep two "repositories" in sync by downloading and installing aegis changes ("change sets").

      It is not as simple as CVS because Aegis is more than a version control system and has to keep track of every new "change". Despite of that, it is possible to develop over the internet with aegis.

    3. Re:Aegis by AeiwiMaster · · Score: 1

      Okey, It is possible to develop over the Internet with aegis.

      But it is not practical.

      Aegis is not transplant to if the repository is locale
      or on some server on the Internet, like pserver does for CVS.

      I think that if aegis could fix this it would be more popular.

      Because many open source projects could benefit a lot from using aegis
      development model.

      Knud

    4. Re:Aegis by dlakelan · · Score: 1

      Not practical?

      Aegis development over the internet is PERFECTLY practical. It is in fact the way that Aegis itself is developed I believe.

      The change set distribution mechanism is NOT built in to Aegis. This is probably what you're talking about. However it is trivial to distribute aegis changes through a web server and a simple cgi script. It's possible that Aegis already includes this functionality in the aegis web based tools.

      Distributing aegis change sets is literally as easy as "aedist -send -p myproject -c 22 > myproject.22.aed"

      wget http://foobar/aegis-sets/myproject.22.aed; aedist -receive myproject.22.aed

      If you're using CVS, strongly consider switching to Aegis. There's even a cvs user's howto for aegis, and a tool that automatically imports the CVS repository to Aegis.

      --
      ((lambda (x) (x x)) (lambda (x) (x x))) http://www.endpointcomputing.com a scientific approach to custom computing.
  96. Clerify by K'tohg · · Score: 1

    I missed my caffine today so I'm a few brain cells short.

    Perhaps I should clarify my former (soon to be) flaimbait.

    First off It'[s knee jerk reaction to project splits. I don't like seeing projects split unless politiaclly there is no other option (like the maintainer is a source code greedy jerk). So I'm some what aggitated by news of another version control. Especially with spening such great effort to fight the CVS battle against VSS and the like. And when the de facto standard of CVS came about I thought I had won.

    Secondly, I do feel changes need to be made. CVS is limited and enhancment are required. (But what open source project isn't). The subversion successor sounds fabulous and I will download and try it perhaps even use it in production. However It bothers me as to why it's is a sepereate project. Subversion or CVS v2.0 or CVS (Subversion) v2.0? I don't see why a completely new project is required.

    one of the ideals of a hacker is you should never solve a puzzle twice. So now Subversion is reinventing the CVS wheel to make it better when it could just make CVS better. See my delema?

    Anyway maybe there is a good reason hiden there. that's why comment welcome. And none of these are intended as flamebait thay just sound that way. Sorry.

    --
    > SELECT * FROM brain_cells WHERE synaptic_rate > 0
    0 row returned
    1. Re:Clerify by stripes · · Score: 2
      However It bothers me as to why it's is a sepereate project. Subversion or CVS v2.0 or CVS (Subversion) v2.0? I don't see why a completely new project is required.

      Pretty much all new code. New data structures. Slightly different view of the problem. Totally different network protocalls. And probbably zero interoperability.

      Sounds like a good time to change the name. Even if many of the devlopers are the same.

  97. You need a good CVS client, like... by Anonymous Coward · · Score: 0
    1. Re:You need a good CVS client, like... by seanyboy · · Score: 0

      heh - thanks. That looks to be exactly what I need. Way to restore my faith in the slashdot humanity subset.

      --
      Training monkeys for world domination since 1439
  98. Re:Get rid of the file system completely - simplif by Brackney · · Score: 1

    The database idea is just what Atria/Rational did with Clearcase. The CM package sits on top of an Oracle database (VOB) and integrates it with the filesystem.

  99. for many, only two choices: subversion or cvs by e40 · · Score: 2

    Many of us are in the same boat: GB repositories with untold value (in the revision history).

    That means one thing: use CVS, something CVS compatible or something that can read and understand a CVS repository. (Here I explain why Perforce didn't work for me.)

  100. Not quite it, here's an example... by oliverthered · · Score: 2

    dosomthing.c has amoung it's functions
    formatString
    formatDate
    formatBill

    dosomthingelse.c has amoung it's functions
    formatString (copy pasted from dosomthing.c with a few fixes)
    formatTime
    formatAddress

    I wan't to move all the format functions into
    formatData.c
    merging formatString
    and preserving the change history on the rest.

    --
    thank God the internet isn't a human right.
  101. Stop Stepping On Me! by Ratbert42 · · Score: 2

    I just want a tool that, when someone checks something in/commits, warns them when they are undoing the changes of the previous revision. How hard would it be to have something automatically diff the last 3 revisions and throw up a warning?

  102. and other languages by oliverthered · · Score: 2

    XML could be tracked using DTD changes.
    Java could use the C++ methods.

    Change control would be so much easier!

    The other option is just to look at all the changes in the commit, and try to match up things that have moved or been coppied, in the file or accross multiple files, that shouldn't be too hard, using per line hashing and match rejection to reduce the workload.

    --
    thank God the internet isn't a human right.
  103. I said the same thing about remote controls by Gorimek · · Score: 2

    ... until I tried one.

    My IDE can
    -- rename a variable or class, and have the changes propagate through every file in the project
    -- Flag most syntax errors or mismatched parameters I produce while I write them
    -- press a key and have every use of the variable the cursor is on highlighted in purple. The uses outside the window is shown in purple on the scroll bar.

    And dozens of other things. Sure, you can do them all by hand, but much slower and more error prone.

    1. Re:I said the same thing about remote controls by pmz · · Score: 2, Insightful

      My IDE can
      -- rename a variable or class, and have the changes propagate through every file in the project


      find + sed

      -- Flag most syntax errors or mismatched parameters I produce while I write them

      I saw Visual C++ do this. I could type faster than the machine would let me. Even worse, it prompted me for mouse clicks on the fly. Basically, auto-checking is a kludge and gets in the way. Syntax checking is what good eyes and good compilers are for.

      -- press a key and have every use of the variable the cursor is on highlighted in purple.

      find + egrep

      And dozens of other things.

      And dozens of other general tools in /usr/bin.

      Sure, you can do them all by hand, but much slower and more error prone.

      Not necessarily slower nor more error prone, and general tools, such as grep, sed, and awk, can be used in generating reports about source code that are extremely useful in gaining understanding about where to go next. For example, in a matter of minutes, I was able to pick out every function call that relied on a certain 3rd party API and send that list to the vendor for a support request.

      In short, hard-wired GUIs inhibit the system rather than help, and the extra bugs introduced by the raw complexity of a GUI-based system can be haunting. Also, text-based tools are programming-language independent and provide seamless reuse across projects.

  104. Re:Get rid of the file system completely - simplif by MarkCC · · Score: 3, Interesting


    That's part of what we're doing in Stellation. Our basic
    view is that source files combine storage and organization
    in unfortunate ways. So we want to break that linkage: code
    lives in the database, stored as small pieces. Pseudo-files
    are generated to give you organizational views of the system.
    Because storage and organization are distinct, there's
    no reason that a given chunk of code can't be viewed in multiple
    pseudo-files.

    The big catch is that there
    are an awful lot of very useful tools out there, and they're
    not going to give up their filesystems overnight. So you need
    to be able to both discard the file notion when it's appropriate,
    but at the same time to preserve the ability to use a filesystem
    when necessary. Stellation pseudo files can always be exported
    into a real filesystem to work with tools that don't understand
    it's database storage model.

    -Mark

  105. What should it LOOK like? by ReelOddeeo · · Score: 2

    My question is exactly what would this 'better system' look like?

    Well, first a volunteer graphic designer needs to be found. The program needs to be themable. This should be right at the top of the requirements document. It should offer a remote api (CORBA?) so that other programs can send it messages to change the appearance of the buttons, scroll bars, etc. There should be a web interface so that you can use another computer in case you cannot use your own monitor because the default color scheme is unacceptable for professional work.

    --

    Those who would give up liberty in exchange for security and DRM should switch to Microsoft Palladium!
  106. Here's a UML design for a version control system by jheintz · · Score: 1
    Here is an high-level model for a versioning system that was designed to support content like programming files as well as hypertext markup language well. SnapCM

    It doesn't go to the detail of implementation, but could be a meta-model to compare/contrast versioning system implementations.

    This model also support policy based version to version link resolution: stuff like fixed version, latest version, version from same context...

    Some other comments have indicated that a versioning system should have better dependency tracking. I've extended the SnapCM model to Versioned Hypderdocuments (XML plus XLink) as one example of precisely recording dependencies. A programming languages import statements could be treated the same way.

  107. Version control or project management? by b0bd0bbs · · Score: 1


    I think most people are confusing revision control with project management.
    For that we already have make.
    RCS and make are all you need, with ssh to make it network friendly. Isn't that the Unix(tm) way?
    We don't need a 'GNUSourceSafe'. Does anybody put checkin and checkout targets in their makefiles anymore?

  108. CVS IDE Integration by md17 · · Score: 2, Interesting

    I have been using the Eclipse Open Source IDE for a while and it integrates very well with CVS. It actually even adds some of the features many posts are looking for. And for you Java nerds (like me) check out the Easy Struts Plugin it will save you hours writing those action, form beans, etc. Happy coding.

  109. Re:Get rid of the file system completely - simplif by look · · Score: 1
    Maybe it's time for a major shift in cod storage.
    Amen! I am tired of the old ways of cod storage. I would like to receive my cod fresh and tasty, instead of packed in oil or vinegar.
  110. Another feature: by DrCode · · Score: 2

    4) Keeps track of branches and merges between branches. With CVS, you have to remember to mark the points where you merged.

    Overall, though, I find CVS a lot more pleasant to use, and it does a much better job of merging.

  111. p4 gui for UNIX by pHDNgell · · Score: 1

    tkp4 is a very good clone of the Windows p4 gui.

    http://web.cuug.ab.ca/~macdonal/tkp4/

    I open it up now and then when I can't translate a concept from CVS in my head. :)

    --
    -- The world is watching America, and America is watching TV.
  112. Re:Get rid of the file system completely - simplif by rhdwdg · · Score: 1

    You described WebSphere Studio, among other systems. It works well if you license it for everyone that could ever work on the code. Very nice if you're deploying to WebSphere. Leave the family and it's just annoying.

  113. AccuRev - great ideas by bfrog · · Score: 1

    We're using AccuRev for Linux and Windows development. The features are great - multiple stream hierarchies, giving each developer control over what and when he promotes or gets. Integrated bug tracking is nice. Unfortunately, the company is small, and the tools show it. Bugs abound. The java front end is quirky, but at least it runs on an X server or on windows (although is is too slow to tunnel through ssh).

    Because disk spae is cheap, files are stored uncompressed and undiffed in a directory hierachy, which is a comforting thought --in case the whole system has a meltdown.

    I hope the company is successful, because AccuRev has a lot of potential, IMHO.

    1. Re:AccuRev - great ideas by kydkaos · · Score: 1

      I'm interested to hear the kind of bugs you've experienced with AccuRev. I'm evaluating a bunch of tools right now and AccuRev is the top contender, but I'm a little bit worried about the stability of the company/product. Thanks.

  114. ClearCase file recovery by divbyzero · · Score: 1


    Cleartool does indeed have a subcommand for marking an element as deleted while preserving its history for later recovery ("cleartool rm"). However, it does not have a simple command to do the later recovery. For that, you have to manually root around in the "lost&found" section of the vob, which is a major pain in the rump. This is especially painful when you run "cleartool rm" on a directory but not on any files or subdirectories inside it.

    My general feeling about ClearCase is that it makes just about every SCM-related operation possible, but many of them are needlessly awkward.

    --
    But my grandest creation, as history will tell,
    Was Firefrorefiddle, the Fiend of the Fell.
    1. Re:ClearCase file recovery by ethereal · · Score: 1

      No, read again. If you want to remove an element for good, revision history and all, use "cleartool rmelem". If you just want to not see the element in this directory any more, checkout the directory and do "cleartool rmname". You can then easily restore the missing file from an older version of the directory if you ever decide you want it back. You almost never need to do rmelem; in four years as a ClearCASE user and admin I've only completely removed a file once.

      ClearCASE doesn't always document exactly all the things you can do with directory versioning, which is a bit of a downside (from what I hear, a lot of people even with Rational don't completely understand directory merging, etc.). But once you get a couple rules of thumb straight, this particular problem is not much of an issue.

      --

      Your right to not believe: Americans United for Separation of Church and

    2. Re:ClearCase file recovery by divbyzero · · Score: 2

      Actually, I *was* talking about "cleartool rmname" (which ClearCase allows you to abbreviate as "cleartool rm"). "cleartool rmelem" does not preserve an element's history at all; that's exactly its point.

      --
      But my grandest creation, as history will tell,
      Was Firefrorefiddle, the Fiend of the Fell.
  115. If you like clearcase... by Anonymous Coward · · Score: 0

    Check out the free clone of clearcase that is being developed in Australia...

    It is called Katie and it is written in Perl.

    http://www.netcraft.com.au/geoffrey/katie/

    Enjoy!

  116. article on this subject by oktaya · · Score: 1

    Check out this article I had written a while ago.. It might give you some ideas.

    Easing Web Application Development with CVS
    http://linux.oreillynet.com/pub/a/linux/2002/ 01/31 /CVS.html

    Oktay Altunergil

    --
    ---------------
    Founder of the The Free Linux CD Project
  117. Subversion is alive and kick, and doing a great jo by scode · · Score: 2, Informative

    (I'm not a developer, just an observer of the project.)

    Subversion is nearing a first final release. The alpha version is just around the corner, and development is very active.

    Subversion is basically CVS done right. Natively client/server, atomic commits, proper handling of binary files, proper versioning of everything - including directories and file metadata, and much more. Go read about it at http://subversion.tigris.org

    --
    / Peter Schuller
    --
    peter.schuller@infidyne.com
    http://www.scode.org
  118. Wink-ins for CVS by Spruce+Moose · · Score: 2, Informative
  119. Re: scripting a version control system by gstein · · Score: 1

    Please note that Subversion is designed as a set of layered libraries. We are also implementing language bindings to those libraries (via SWIG). At the moment, we have Python bindings to most of our libraries.

    This scripting support works from the low-level access to the versioning database, all the way up to the high-level client library. (the command-line client is just a thin app glueing stdin/stdout/stderr and the cmdline to the libsvn_client library)

    The command-line client app also ensures that its output is machine parsable.

    You want scriptability? Hoo. Subversion has it.

    [ I'm just waiting for somebody to take the Python GTK bindings and the bindings to the client library to build a cool GUI app ]

  120. find doesn't know Java by Gorimek · · Score: 2

    find + sed

    Oh please!

    So if you want to change variable x to y, you will also change all exists to eyists, right? What you really have to do is to manually check each and every one of those occurences to try to decide if needs to be changed or not.

    Syntax checking is what good eyes and good compilers are for.

    Sure you can spend your brainpower on hunting syntax errors, but why not use it for more productive things when the IDE can do it for you? And of course the compiler will always catch syntax errors, but instead of finding them when you type them there is a much longer turnaround time.

    I have no idea what "raw complexity of a GUI-based system" is supposed to be. Visual C++ may be crap, I know nothing about that. I'm talking about IDEA for Java. All it's auto checking does is to mark errors in red. It's up to you to if and when you want to do anything about them.

    1. Re:find doesn't know Java by pmz · · Score: 1

      So if you want to change variable x to y, you will also change all exists to eyists, right?

      Nope. Regular expressions are very useful.

      I have no idea what "raw complexity of a GUI-based system" is supposed to be.

      How about tens of thousands of lines of code where there need not be. Look at the size of the programs in /usr/bin and compare that to the size of the standard IDE distribution. IDEs are complex.

  121. Mod the parent as funny by iamacat · · Score: 1

    I work for an unnamed big company that has converted to clearcase. On the other hand, I invented various excuses to keep CVS for my group. The other people on my floor are not having fun. They have to check out every file they change in advance rather than just letting source control figure out what they have changed. Then they have to check in each file a lot of times - to their private branch, then to shared branch and other places I don't understand. To merge the file, they have to look at some mind-boggling chart with dozens of boxes and prolifiration of arrows. The central server constantly goes down and for a few days they get to do source control with floppies. When it is running, ct co -nc filename takes anywhere from 2 seconds to 1 minite. We never had a fulltime source control admin when we used RCS - I just used to write a new shell script once in a few month when they wanted some new feature. Now we have a fulltime admin and even people who used clearcase for 3 years talk to him every few days. In my life, I only saw a few pieces of software that were so screwed. This one has earned a place in my heart (or somewhere) right next to RealOne player, DOS 4.0, Solaris 2.1 and Thexder 95. If they make me move to this thing, I'll just set up a shell script to zip my cvs repository every week and check it in to clearcase.

    1. Re:Mod the parent as funny by pivo · · Score: 2, Funny
      I work for an unnamed big company...

      Weird. Maybe you ought to get a name?

    2. Re:Mod the parent as funny by Anonymous Coward · · Score: 0
      The other people on my floor are not having fun. They have to check out every file they change in advance rather than just letting source control figure out what they have changed.

      Although this might seem like a pain at first, it's actually a really good thing. For one, it allows you to find out who has current changes to what files, and who else you might be conflicting with. In CVS, it's impossible to tell who is modifying what at any given time. Also, it makes it easy to figure out what files you have changed so you don't forget things (easier than CVS diff anyway). Basically, it makes you think about conflicts and coordination with other developers BEFORE you start spending time changing a file, which reduces the amount of conflicts and merges later.

      Then they have to check in each file a lot of times - to their private branch, then to shared branch and other places I don't understand.

      Sounds like they're not setting up their environment correctly. I've never heard of giving developers their own private branches. That would just create senseless extra work. Branches should be task oriented, and branching should only occur when you get to the point of actual concurrent development.

      To merge the file, they have to look at some mind-boggling chart with dozens of boxes and prolifiration of arrows.

      Sorry, but I don't think you can complain about Clearcase's merge tool when you're using CVS. CVS doesn't really give you any options for merging - it's either automatic if there are no conflicts or it bails and puts diffs in your file. I've grown to hate automatic merging because I've been burned by it too many times. While CVS merging is always laborious, Clearcase merging is quick. You can let it perform automatic merges (like CVS tries to do) if you want, or you can manually merge, or do an interactive merge where you look at a graphical diff (like xdiff) and are prompted for individual changes. It's great.

  122. Just Make An Open-Source StarTeam by occamboy · · Score: 1

    I've used StarTeam and CVS. StarTeam is fantastic, 'tho expensive. It is very, very, very useful to tie bug tracking and change requests to version control. This makes it easy for an organization to see how a product is progressing, and to track the history of changes vs. bugs. This is particularly critical for folks who work under ISO9000, FDA QSRs, and other such regulatory regimes. It is also super-useful if you are not working under any regulatory regime other than your customer getting ticked when important bug fixes or new features fall between the cracks. Starteam is a GUI-based system that integrates version control with bug tracking and change requests. It is intuitive, powerful, and reliable. (No, I don't work for the StarTeam folks)

    1. Re:Just Make An Open-Source StarTeam by AveryT · · Score: 1

      I've used RCS, Perforce, ClearCase, and StarTeam and IMHO StarTeam is the worst. It is slow, full of inconsistencies, and has a hopeless command line interface. It gives you no history of changes and can't even tell you what happened between two labels unless you have your entire source tree checked out from one of the labels. Nice slick GUI, no substance.

  123. Re: scaling Subversion by gstein · · Score: 1

    We have yet to do some throrough analysis of Subversion's performance characteristics, but we're quite hopeful. We've built the code on a number of tools that should give us excellent headroom for scaling it up.

    First, the repository itself is based on Berkeley DB. Very fast, transacted, capable of hot backups, etc. Unfortunately, we can't really scale this across machines, so (until we get a traditional relational backend) we'll reside on a single box. But given its maturity, its use of shared mem to coordinate multiple threads/process, I think we're going to be able to make great use of it to scale up and (well) across a multiple CPU system.

    Next up the design stack is Apache 2.0. We can scale this through threads and processes in whatever way fits the machine and operating system the best. We've got process preforking, fixed thread pools, or dynamic groups of processes and threads. It works on "all" operating systems out there, taking advantage of the characteristics of that platform (there are custom processing modules for Windows, OS/2, BeOS, and NetWare, plus the standard set for Unix and its variants). Compared to CVS which forks multiple processes each time you connect (2 via pserver, or 1 SSH + 1 cvs via ssh), Apache just has processes/threads waiting for processing.

    Last up the stack is caching proxies. Since the network protocol is based on HTTP, and we have made use of WebDAV/DeltaV, we have a firm specification on how to mark resources as permanently cachable. For large sites like SourceForge, where a huge amount of the traffic is anonymous checkouts, having reverse caching proxies "in front of" the Subversion repository will offload a lot of the work of delivering basic content down to the user's machine. Workgroups can also install caching proxies at their network edge (or even within their department) and access remote repositories through it. The first guy in who does an "svn update" will prefill the cache, making updates for the next people operate at LAN-speed. For geographical disperse teams, this will be a big win.

  124. ClearCase is not UCM by Anonymous Coward · · Score: 0

    The streams and management features are an add on package called UCM. Its all about turning code into assembly line work. It will never work but people try anyways.

    If you take all that crap off the top of ClearCase and you have *skilled* workers, nothing can beat it.

    Its unfortunate that so many of todays coders belive that the SDK IDE or other uneccesary feature helps them. If you have this type of devveloper on your team, it doesn't matter what VC you use.

    yah, I am a coward

  125. Re: converting CVS repositories by gstein · · Score: 1

    Subversion has a CVS converter (partly done; it converts the main trunk of a repository, but no branches or tags). I would be very interested in throwing it at your CVS repository to see if it works. The RCS parsing is performed using ViewCVS's tools, so if the latter works on your repository (specifically, the annotate/blame functionality), then cvs2svn ought to work.

    We've also been doing some testing with portions of the GNU tool chain CVS repository. That is definitely an old repos :-)

    Before we declare cvs2svn "done", we'll be throwing the entire GNU repository and the ASF repository at the thing. When it passes, then we'll consider ourselves done :-)

  126. Re:Clearcase...sucks! by Anonymous Coward · · Score: 0

    At my work it takes 3 CC person to support a gang of 110 developers. I guess it's just a question of how good your 5 guys really are, and how well your developers stick to a common protocol.

    Only branches from no more than 2 labels behind!

    Labels are only created by one person, who resolves all merge conflicts with the developers.

    My 2 cents.

  127. Re: "just run it over SSH" by gstein · · Score: 1

    Yes, but "over SSH" means that you have to pass out system accounts to everybody who needs to commit to the repository. This specific problem with CVS over SSH blew up SourceForge, and they had to switch over to a PAM/LDAP system to handle the account load.

    Subversion doesn't require system accounts. Its authentication is handled by Apache, which means it can tie into any sort of account database. Flat text files, LDAP, MySQL databases, Kerberos, NTLM, or whatever. With SSL for encryption and client/server certificate verification, you've got the security meeting or beating SSH-based access.

  128. DesignSync from Synchronicity by Leomania · · Score: 1

    We're using a set of tools from Synchronicity called DesignSync/ProjectSync that have revision control, collaboration and problem tracking integrated together. It's aimed primarily at chip development companies, but some of the features are pretty cool. They use an Apache webserver to interface to both a commercial version of RCS (called RCE, IIRC) as well as a database for the problem tracking/collaboration system.

    One of the features we like is that revision control operations create entries in a "revision control note" (in ProjectSync, the collaboration/problem tracking portion of the tool) which can be queried just like any of the other note types. It's much more flexible and useful than just having the ability to query a file for its revision history.

    Also, we can attach links to specific file versions in the vault to a problem report that's being closed; this has been very helpful in maintaining project history. Everything in the vault has a URL, which is a great way to reference the data.

    I mention this only as by way of the features we've found useful, not by any means a suggestion to use this for software development.

    - Leo

    --
    You don't use science to show that you're right, you use science to become right.
  129. "Someone screwed up" option by nagora · · Score: 1
    CVS is a bastard to sort out if someone checks something in which later turns out to have some unnoticed hideous implication (eg deletes hard drive every Feb 29th).

    The ability to say "move this branch back to the way it was on 8th Nov and forget everything after that" without starting a new branch would be good.

    Handling links is a must too.

    A further nice option would be "these file extensions are always binary unless stated otherwise".

    TWW

    --
    "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
  130. Subversion natively client-server? by maxwell+demon · · Score: 1

    Does that mean that you can't use it as non-root user to make a private repository somewhere in your home directory? Or you can do it, but only by having a private server process running on one of the user-accessible TCP/IP ports (instead of just having a program running during checkins/checkouts etc.)?

    --
    The Tao of math: The numbers you can count are not the real numbers.
    1. Re:Subversion natively client-server? by gstein · · Score: 1

      Have no fear. Yes, you can use it on your local filesystem (as a non-root user), without a server running.

      We say "natively client/server" simply because it was designed to operate over a network. CVS had network support bolted on.

  131. Re:We use Perforce at work... it is NOT scalable by Anonymous Coward · · Score: 0
    We use Perforce at work, for over a thousand developers at multiple sites around the world. Perforce does NOT work well in this type of environment.

    Perforce Praises
    1. Supports change sets -- groups of files are commited and tracked as a set, thus they are grouped into logical units. CVS doesn't do this.
    2. Perforce tracks file renames and moves. It is weak support, but it is better than CVS.
    3. You can browse the repository, unlike CVS, where you have to know what you want before you can check it out.
    4. Centralized access.

    Perforce Gripes

    1. Sometimes, the perforce server crashes and/or becomes unavailable (ours runs on Windows, unfortunately). CVS allows disconnected operation -- you can edit files without having connectivity to the server, and later commit your changes. It doesn't matter if the sever has crashed with CVS -- you can still get work done. With Perforce, it is difficult.
    2. Speed. Speed. Speed. The Perforce protocol is very fast, but our perforce operations go very slowly because of a slow net connection to the remote server. Checking out and commiting large files takes up to a minute per file. When checking out a depot for the first time, it can take hours. If the server were local, it would go faster. Long running operations in perforce lock out other users. In our large company, this means that perfoce users must wait around. Obviously, the distributed nature of BitKeeper solves this kind of problem.
    3. p4 sync doesn't show files in your local sandbox that aren't in the repository like cvs update does. This sometimes results in broken builds because people forget to add files using p4 add.
    4. p4 sync doesn't re-get files that are deleted from the local sandbox like cvs update does. And p4 sync -f regets all files, whether you already have them or not.
    5. Minor gripe: Perforce branches are copies, which is a less-effective use of disk space when compared to CVS.
    6. Disconnected operation. CVS is designed to let you work on code, disconnected from the CVS server. When ready, you can commit all changes. With perforce, you are forced to have connectivity to the p4 server to edit and change code. This slows programmers down when the net or the p4 server is slow. It also makes it difficult to work on code on a laptop.
    I expect that BitKeeper and Subversion will solve all of the problems with CVS and Perforce. I expect Subversion to blow perforce out of the water. Unfortunately, my company has invested major time and money into Perforce, and I don't think we will be switching anytime soon.

    http://subversion.tigris.org/
  132. Times Change by K'tohg · · Score: 1

    Your all right. Perhaps I will take my head out of my ass. What good does complaining and bickering do anyway.

    So the real question is how can I help subversion and get it up to CVS expectations politically? Hmmm I think I'll read the TODO list tonight.

    Thanks all.

    --
    > SELECT * FROM brain_cells WHERE synaptic_rate > 0
    0 row returned
  133. Here is a link.. by gregfortune · · Score: 2

    The listed address had an extra space and HTML isn't too tough ;o)

    http://linux.oreillynet.com/pub/a/linux/2002/01/31 /CVS.html

  134. Re: scripting a version control system by Eccles · · Score: 1

    You want scriptability? Hoo. Subversion has it.

    Does that include running a script after a check-in? What about tagging revisions?

    What I'd like in the ultimate VCS is the ability to run a compile on multiple platforms, and tag the revision based on success or failure. Then, if the compile succeeds, I want it to run one or more regression tests. When I synchronize my local copy with the database, I want to be able to sync based on the latest version matching some set of criteria, such as "latest that compiled on my platform", "latest that passed regression level 1 on all platforms", etc. Is Subversion aiming for support for anything like this?

    Perforce, BTW, supports some of this. However, I don't know if it can conveniently support syncing based on some criteria, rather than always getting the latest.

    --
    Ooh, a sarcasm detector. Oh, that's a real useful invention.
  135. Re: scripting a version control system by gstein · · Score: 1
    Does that include running a script after a check-in?
    Absolutely. A hook script runs when a person first begins to do a commit. That is handy for user-level authentication steps (beyond what Apache itself provides). A second script runs after the entire commit has been delivered to the server, but before it is truly committed to the repository. This allows you to analyze what changed and accept/reject the commit, or even to make additional changes. After the commit has been accepted, then a third hook is run which allows you to do whatever you need (emails, replication, analysis, indexing, ...).
    What about tagging revisions?
    Subversion doesn't support tags. Instead, we support cheap copies -- just copy the bits to, say, /tags/release-1.0/. That is effectively an O(1) operation and doesn't consume any real disk space. However, this does imply another commit to create the new tag subdirectory.

    For your scenario, I suspect what you would want to use are "revision properties." Each revision that gets committed can have (arbitrary) properties associated with it (and the properties are not versioned). Thus, your post-commit script could kick off your build farm. As each build completes, you can add a new property to the revision. When all are complete, then you kick off the regression tests. Upon a pass, you add a final property (and possibly remove the build props).

    At this time, however, and it isn't on the plan, is a way to update to a revision that matches a particular query. However, a CGI script could easily be written which would query this on your SVN server and return the specified revision. You could then update your working copy to that revision. Heck, you could write a client-side script that would connect to the server to do the query, then pass the result to your 'svn update' line.

    So I'd say the data model is there, but the wrappers you're looking for are not built in. But due to SVN's great scriptability and library-based design, you can easily grab and/or modify the data you need.
  136. Check out Meta-CVS by Kaz+Kylheku · · Score: 1, Redundant

    http://freshmeat.net/projects/mcvs
    http://users.f ootprints.net/~kaz/mcvs

  137. Not trusting automatic merges. by Kaz+Kylheku · · Score: 2

    That is a psychological problem, not an
    actual tool problem.

    1. Re:Not trusting automatic merges. by kisrael · · Score: 2

      That is a psychological problem, not an actual tool problem.

      Umm, yes and no.

      I've been on teams burned on WinCVS merges that were just bad. I've used a few tools that would do their damndest to merge binary files with bad results. Even when it's not automated, merging is ugly, as my recent wrasslin' with Clearcase's merge tool attests to. (If it was more obvious which version was which, rather than 1 2 3 and an obscure drive name to guide me, it woulda been easier.)

      It's a little bit pshychological as well...but both automated and my hand merges have the chance of error. I prefer locking. Smaller files can help a lot, for readability and avoding huge monolithic objects or subroutines. (see the "magic pushbutton" antipattern...)

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  138. Re:Clearcase...sucks! by ethereal · · Score: 1

    Scrambling right before the build is a process problem, not a ClearCASE problem. Put all your bug fixes on branches, and only allow the CM team to merge in fixes to the project mainline. Developers are responsible for notifying the CM team (through email or some bug tracking tool) that their branch is "ready to go". Official builds are only done in the one official CM view. Really, the view shouldn't be an issue at all; every build view's config spec should just be the previous build's label (you are labeling every build that you release, right?) plus the fixes for this new build. Your total time to do a build is just the time to have a meeting and agree which bug fixes you're picking up, the time to do a (mostly-automated) merge of all the branches to the project mainline, the time to actually run the build, and maybe some verification at the end before you release it. Oh, and writing release notes, which can be pretty much automated as well. ClearCASE is built for scriptability and automation; learn to use it and it will save you so much time and help avoid so many simple errors.

    ClearCASE can be seriously screwed up by bad admins; five admins for 50 coders indicates to me that at least four of your admins didn't know what they were doing :) One admin, part time, should be good for 100-200 developers, unless you're expecting that developer to also be developing extra "gravy" like reports and ClearCASE trigger scripts.

    --

    Your right to not believe: Americans United for Separation of Church and

  139. Try StarTeam by Anonymous Coward · · Score: 0
    This is also available in StarTeam. The Enterprise edition provides the following:
    • File versioning
    • Change requests/bug tracking
    • Task delegation and tracking (for distributed development teams)
    • Topics (kind of like a Usenet newsgroup, complete with threads of discussion
    • The ability to link revisions of files/change requests/tasks/topics to others (we're talking any revision in any category linked to any revision in any category)
    • Labels, for tracking file revisions, etc. in particular builds
    • Floating promotion states (indicating which label is currently the development version, this one is in testing, this one is released, etc.)
    • Views, which can provide subsets of projects (does every developer need to see the ENTIRE source code base?)
    • Sharing between projects (very nice for taking a base project and spawning customized versions)
    The newer versions (5.1+) also provide integration with a Requirements Management tool (kind of like Rational Requisite Pro).

    It isn't cheap, but man, it's ALL there. There are GUI AND command line clients, for Windows and for Java, plus a complete Java API for scripting tasks and reports.
  140. Linux Torvalds? by jxs2151 · · Score: 1

    Seen in the readme.txt for DB2 Personal Edition for Linux:

    Linux is a trademark of Linux Torvalds.

  141. Re: converting CVS repositories by e40 · · Score: 2

    You can bet I'll try cvs2svn when it's ready! I am very much looking forward to subversion. It looks so nice on paper. I really am hoping it succeeds.

  142. Re:Any one used CMVC? by Anonymous Coward · · Score: 0

    Key point being that CMVC has "defects and features". These combine the tracking of a defect tracking system AND change packages. ANd it has a process. For large system development you can't beat that combination. CVS is great for small stuff :-)

  143. Wrong Model - CVS is not Lock Modify Unlock by Anonymous Coward · · Score: 0

    Subtle but important difference - cvs *can* support the "Lock Modify Unlock" model as another poster has noted, however, you are really going against the philosophy of CVS, which is based on the Copy-Modify-Merge model. Take a look at Karl Fogel's excellent book (some chapters available on the web) for more information on this.

    http://cvsbook.red-bean.com/cvsbook.html

  144. Subversion security issues? by dwheeler · · Score: 2, Insightful
    Subversion has some very interesting ideas, e.g., using an ftp server as a central code repository (making it REALLY EASY to set up a code repository), and "worldwide" names.

    However, the last time I looked at subversion, it had some security shortcomings too. One which looked simple to overcome was that, since it used ftp, it sent passwords in the clear over the Internet to change data. This is a crazy thing to do, but is easily fixed (e.g., by using sftp instead of ftp).

    More serious is the notion in subversion that all developers are totally trustworthy. It appears that any developer could modify the files on the code server and make it appear that someone ELSE made a given change. Now clearly developers with passwords have to be trusted to some extent, and certainly SOMEBODY has to be trustworthy (e.g., the server administrator or the person who validates keys), but this kind of total trust of ALL developers isn't warranted in many cases. Even if you expect others to find a security flaw, you'd like some mechanism to backtrack to who made the changes. I didn't do a serious security analysis to see if subdomain countered this, though, and I haven't followed it since. I'd be curious if others have examined the issue more closely.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
    1. Re:Subversion security issues? by gstein · · Score: 2, Informative
      using an ftp server as a central code repository
      Euh... Subversion doesn't use FTP. Icky. You are probably think about Arch. It uses FTP, and yes: that means it will send passwords in the clear. I've got to believe they have fixed that by now, and that you can use scp or somesuch, but it is rather tiresome to see a network app built nowadays that doesn't have security integrated right in, with considerations for it up front.
      It appears that any developer could modify the files on the code server and make it appear that someone ELSE made a given change.
      Well, yes and no. There is no obvious way to alter the author that gets recorded with a revision at commit time. However, if you have local access to the repository, then you can use the libsvn_fs APIs to alter the svn:author property on the revision.

      Personally, I just don't ever plan to give people local access to my servers. One of the huge benefits of being Apache-based is that our authentication occurs through Apache, and that it does not need system accounts (it can integrate with existing auth systems (PAM, LDAP, NTLM, etc) or use text files, databases, etc). Therefore, the only way somebody could alter the author property is if, say, I wrote a CGI script that allowed a person to go and tweak it.

      So the general answer is: no, a developer is not entirely trusted, and they cannot change the recorded author on revisions.

      Are you possibly thinking of Arch again? I'm not sure how it records authors, or whether other developers can tweak that information.
  145. Re:10 problems with CVS - Not CVS, but User Error? by Anonymous Coward · · Score: 0

    I'm sure there are some great improvements to be made to CVS, but you're reasons are mostly user error. I suggest you take a look at the documentation that other posters are suggested

    1. Documentation is piss-poor. There's an easy solution to that one, but nobody likes writing documentation.
    -- see other posts - there is great documentation.

    2. Updates don't always work as expected. They won't grab new directories and a few other quirky things.
    -- I'd call this user error. You need to add new directories, just as if you are adding files. But I agree it's a little awkward.

    3. Empty directories should be pruned by default in a checkout or update.
    -- I use WinCVS, prunes by default, you can change the setting in a dialog box, simple.

    4. I'm tired of seeing a CVS directory everywhere I look. How about .CVS instead?
    -- Maybe. But this is part of the simple power of cvs. I can easily check everything in, delete the whole directory structure, and check the project somewhere else without some registry or other problem (think of what a mess it is to delete programs from Windows).

    5. Access control is poorly handled. It's good that you can map virtual user names, but it would also be useful to control access by groups.
    -- CVS passes off access control to the operating system. Again, CVS has a nice 'Unix' design in which it builds on existing utilities already available in unix (RCS) and the 'everything is a file' idea is similar. Thus, complaints that CVS is hard to use are true, but this is part of the design philosophy. Perhaps we need to wait for an operating system where 'everything is an object' (Yes, I saw Andrew Tanenbaum at a Comp Sci lecture a few years ago..)

    6. Local CVS tree file ownership is by user, not the CVS owner. This opens up all manner of problems for users with a local CVS repository. Repository data should be in a non-user account, checkout should force authentication, and the server should handle who has access to what. This would not be tremendously hard to manage, since in the general case a user has access to a project or not. Fine-grained access control of the repository isn't a common necessity.
    -- User error (if I understand the question) - CVS follows the Copy-Modify-Merge philosophy, not Lock-Modify-Unlock, although you can 'lock' files. See answer to 5 as far as authentication also.

    7. Plays badly with (most) IDEs. When I want to work on a project in an IDE, it floods my checked out directories with all manner of crap I don't want in the repository. You can set up refuse files to clean these out, but it might break your IDE project. This is more a fault of IDEs than CVS, really.
    -- totally incorrect. One of the reasons why cvs is the 'defacto' standard is it's incredible support - JBuilder, Eclipse, to name a few, have built in support, otherwise there are tools to support this such as Igloo. Note that IDE integration with any version control system is always an issue (at least the products I've used..)

    Developer
    8. Needs smarter add functionality. I don't like writing stuff like 'find ./src/ -name "*.java" | xargs -n 100 | cvs add' just to hunt bring in my new source code.
    -- there are some *great* gui's available, for example WinCVS.

    9. CVS is a boring acronym.
    -- so what, we should get the Microsoft marketing team to dream up a catchy name? Do you want a neat icon too?

    10. I can't think of a tenth thing.
    -- given that list, then I'd say CVS is awesome, huh?

  146. from the ground up redesign? by Anonymous Coward · · Score: 0
    what I want from any system (non software portion) is the ability to integrate seemlessly with various modules that don't just add, but can replace certain methods of operations/functions (interface, access methods, log storage, log storage format, etc) along with completely new stuff like calandaring, collaboration tools, chats, chat logs... you name it. Instead of then having to say, "Well I really like certain aspects of this app, but I want features that this just does not allow me to modify without recoding it" which brings the other desire up:

    API, API, API. And I don't just mean some pathetic wrapper function or two that only allows you to make a module that says 'hello world!' without having to get in there and custom design the whole damn thing yourself (thus making you ask... "why the hell didn't you just tell me the architecture and let me design my module from scratch in the first place?") I appreciate choice in apps.... but what I don't need is a slew of apps that each are different but are incompatable (or would require a crap load of redundancy once integrated) Hmmm, ok this sounds bitchy I guess. Just tired of hard coded apps that you can't plug together in a usefull fashion.

    1. Re:from the ground up redesign? by ironfroggy · · Score: 1
      If the AC who posted this is reading, contact me.

      I've been pondering the same thing for a while. I propose something is done. I want to start something called "The M Initiative" to move for standard APIs for modularity and app convergence, eventually creating a whole new kind of system.

      Anyone interested, please contact me and lets get this off the ground. I've already got most of a very nice modular framework designed, called Mafia. Completely P2P from the ground up, anonomous and also with security and authentication protocols.

      I just think this whole idea is great and I would love to get some people in on it. I don't even care if you have no skill, we need people who want this to get together. So, lets get together and collaborate.

      Contact me.

  147. Re:Get rid of the file system completely - simplif by ndecker · · Score: 1


    No database please. The main thing i love about *n[iu]x is *everything* is in a file and there are thousands of nice tools to do everything you can imagine to files.

    I know, a database sounds nice, but i have worked with a database based CASE tool at work. While the tools is ok, it is a real pain to do omething
    that is not supported within the tool.
    ( We are talking about a few thousand pages
    of documentation for QMF ( Query Management Facility ) Queries! )

  148. Katie by truth_revealed · · Score: 1

    A ClearCase-like system for Linux: Katie

  149. Meta-CVS has renames too. by Kaz+Kylheku · · Score: 2

    mcvs mv foo.c bar.c

    As for migration, Meta-CVS can import snapshots and figure out file moves. So it can ``reverse engineer'' those simulated renames you did in your CVS project by removing and adding. You just need to feed it a sequence of snapshots.

    Unfortunately, Meta-CVS runs only under Linux; but that will change with increasing popularity.

  150. svn blame to show all of the relevant people by Anonymous Coward · · Score: 0

    CVS annotate shows you who merged a change from one branch to another. There's no support to tell you automatically who made the original change.

    If svn does right all the things CVS does right, and svn annotate gives you a choice of looking back past the merge, into the source of the original change (which should be possible because it has meta-data to enable repeated merges) then I would like that feature.

  151. Generic Version Control Interface by Dresdin1 · · Score: 1

    I thought this might be a good time to get a feel of what's out there. Some classmates and I have created a generic interface to multiple version control systems. (Perforce, CVS so far...) We haven't really looked into how useful this might be. The software has been designed to let people write their own plug-ins for different systems. Whatcha think? b.

    1. Re:Generic Version Control Interface by RollbackRelease · · Score: 1

      check out the MS SCC interface standard

    2. Re:Generic Version Control Interface by Dresdin1 · · Score: 1

      I suppose MS SCC wouldn't happen to be written in Java right? (heh) This generic interface is multiplatform. :) b.

    3. Re:Generic Version Control Interface by RollbackRelease · · Score: 1

      Noop , I don't think its java It defines a method of discovering an CM system and allowing the IDE to call generic version control actions such as check in , add, remove ver etc , Most of the enterprise version control tool are scc complient and thus can bind to any IDE whish also supports it .. Probably com based, C++ I am sure you can do better .

  152. Its Called Ada by Anonymous Coward · · Score: 0

    The natural architecture for a system writen in Ada93 lends itself very well to version control. In addition it is far superior to many other languages for large projects with distributed developers. The only other language that comes close ( very close in some characteristics) is Java.

  153. I meant arch, not subversion. by dwheeler · · Score: 2
    I'm sorry, you're right. I meant arch, not subversion in my previous post.

    I took a short look at the arch home page. Support for sftp still isn't built-in (so it's still dreadfully insecure), but there is a separate patch available to support sftp. I suspect that eventually arch will support sftp and/or other things to replace the absurd "password in the clear" approach it's currently using.

    However, it still isn't clear to me that a developer can't modify other files in supposedly "frozen" copies in arch. arch takes a very unusual approach to repositories - which is interesting! - but it appears that Joe Programmer might be able to modify other files than the one Joe is supposed to be modifying. Or perhaps Joe changes "older" versions that he's submitted, screwing up configuration management. Perhaps arch counters this, but I haven't seen any analysis of it that way (please let me know if there are any!!). The fact that arch still requires passwords in the clear doesn't exactly give me warm fuzzies about its security; writing secure programs isn't trivial and requires a commitment to do so.

    Arch is actually quite interesting in many ways... but the security issues do concern me.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  154. Flame by Twylite · · Score: 1

    Okay, this is to all those self righteous arrogant sons of karma whores who mod downs posts because they make any sort of positive reference to the Evil Empire (for all values of Evil Empire).

    The post to which I replied attempts to defend CVS almost exclusively from a social viewpoint (uptake and support), while ignoring the technical shortcomings in the product. This is exactly the argument that the Open Source movement as a whole makes against Microsoft, a point which I illustrated through parody.

    The argument that something is good or good enough simply because of widespread acceptance doesn't hold water. At best, CVS can be said to have been the best system available at the time. That in no way makes it a superior solution to full-blown configuration management systems.

    So next time, think before you press your Troll hot-key, because just maybe the author isn't some 2 bit skript kiddie try to elicit a response from your sorry little back-room unix wannabe guru who has never worked on a Microsoft system but will claim it is shit anyway mind.

    --
    i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  155. Do people use PCVS / VC? by Piquan · · Score: 1

    In the past, I used Emacs's VC features extensively. (This is the front-end over version control systems.) Now, I use both PCVS (added in Emacs 21, takes advantage of CVS's features) and VC extensively.

    It's great. I wanna work on a file? I open it, press C-x C-q to get the latest version. I edit it, then press C-x C-q again to check it in. If there was a conflict, I get an easy to use conflict resolution browser. I fix it, and commit again. I type in a log message (viewing the diffs to help me by pressing C-x v =), press C-c C-c, and I'm done. All that is under VC. It's easy as falling off a log.

    PCVS adds the ability for me to quickly look over directories to see what the status of different files is. From there, I can mark files and perform batch updates.

    Post-failure analysis is easy too. Annotate, diff, log, etc. are all available at the touch of a button while I'm editing the file in question. Nothing to it.

    I see a lot of people who don't realize how easy these can make CVS to use. I use CVS all the time, and have no complaints.

  156. Yet another reason a graphical programming lang by Anonymous Coward · · Score: 0

    Take this example:
    In order to streamline your code, you want to put a function in one of your sources more to the top. If you checking this in with a textbased RCS, you will get two changes:
    - newly written code on the top
    - deleted code on the bottom

    , which is hardly what you actually did to the source (Not sure if every RCS is so dumb :-)

    Compare this with a graphical programming language, where your code is inside graphical blocks: when you move your code around, the blocks gets a new position, but its content is left unchanged. A RCS for such a language would only need to update the "position", making the checkin not only smaller, but a graphical tool could display the changes made in a much more relevant way.

    Hmmm, looks like a cool business idea...

  157. Re:We use Perforce at work... it is NOT scalable by Anonymous Coward · · Score: 0

    Just a couple of responses to the above:
    2. There are some ways to alleviate this problem, but bitkeeper addresses it directly as you say
    4. You can do this with "p4 diff -sd | p4 -x - sync -f" or in a few other ways
    5. Branches are copy on write which is pretty efficient.
    6. There is a Tech Note showing how to do this.

    Subversion seems to be reinventing various Perforce features (which is the right thing to do). It has a long way to go and isn't advancing that fast. I don't expect it to blow Perforce out the water any time soon.

  158. What CVS lacks... by Miqlo · · Score: 1

    Is deletion of directories from the repository and it really ticks me off to no end. We have the same cvs repository for all of our companies documents and projects sources, so you can imagine how over the years it bloats and bloats and not being able to clean it out properly really sucks. For that matter a recursive removal of directories and contained files would pwn too... Oh and by the way, for you wind0ze users, install TortoiseCVS, it simply owns. //Miqlo

    1. Re:What CVS lacks... by hyperstation · · Score: 1

      ugh...no doubt. you think someone would have released a patch to fix that bs by now

  159. Re:Clearcase...sucks! by RollbackRelease · · Score: 1

    David , it sounds like you were working in a team full of pretend CCadmins and engineers. Obviously nobody had even read the manual !! I blame teh management for allowing this to happen . You sem to blame the tool ...

  160. Various (BitKeeper, SCCS, CVS) by James+Youngman · · Score: 2
    I maintain the GNU SCCS clone, CSSC. I therefore have several comments to make:-
    1. Nobody should ever be using SCCS these days
    2. I wouldn't join in with an attempt to clone BitKeeper because
      • Larry is very good - I wouldn't bet that it can be done better
      • I wouldn't want to take away Larry's revenue stream
    3. Something that's been on my TODO list for a long time now is to take a serious look at Arch by Tom Lord.
    4. If you do go and invent a new version control system, please don't forget to create a VCS module for it (there are already modules for CVS, RevXML, RCS and Perforce).
    5. I use CVS to manage the source repository for CSSC, but I have my eye on Subversion.

    ObCVSWhinges:
    On the whole CVS is good - in fact, in the most part it's good enough (ever heard the expression "The best is the enemy of the good"? Well, the good is the enemy of the best, too!).

    My pains with it are

    • It gradually gets slower as you add more files and revisions
    • Inadequate hooks for plugging it into your bug tracker, work management system, database, toaster etc. The *info scripts exist but aren't really enough.
    • There are obscure gotchas that mean I can't unreservedly reccomend it for use by just anybody (i.e. people without training/skills). These issues include problems with binary files being edited on several branches at once.
    Oh yes, one last thing - use CSSC if you have to but don't use SCCS/CSSC if you can get yourself into a position where you don't have to. There are good reasons why the acronym "CSSC" expands to "Compatibly Stupid Source Control"!
  161. Re: scripting a version control system by Eccles · · Score: 1

    Thus, your post-commit script could kick off your build farm.

    I'd probably have my build farm machines each running a script, checking for new commits periodically, instead. That way I can just add or remove machines as needed, with different hardware/OS/language combinations, and not have to bother the server. But in general using the revision properties sounds like just the ticket.

    --
    Ooh, a sarcasm detector. Oh, that's a real useful invention.
  162. How about ChangeMan, Dimensions, and TRUEChange? by funkycoles · · Score: 1

    There are lots of posts on Clearcase, Aegis, Perforce, etc. Anyone have any opinions on ChangeMan, Dimensions, and TRUEChange for the following:

    -- Enterprise level - 1500 developers, hundreds of projects
    -- Distributed development
    -- Process driven
    -- ability to tailor process levels for various groups
    -- ability to script against and integrate with other tools

    Thanks!!

  163. Re:We use Perforce at work... it is NOT scalable by gstein · · Score: 1
    Subversion seems to be reinventing various Perforce features (which is the right thing to do). It has a long way to go and isn't advancing that fast. I don't expect it to blow Perforce out the water any time soon.
    Our intent is to displace CVS. That's it. If we happen to displace Perforce a bit... oh well. In the long run, we will impact most SCM vendors. The Perforce guys, though, seem to have a pretty good business sense: easy to use, high volume, good value-add, and bang-for-buck. I suspect they'll deal fine with SVN encroaching. It is the bigs guys like Rational that are going to have problems justifying their price and complexity.

    As far as "advancing"... well, to be honest, we pretty much finished the core of day-to-day usage last fall. Since then, we've been rounding out the feature set and stabilizing the code. People need to trust Subversion to hold their source code safe. We don't want to give them cause to question SVN, so we are giving ourselves plenty of time to get it right.

    Our Alpha release is next week. Most people would call it a Beta release, but it goes back to the stability thing. For our purposes, it is alpha. Trust is hugely important.
  164. Re: scripting a version control system by gstein · · Score: 1

    Fair enough. Note that it will be much easier to do this because of the global revision number. You can fetch the head rev num (simple and fast) and compare it against what you last built. With CVS, you'd have to crawl the entire repository looking for changes to rebuild.

    To print the head rev:

    $ svn stat -un . | sed -n '/^Head/s/.*: *//p'

    There might be some other nifty ways. Especially if you write a script that binds to libsvn_ra. There is an RA function to query the head rev.

    fun fun :-)

  165. Re:Clearcase Multisite... by kippy · · Score: 1

    User ClearCase Multisite. You can distrubute the load over several servers whether they're in the same room of across an ocean. I currently admin servers in Chicago, Detroit and Munich.

    Not only that, but you get awesome redundancy. we have some projects that we multisite to different sits just as a hot-backup measure.

  166. The Human Side of SCM by PatrickEgan · · Score: 1

    Crossroads NEWS - July 2002 A Monthly Publication for SCM Professionals Register and win a Handspring Visor - http://www.cmcrossroads.com * * In this Edition - Salary Survey: Java Still Hot - Key Keppler - JAVA Pro - Behaviorally Speaking: Defining the Software Development Life Cycle - Bob Aiello - The Carrot Works Better than the Stick - Matthew K. Johnson - Make your own best practice: The ACME Process - Bridget Pilloud - Avoid Role Name Confusion - Charles Edwards - News and Events - Tool Spotlight - Book of the Month Read this edition online - http://cmcrosroads.com/newsletter/julnews.shtml * * * Editor's Note Over and over again you hear all the ways to improve the reliability of software applications and the development process. Every one has THE product, solution or process that will do it all. And if you install it or use it, all your problems will go away. I've tried many, used a few, thrown some away and marveled at the complexity of yet more. When asked by an organization about the best way to go about implementing a new tool or process, I sometimes just have to ask a question in return. How do the people that are doing the work feel about your new tools and process? Do you know how your developers use the tools they have today? Are they trained to use them? Are they all happy in their current work environment? In many organizations, it is as simple as the tail wagging the dog and there are other questions to ask. Does the management in your company set the business goals or is this the responsibility of development? Are all the people in your development teams aware of the business objectives behind the software requirements? Like it or not, it is the role of management set the course, and the role of development to pull on the oars. It is also however the role of management to listen to their technical experts and to make sure that the development teams have the right tools to get the job done. Are those things in the water oars or garden rakes? Too often we forget that there are many things to consider besides the cost of the software, product features and the process you are trying to implement. We have all heard countless company CEOs state that their number one assets go home every day, but I wonder today how many organizations really recognize this fact or even believe it. This month we take a look at the human component of application development and focus on some of the factors that we should all consider in addition to the features of each vendors product. As always we would like your input on the human factors of Application Development. Cast your vote on the subject in our current Crossroads Poll at http://www.cmcrossroads.com or participate in a discussion on the topic in the Community Forums. Patrick Egan - Editor - patrick@catsyscorp.com * * Salary Survey: Java Still Hot Kay Keppler - Editor of JAVA Pro Magazine Go figure--in a year when the economy dragged, unemployment boomed, cutbacks reigned, and profits soured, Java programmers made more money than ever and worked less to earn it. No wonder they're a happy lot. The Java programming landscape is quite diverse, but some skill sets pay better than others. Are your skills putting as much money in your pocket as they could be? Read on. In our 2002 career survey sampled Java programmers' work and compensation and compared it against geography and gender, education and training. The results--starting with total remuneration--were perhaps surprising, given what we've come to expect from a squeezed economy and lowered expectations. Last year, the programmers we surveyed in the United States earned on average $83,000, but this year the average total compensation--salary and benefits--of our sample was $93,500--11% more than last year. Read the full article online - http://www.fawcette.com/javapro/2002_06/magazine/f eatures/salarysurvey/default.asp * * Behaviorally Speaking Defining the Software Development Life Cycle Bob Aiello - Contributing Editor Defining a Software Development LifeCycle (SDLC) can raise many behavioral or "people" related challenges. Any effort to specify how people should work is bound to meet with extensive resistance and even hostility on the part of the developers who must adhere to the development process. Yet it is essential that the successful CM Practitioner create a release process that is repeatable and predictable. Tremendous losses can occur if a major company has production applications that cannot be quickly fixed because they do not have the exact sources and build dependencies safeguarded and available. In this article we would like to look at how to create a useful SDLC that specifies the workflow necessary to support the Software Development Process, especially Release Management. Read the full story - http://cmcrossroads.com/newsletter/articles/bajul0 2.shtml * * The Carrot Works Better than the Stick Matthew K. Johnson - Contributing Editor Can I please see a show of hands on how many configuration managers out there want to yank their hair out by the roots trying to get people to follow your configuration policies and procedures? OK, I see just about everyone has their hand up, all except for the guy in the back row who is probably playing Mine Field on his PDA. You spend a lot of time and putting together Software Configuration Management (SCM) policies and procedures to improve the overall efficiency of your development team just to find your efforts are de-railed when it comes time to get people to follow them. Are your policies really that bad? Possibly, but most often the real problem is good old human nature. People don't like change and don't like to be told what to do. Read the full story - http://cmcrossroads.com/newsletter/articles/mjjul0 2.shtml * * News and Events Borland Enterprise Studio 4 for JavaT forms a Complete Java Development Solution in Single Package http://borland.com/news/index.html MERANT Collage now available. A powerful and easy-to-use enterprise content management solution for application-driven Web sites. http://www.merant.com/PVCS/press/index.html AccuRev 3.1 includes a new integrated graphical diff and 3-way merge tool, patch-tracking, side-by-side visual image diff, promotion by transaction, new triggers, Forte for Java IDE integration. http://www.accurev.com Code Co-op 3.3 - A version control solution for individuals and teams that joins developers residing in different locations using only email. http://www.relisoft.com/co_op/index.htm August 12-15 - Linux World Conference - San Francisco, CA - Moscone Convention Center - http://www.linuxworld.com August 18-22 - Rational 2002 User Conference - Orlando, Florida - http://www.rational.com/events/ruc/ September 3-6 - Quality Week - San Francisco, CA - http://www.soft.com/QualWeek/QW2002/ October 1-2 - Web Services Development Conference - New York City - Jacob Javits convention Center - http://www.wsdevcon.com October 13-18 - Starbase annual global user conference. San Diego, CA http://www.starbase.com/events/symposium/ October 20-23 - Telelogic Americas 2002 User Conference -Las Vegas, Nevada - http://www.telelogic.com/news/usergroup/conference s.cfm * * Make your own best practice: The ACME Process Bridget Pilloud - Contributing Editor Albert Einstein's housekeeper would hang an umbrella on the front door knob, because otherwise he'd walk out in a downpour and not realize it was raining until he was halfway to his office and soaking wet. One of the greatest minds in history, and he didn't have the sense to come in out of the rain. Working in development is like that. Brilliant, creative people focused on a specific task, oblivious to everything else going on around them. As a configuration manager, your job is to support them, to keep the bigger picture in mind, and often to find better ways for them to work. For whatever reason, if you find yourself tasked with making your development world a better place, there are things you can do to ensure the processes you develop are relevant, timely, and even appreciated. Read the full story - http://cmcrossroads.com/newsletter/articles/bpjul0 2.shtml * * Avoid Role Name Confusion Charles Edwards - Contributing Editor Don't you find it confusing when you go from one company to another and find all sorts of different names for similar roles people play in the IT software development process? I've had heated debates with people only to find we were in violent agreement and it was the use of different terminology that was causing the incorrect interpretation, because we were ultimately both trying to say the same thing. This doesn't only happen with Roles and Activities on projects but with many different terminologies meaning the same thing! Read the full story - http://cmcrossroads.com/newsletter/articles/cejul0 2.shtml * * Book of the Month Software Release Methodology by Michael E. Bays Shows you best practices for every stage of a successful product release. Includes carefully designed, practical solutions that enhance quality, reduce costs, and get you to market faster. Software release methodology is a field that unifies a number of previously abstract endeavors that occur during software product development. By unifying these abstract endeavors, we provide a more efficient, well-understood path from development to product release. The field focuses on the release activity as the driving force behind all development endeavors. Purchase or review this book at http://cmcrossroads.com/cgi-bin/links/jump.cgi?ID= 65 * * CM Tool Spotlight Each month there are 4 development or SCM products reviewed in the Tool Spotlight. This month we feature: Openmake from Catalyst Systems, Telelogic CM Synergy, MERANT PVCS Content Manager and MKS Source Integrity Enterprise Edition. Visit the Tool Spotlight at http://www.cmcrossroads.com/toolspot/ * * Crossroads News is a monthly newsletter published by CM Crossroads an online community for Software and Configuration Management Professionals. If you would like to sponsor this newsletter or any other CM Crossroads Event, please contact us at sponsor@cmcrossroads.com. If you would like us to include your press release or upcoming event in the News and Events section send an email with the details to cmevents@cmcrossroads.com

    1. Re:The Human Side of SCM by PatrickEgan · · Score: 1

      Crossroads NEWS - July 2002
      The Human Side of Application Development and SCM

      Register at CM Crossroads and win a Handspring Visor
      http://www.cmcrossroads.com

      * * In this Edition

      - Salary Survey: Java Still Hot - Key Keppler - JAVA Pro
      - Behaviorally Speaking: Defining the Software Development
      Life Cycle - Bob Aiello
      - The Carrot Works Better than the Stick - Matthew K. Johnson
      - Make your own best practice: The ACME Process - Bridget Pilloud
      - Avoid Role Name Confusion - Charles Edwards
      - News and Events
      - Book of the Month

      Read this edition online
      http://cmcrosroads.com/newsletter/julnews. shtml

      * * Editor's Note

      Over and over again you hear all the ways to improve the reliability of software applications and the development process. Every one has THE product, solution or process that will do it all. And if you install it or use it, all your problems will go away. I've tried many, used a few, thrown some away and marveled at the complexity of yet more. When asked by an organization about the best way to go about implementing a new tool or process, I sometimes just have to ask a question in return. How do the people that are doing the work feel about your new tools and process? Do you know how your developers use the tools they have today? Are they trained to use them? Are they all happy in their current work environment?

      In many organizations, it is as simple as the tail wagging the dog and there are other questions to ask. Does the management in your company set the business goals or is this the responsibility of development? Are all the people in your development teams aware of the business objectives behind the software requirements? Like it or not, it is the role of management set the course, and the role of development to pull on the oars. It is also however the role of management to listen to their technical experts and to make sure that the development teams have the right tools to get the job done. Are those things in the water oars or garden rakes?

      Too often we forget that there are many things to consider besides the cost of the software, product features and the process you are trying to implement. We have all heard countless company CEOs state that their number one assets go home every day, but I wonder today how many organizations really recognize this fact or even believe it.

      This month we take a look at the human component of application development and focus on some of the factors that we should all consider in addition to the features of each vendors product.

      As always we would like your input on the human factors of Application Development. Cast your vote on the subject in our current Crossroads Poll at http://www.cmcrossroads.com or participate in a discussion on the topic in the Community Forums.

      Patrick Egan Editor - patrick@catsyscorp.com

      * *
      Salary Survey: Java Still Hot
      Kay Keppler - Editor of JAVA Pro Magazine

      Go figure--in a year when the economy dragged, unemployment boomed, cutbacks reigned, and profits soured, Java programmers made more money than ever and worked less to earn it. No wonder they're a happy lot.

      The Java programming landscape is quite diverse, but some skill sets pay better than others. Are your skills putting as much money in your pocket as they could be? Read on.

      In our 2002 career survey sampled Java programmers' work and compensation and compared it against geography and gender, education and training. The results--starting with total remuneration--were perhaps surprising, given what we've come to expect from a squeezed economy and lowered expectations. Last year, the programmers we surveyed in the United States earned on average $83,000, but this year the average total compensation--salary and benefits--of our sample was $93,500--11% more than last year.

      Read the full article online at -
      http://www.fawcette.com/javapro/2002_06/magazine /f eatures/salarysurvey/

      * *
      Behaviorally Speaking
      Defining the Software Development Life Cycle
      Bob Aiello - Contributing Editor

      Defining a Software Development LifeCycle (SDLC) can raise many behavioral or "people" related challenges. Any effort to specify how people should work is bound to meet with extensive resistance and even hostility on the part of the developers who must adhere to the development process. Yet it is essential that the successful CM Practitioner create a release process that is repeatable and predictable. Tremendous losses can occur if a major company has production applications that cannot be quickly fixed because they do not have the exact sources and build dependencies safeguarded and available. In this article we would like to look at how to create a useful SDLC that specifies the workflow necessary to support the Software Development Process, especially Release Management.

      Read the full story - http://cmcrossroads.com/newsletter/articles/bajul0 2.shtml

      * *
      The Carrot Works Better than the Stick
      Matthew K. Johnson - Contributing Editor

      Can I please see a show of hands on how many configuration managers out there want to yank their hair out by the roots trying to get people to follow your configuration policies and procedures? OK, I see just about everyone has their hand up, all except for the guy in the back row who is probably playing Mine Field on his PDA. You spend a lot of time and putting together Software Configuration Management (SCM) policies and procedures to improve the overall efficiency of your development team just to find your efforts are de-railed when it comes time to get people to follow them. Are your policies really that bad? Possibly, but most often the real problem is good old human nature. People don't like change and don't like to be told what to do.

      Read the full story - http://cmcrossroads.com/newsletter/articles/mjjul0 2.shtml

      * * News and Events

      Borland Enterprise Studio 4 for JavaT forms a Complete Java Development Solution in Single Package http://borland.com/news/index.html

      MERANT Collage now available. A powerful and easy-to-use enterprise content management solution for application-driven Web sites. http://www.merant.com/PVCS/press/index.html

      AccuRev 3.1 includes a new integrated graphical diff and 3-way merge tool, patch-tracking, side-by-side visual image diff, promotion by transaction, new triggers, Forte for Java IDE integration. http://www.accurev.com

      Code Co-op 3.3 - A version control solution for individuals and teams that joins developers residing in different locations using only email. http://www.relisoft.com/co_op/index.htm

      August 12-15 - Linux World Conference - San Francisco, CA - Moscone Convention Center - http://www.linuxworld.com

      August 18-22 - Rational 2002 User Conference - Orlando, Florida - http://www.rational.com/events/ruc/

      September 3-6 - Quality Week - San Francisco, CA -
      http://www.soft.com/QualWeek/QW2002/

      October 1-2 - Web Services Development Conference - New York City - Jacob Javits convention Center - http://www.wsdevcon.com

      October 13-18 - Starbase annual global user conference. San Diego, CA http://www.starbase.com/events/symposium/

      October 20-23 - Telelogic Americas 2002 User Conference -Las Vegas, Nevada - http://www.telelogic.com/news/usergroup/conference s.cfm

      * *
      Make your own best practice: The ACME Process
      Bridget Pilloud - Contributing Editor

      Albert Einstein's housekeeper would hang an umbrella on the front door knob, because otherwise he'd walk out in a downpour and not realize it was raining until he was halfway to his office and soaking wet. One of the greatest minds in history, and he didn't have the sense to come in out of the rain.

      Working in development is like that. Brilliant, creative people focused on a specific task, oblivious to everything else going on around them. As a configuration manager, your job is to support them, to keep the bigger picture in mind, and often to find better ways for them to work. For whatever reason, if you find yourself tasked with making your development world a better place, there are things you can do to ensure the processes you develop are relevant, timely, and even appreciated.

      Read the full story - http://cmcrossroads.com/newsletter/articles/bpjul0 2.shtml

      * *
      Avoid Role Name Confusion
      Charles Edwards - Contributing Editor

      Don't you find it confusing when you go from one company to another and find all sorts of different names for similar roles people play in the IT software development process? I've had heated debates with people only to find we were in violent agreement and it was the use of different terminology that was causing the incorrect interpretation, because we were ultimately both trying to say the same thing. This doesn't only happen with Roles and Activities on projects but with many different terminologies meaning the same thing!

      Read the full story - http://cmcrossroads.com/newsletter/articles/cejul0 2.shtml

      * *
      Book of the Month
      Software Release Methodology
      by Michael E. Bays

      Shows you best practices for every stage of a successful product release. Includes carefully designed, practical solutions that enhance quality, reduce costs, and get you to market faster.

      Software release methodology is a field that unifies a number of previously abstract endeavors that occur during software product development. By unifying these abstract endeavors, we provide a more efficient, well-understood path from development to product release. The field focuses on the release activity as the driving force behind all development endeavors.

      Purchase or review this book at http://cmcrossroads.com/cgi-bin/links/jump.cgi?ID= 65

      * * CM Tool Spotlight

      Each month there are 4 development or SCM products reviewed in the Tool Spotlight.

      This month we feature: Openmake from Catalyst Systems, Telelogic CM Synergy, MERANT PVCS Content Manager and MKS Source Integrity Enterprise Edition.

      Visit the Tool Spotlight at http://www.cmcrossroads.com/toolspot/

      * * *

      Crossroads News is a monthly newsletter published by CM Crossroads an online community for Software and Configuration Management Professionals. If you would like to sponsor this newsletter or any other CM Crossroads Event, please contact us at sponsor@cmcrossroads.com. If you would like us to include your press release or upcoming event in the News and Events section send an email with the details to cmevents@cmcrossroads.com