CVS Pocket Reference 112
CVS Pocket Reference | |
author | Gregor N. Purdy |
pages | 75 |
publisher | O'Reilly & Associates |
rating | 8 |
reviewer | Craig Pfeifer |
ISBN | 0596000030 |
summary | Indispensable handbook for administrators of all but small CVS installations, and probably for the small ones as well. |
The Scenario
As a former CVS repository administrator, I wish I had this book when I started, it's much easier than pawing through the canonical documentation for quick answers. CVS is the #1 choice for open source projects. If you plan on organizing or working on an Open Source project, this is reference might be for you.
What's Good?
This pocket reference is a guide to basic CVS functions (branch, merge, update) but the real strength is in the description of server and client side control files and environment variables. Gregor describes how to setup email notification when someone commits a change to the repository, how to customize the repository to treat certain files as binary (versus text), and other useful things. He even goes as far as to describe how to hack the repository to change it's structure while the project is in motion, and how to hack the sandbox (the name for a developer's work space) to change any property such as which branch or repository the files will be committed to. Of course you don't really need this because developers never make mistakes, it's always CVS' fault <wink wink>. All in all, it's a great reference for all the bits and pieces of CVS that you're supposed to mess with (and a few your aren't) and anyone who is expected to administer a moderately complex installation should own it.
Gregor also gives pointers to some great add-on modules for CVS: CVSWeb for making your source tree web-browsable, and WinCVS to make CVS look SourceSafe-esque.
What's Bad?
The organization of this pocket reference could use a little help. I've seen reviews for other O'Reilly pocket references ask for an index, but that wouldn't be helpful here. It would be helpful if they added section tabs in the outside margins of the pages (a la their java nutshell series), so that you could quickly thumb to the section you're looking for. Also, organizing the content by server side and client side instead of simply adminstrator and user would help folks to find the specific information they are looking for.
My last gripe is a small, petty one. The books binding doesn't allow it lay flat when you set it down. Yes it's petty, but I hate losing my page when working. You need to keep a medium sized object with a decent bit of heft (e.g. a stapler) within arms' reach to hold it open.
So What's In It For Me?
This reference will not make you a CVS guru, but it will help you remember the command line options (if I had a nickel for every time I typed 'cvs --help tag' I would be frequently mistaken for a Kennedy), figure out what all those little files are without breaking your CVS installation, and most importantly keep you from having to consult the the cannonical documentation for simple things.
If you have inheirited a CVS installation or plan to set one up for the first time, spend the US$9.95/CN$14.95, do it right the first time and save yourself some time and reap all the bennies that CVS offers.
Table of Contents
- Introduction
- Installing CVS
- Administrator Reference
- User Reference
- Relata
You can purchase this book at ThinkGeek.
Re:cvs for backup (Score:4)
>~~~~~~~~~~~~~~~~
CVS and SVN (Score:1)
Perforce (Score:1)
I like it better than CVS. OTOH, Perforce is not free (~$600/seat).
PVCS is terrible. Really, absolutely awful.
Re:Use Visual SourceSafe (Score:1)
I jumped ship from delphi after version 3 so was not aware that you could now save dfm's as text by default.
How well does cvs merging actually work on form files like this. I can imagine it could get confusing.
Anyway if anything this just increases the advantages of cvs or bitkeeper over source control software that requires locking.
Dave
Re:Use Visual SourceSafe (Score:3)
I have used PCVS, Source Integrity and CVS. My feeling is
1. Forget PVCS depending on your need both CVS and Source Integrity are better.
2. If you use a language like Delphi where you need to lock files when you edit them (because they are binary and simultaneous changes cannot be merged) then Source Integrity is excellent.
3. For distributed development of systems where all the code is in text files (java, C, C++, python, perl, php etc etc etc) then cvs is excellent due to the way it can merge changes to the same file by different people.
If you want to look at an outsider that could be the very best look at bitkeeper.
Dave
Locking is pure evil (Score:2)
It is like B&D languages or flowcharts, if your development procedures really are so poor that you need them, they will be insufficient to compensate. On the other hand, if your development procedures are any good, they will only get in the way of doing actual work.
However, these ideas appeal to narrow minded project managers with no clue of how efficient teamwork works, so they nonetheless get used in a lot of projects, most of which fails.
Re:Something better that CVS ? (Score:2)
Re:SCM software (Score:2)
Do you mean lack of atomic checkins? That would make more sense. It isn't hard to tell what files came from what checkin. The checkin message will match (as long as you make a real one, not "changed some stuff"). You can also use the checkin date, but that can get false hits if another checkin went on at (almost) the same time.
This would be a pretty big pain to fix since the CVS runs on top of a plain filesystem, so it gets no transactions. If it ran on top of some DB it would be easy, but that would make other problems. I had thought about trying to integrate it into the sleepycat DB code, but never got very far (the sleepycat license isn't great for open source code, even if you can grab their source, so...)
Yeah, that sucks. You can log into the server and mv the file so the comments remain, but then old checkouts get the new name. You can cp the old file, and then it works a bit better, old checkouts get both files. I'm kind of surprised nobody fixed this, but I guess I can't complain much since I haven't gone and done it :-)
Hmmm, I never really had a complaint about that. I guess I just bought into the CVS kool-aid on that one. Other then bitmover, what revision systems let you do this? How much extra space do they demand (not much of an issue on modern laptops, but still...)
I haven't found it so. How do other systems make it simpler/cleaner/better?
Again, I never felt so. How is it better on other systems?
Not all of those are available on more fringe platforms (the BSDs, Linux seems to have made it big time). I agree Bitkeeper looks really really nice. A shame Linus didn't decide to use it.
I did an 15 day eval of Perforce, I didn't see any clear advantages over CVS.
ClearCase ended up getting bought by another group, and they had lots of problems with the setup and other admin issues. CVS of corse can get admin issues, by being so open by default people can screw things up if they don't pay attention. It is a better default if you have good people though.
Never tried SourceSafe. I gave PCVS a shot, but it munched my source tree in the first few days, and I discarded it.
Re:SCM software (Score:2)
It isn't atomic. If there is a network or other issue 5 files into the checkin those files stay committed, they don't get rolled back.
It is pretty damn rare that it happens on LANs, but you can force it to check if you want. Reboot your machine part way in. Or just kill off your CVS client. It might be a bigger deal over a WAN, but with my modestly sized project on sourceforge, I haven't had trouble.
It would be nice if it really was atomic, but it isn't a huge deal to me (mostly because it almost almost almost never causes trouble for me).
Re:SCM software (Score:2)
That isn't because of a lack of atomic commits, that is a lack of a single global change number. Adding atomic commits to CVS wouldn't automatically buy you a global change number, nor would adding global change numbers need atomic updates.
You can also fake global change numbers. Make a small script that looks at the CVS tags for GCN_N, tag the current version as GCN_N+1. Run that after every commit (or make cvs commit do it for you, I think you can add a hook). As long as there isn't a network issue, or a crash or something that'l work for you.
Personally I just go with the commit message, but whatever works for you...
Yeah, 'cvs anno' works great for anything you can grep for. It works OK while looking for additions, but it won't help you find when you removed code. Good commit messages are a must :-)
Re:Ah... (Score:2)
RCS, which CVS uses internally still (the ,v files are RCS files).
Re:I love CVS (Score:1)
Why is that? At my full-time job, we use CVS. For my side consulting gigs, I use CVS. For me 'free' development, I use CVS. IMHO, the best features of CVS is the client server stuff.
--
"In the land of the brave and the free, we defend our freedom with the GNU GPL."
Re:Use Visual SourceSafe (Score:2)
Yeah, for users maybe. Try quickly extracting the source tree for V1.1.8 of your project when you're working on V2.5.1. Even if you've got it labelled properly, it's still a major headache. And don't think that CVS is the only product with gnomes; check out this error message from VSS:
There is a diff chain size mismatch in file 'DocumentPaginator.java' (hfncaaaa) at version 10 (versions earlier than that version can no longer be retrieved from the database).
VSS is OK if you're working with MS development tools, but if you're working with anything else, I'd go with CVS.
What is CVS good for? (Score:2)
Or the Linux kernel source!
Sorry. Mod me down for flamebait, but I couldn't help it.
-"Zow"
Re:SCM software (Score:1)
Re:Use Visual SourceSafe (Score:1)
Re:I love CVS (Score:2)
Re:I love CVS (Score:2)
So, it's not like we're not into hard core Linux hacking here, but by the time I get onto projects (my job is mainly doing the really hard stuff that nobody else can figure out) the version control system has already been picked out, and it's usually rcs or pvcs.
At home, I use CVS. One thing I forgot to mention is that CVS is great for use as a "briefcase" system. I can make changes in source on multiple computers, like my laptop and my desktop machine, and when I need to integrate the two, I just commit it into the archive and update the other copy. Plus, I keep my source always checked out on one machine, while the archive resides on another machine. If one machine fails, I still have relatively up to date copies on the other machine. EZ redundancy.
I love CVS (Score:3)
I've used pvcs lots, and rcs too. Can I tell you how much it sucks when some fool on the team comes in at 6:30 AM and locks the one single header that everyone needs, and doesn't check it in until he goes home at 4PM?
a) CVS is great for that situation. It would also help to lay out header files in a smart way. Alas, I hardly ever get to start a project, but I sure as hell finish them.
b) pvcs sucks because of the rule that the suckiest and most selfish programmer on the team also happens to be a bright and cheery early riser, just so he can check out that important file before I get my hands on it.
c) I haven't mentioned clearcase. The less said about that horrendous mess the better.
Try this one (Score:1)
Re:No nutshell here (Score:1)
BTW, the O'Reilly is an OK book, but really not the only reference you'll ever need as a startging-out CVS admin. I think that the "8" rating is about accurate.
Re:Linus in a nutshell (Score:1)
How does it suck? All in all I'd say his review is a hell of a lot more useful than your empty diatribe.
PVCS was (is still?) crap (Score:1)
Urg, quite often I had to bypass the User Interface to manipulate directly its files!
As the PVCS we were using was under Windows, all our files under Unix were on the format 8.3..
And it was only a medium sized project!
It was in 1998 so maybe it has improved since then..(wishfull thinking)
Re:cvs for backup (Score:1)
If you only want the previous version, you can tell CVS to work that way, set the file type to binary and it'll only keep the most recent version. But if you're using CVS for backup only, then you're probably missing the point of CVS, which from your post I'm not sure weather you get.
Re:Use Visual SourceSafe (Score:1)
Re:Use Visual SourceSafe (Score:1)
Our network here is fairly sluggish. On a project with about 500 files, SourceSafe would take 30 minutes to do a diff of the source (just see what was different between your local copy and what's in the archive).
The same project in CVS takes about 3 seconds. Needless to say, we've fully switched over to CVS now for performance reasons.
Re:Use Visual SourceSafe (Score:1)
Something better that CVS ? (Score:1)
Re:Use Visual SourceSafe (Score:2)
You must be on some form of crack.
Visual Sourcesafe is not more reliable than CVS.
Visual Sourcesafe is one of the most god awful version control softwares ever written. No client/server, shoddy file-locking, lousy performance, It's so damn bad that even Microsoft is discontuing it. (Amen!)
VSS can be simple to use, but WinCVS makes CVS easier to use than VSS. Much easier to understand.
Our entire development team took maybe 3 days to convert to CVS, and now not one of them would ever go back.
</flamevest>
Re:Use Visual SourceSafe (Score:1)
--
Re:Use Visual SourceSafe (Score:1)
I've used CVS for work in the past and currently use it for non-career development, and it works much better that way. Plus it works much better than VSS did a) with geographically distributed clients and b) on multiple platforms.
VSS Gnomes! (Score:2)
Kevin Fox
--
Mutated Sheep (Score:1)
No nutshell here (Score:3)
The things I hat about ClearCase (Score:1)
We used ClearCase directly for quite a while. What I grew to dislike about ClearCase:
* Difficult to delete or rename files (have to use cryptic command-line tools - what's the advantage of having a SCM file system if you can't really use it like a file system?)
* Slow.
* When you loose the licence server, all your developers are out of luck. Especially so if you were using the dynamic VOB, then you can't even see your source.
Basically, I just found it incredibly annoying to use. I've used MKS (based on RCS) SCCS, Source Safe, and other systems... so far I think CVS offers the best solution to multiple developers working on code, especially the same modules of code.
Why I love and Hate ClearCase (Score:1)
> c) I haven't mentioned clearcase. The less said about that horrendous mess the better.
Why I love and hate ClearCase, in yin/yang pairs:
+ more scalable than any other system I know of
- doesn't scale past ~100 users or ~5GB of data
+ MVFS is fucking beautiful ("vi foo.c@@/main/3")
- MVFS makes me hack up my client kernel with a slllooowww, unstable filesystem redirector
+ Support for super-flexible, customizable attribute/value metadata
- accessing said metadata is slow to the point of useless
+ support for multi-site (like a distributed database)
- multi-site info is read-only and hence not too useful
Re:Use Visual SourceSafe (Score:2)
I have no experience with Visual SourceSafe, but ClearCase is the best code repository tool I've ever used. It blows CVS out of the water for large distributed teams. Of course, it costs mucho $$$ and requires a dedicated administrator (or two).
-------------
Re:Use Visual SourceSafe (Score:2)
CVS, on the other hand IS free and it also works wonderfully. Good luck with that troll infestation at your office.
Re:Perforce (Score:2)
Anyone can get anonymous, read-only access [opentracker.org] to OpenTracker for free and you can P4 sync, edit, diff and resolve all you want. Patches still have to be manually emailed, however. The only only users [opentracker.org] who can commit changes thru P4 are people who already have P4 seats because they work at Be, plus also Scott and Thorbjorn who don't work at Be but they're still l33t anyhow ;-)
Ahhhh, no locks! (Score:1)
I'm doing my dissertation on SCM software, so I've done research ;)
I don't like CVS; this is my own opinion and I'm saying so now, so don't flame me :) . The unreservered checkout model is a pain with any project larger than the average GPL hobby-kit. The more programmers you get the more merges need to be done. A merge requires knowledge of all changes under consideration, so the person merging needs knowledge of the entire project. As the goal of an SCM is to distribute the work, it is a failure in this situation.
I think locking is a better model. In my SCM, I'm allowing locking of individual functions/classes by clients. In addition, CORBA networking and XML-based storage are features.
Thanks for the bullet points, Node renaming was on my early lists, but I had forgotten it. :)
Personally, my favorite so far has been sablime( Link [bell-labs.com]; rigid locking, SQL queries and can handle HUGE teams and documentation.
Re:Ahhhh, no locks! (Score:1)
If you're 'merging' together a product your going to get a quite a number of end-zone bug fixes. In a ticket based system like sablime, all recognised bugs are trackable to conclusion. This is partly because of locking.
In a merge situation, you have to wait for any outstanding development to find out if the bug fix was successful. To me, CVS seems like the half-assed solution.
In the projects I've worked on, I haven't found locking to be restrictive at all. The one time I wanted access to a file someone else was using, I emailed them and was working on the file by the end of the day. (This was over 9 months of interrupted work - holidays
I agree entirely about the binary data files. You've got me thinking about plug-ins now.
Re:SCM software (Score:2)
That, and I wish I had a script for automatically handling commits from a small group of people for whom CVS is overkill, solely so I can track changes and back out of them day-by-day. This script would have to look through files and directories and intelligently handle renames, too. This is possible for text files at least, but I don't have a week to spend writing the script.
Boss of nothin. Big deal.
Son, go get daddy's hard plastic eyes.
Re:Linus in a nutshell (Score:1)
CVS Reference Card (Score:4)
Error(s) in the review (Score:2)
Actually, it's CVS Pocket Reference [oreilly.com], from O'Reilly.
Re:Use Visual SourceSafe (Score:3)
If you don't carefully monitor the available disk space, and regularly take backups, you may suddenly encounter the interesting situation that all your repository is trashed, because VSS is not able to correctly deal with low-resource conditions.
Plus, VSS's command line interface sucks, which makes it somewhat hard to interconnect VSS with other programs such as Emacs' VC mode.
disappointing book and overpraising review (Score:3)
I hardly think this book deserves a rating of "8". The reviewer is correct, that the organization is poor, but that is an understatement.
It tends to organize in a most-global to most-local fashion, but in doing so, it highlights the least frequently used information before the most frequently used info.
The section called "User Reference" is arguably the most frequently used. But it is placed at the end, and is difficult to get to. It starts by listing all the environment variables that might apply to CVS, rather than describing the common commands and options. Furthermore, once you finally get to the description common commands, it is little more than a printout of typing cvs --help [command].
The first 2/3 of the book covers server-side tasks and focuses on one-time setup issues, like compiling and installing the program.
If someone wants to use this book as a quick reference, that organization is completely backwards.
Even the layout is lacking. There are many places where a page break would greatly help the readability. But instead, the layout is one long flow. (Even the major sections listed in the TOC don't start on a page break.)
Overall, I am disappointed with the quality of existing CVS documentation, and this book is no help. It doesn't present common tasks in a clear and enlightening fashion. It has little information on some of the more interesting use cases that show the power of CVS. I now rarely use the book because it takes to long to flip through to the section I want. Instead, I rely on CVS's online usage info. Hopefully a revised version will improve on these weaknesses.
Re:Use Visual SourceSafe (Score:1)
We use it here too, and have folks working from home who are happy with it. It's commercial, however, whereas CVS is, of course, free as in beer and speech. (Of course, if you're considering VSS, hey, that's commercial too :-)
On the scalability side, I haven't seen too many problems with CVS as things got bigger. Speaking for myself, I'd look at Perforce, but if it's already been decided From On High that it's gonna be either CVS or VSS, I'd go with CVS.
Re:Use Visual SourceSafe (Score:1)
I've found that a little hacking of the commitinfo file and a large hammer keep the little fu^H^H^H^H^H^H^H^H^H developers^H^H^H^H^H^H^H^H^H^H CVS Gnomes in line.
SCM software (Score:2)
-atomic checkins on multiple files: basically meaning that you can't really tell what files came in with each checkin, so backing out of a change is a chore, also it's possible to checkin
only a part of what wanted to (if the network goes down) resulting in a broken tree
-file renaming breaks file history
-no directory renaming
-no disconnected operations on the repository(e.g. checking the file history when you are on a laptop in a plane)
-branching and multiple merges back into the trunk is a little awkward
-setting up a staging area for integration of changes is similarly awkward
The alternatives:
Bitkeeper [bitkeeper.com] looks really nice, I've only played with it though, not used it in any serious development. It follows a model that every developer gets his own repository, and then push changes around these repositories. The license allows access to the source code, but is not quite open.
A lot of people like Perforce [perforce.com]. I don't have much experience with it myself though.
Visual SourceSafe [microsoft.com] is slow over the network, seems to corrupt files easily, and not so friendly cross platform. It has a nice GUI, if you are into that kind of stuff. Has similar problems with CVS regarding branching and atomic transactions.
ClearCase [rational.com] is really expensive(in computing resources, money, and adminstration costs). On the other hand it has nice integration with rational's workflow and bug tracking products.
Re:Use Visual SourceSafe (Score:1)
Nope, they aren't.
So are
Re:Use Visual SourceSafe (Score:1)
Visual SourceSafe
Re:Use Visual SourceSafe (Score:1)
What is needed to make delphi better? Kylix, more MPL'd components & functions a www.delphi-jedi-org, freeware VSS/CVS integration pluggins, etc
Cross-platform stuff (Score:1)
I am in the unfortunate position of having to do development under Windows and Linux, and if you check out a source tree with the Windows port of CVS, all your text files have LF->CRLF translation applied. If you then try to check them in from Linux, the Linux CVS client will NOT strip the CR's out, and every line of the file is "touched".
Worse yet, if you then check them back out under Windows, you get CRCRLF...
Yes, it would be nice if I didn't have to do this sort of thing. It would be nice if I had a million dollars and didn't have to work for a living, too.
Re:SCM software (Score:2)
Directory renames I'll give you. It would be nice if CVS would allow file/directory renames.
Disconnected checking? This only tells you what the state of the system was when you last updated, i.e. when last you checked out. How is this much better than CVS?
Setting up a staging area is awkward? How so?
mkdir integration
cd integration
cvs checkout
cvs update -j mybranch
cvs update -j hisbranch
...
make
test
cvs commit -m "Merged mybranch and hisbranch"
Could you give a little more detail?
Save a buck: info cvs (Score:2)
Re:Save a buck: info cvs (Score:2)
Re:Use Visual SourceSafe (Score:1)
I had CVS Gnomes once. Noisy little critters, too. They kept clamoring on and on about "underpants" and "big profits". I finally managed to lure them away with a 3-pack of cotton briefs.
Re:Save a buck: info cvs (Score:1)
Just an idea... maybe you already tried pinfo too..?
--
Re:The author misnames his own book (Score:1)
I don't think Purdy actually had anything to do with this review (other than having written the book).
Re: Perforce (Score:1)
I am not using perforce now because it is too expensive, however Perforce is free when used on open source projects, or when only two clients are needed. This is outlined on the perforce pricing page [perforce.com].
Discontinued? (Score:1)
Why buy a book when a very good online manual is.. (Score:2)
The author misnames his own book (Score:1)
It seems strange that that author of the book would not know its correct title. Worse, there's no real disclosure of his connection to the book.
--
Re:Use Visual SourceSafe (Score:2)
Cervisia - a great CVS GUI (Score:2)
I've gotta plug cervisia. It's a Very nice GUI for CVS. One of the features I really like is that it will show you the command line it executes so you can learn the commandline from the GUI. A very nice blend of useability & power.
Check it out at:
http://cervisia.sourceforge.net/
Eli
Name, Publisher, wrong (Score:2)
Re:Use Visual SourceSafe (Score:2)
While our hands aren't tied as far as VSS vs CVS vs others, we are (very much) tied to Windows NT. I'm curious to try Perforce out. Their web page promises much, and your references seem to bear that out.
Thanks again,
John
Re:Use Visual SourceSafe (Score:5)
On the plus side, the PVCS Gnomes are still hard at work, damaging about one file in every 5000 checkouts. Since we have a 2100 file build at the moment, that's one in three builds getting trashed by this worthless system. We hope this is enough ammo to have PVCS shot, drawn and quartered, and sent to the Eastern front.
We've been considering both Visual Source Safe (which we've had good luck with, but find it feature-poor) and CVS. I'd love any feedback anyone has comparing the two on a fairly large project, particularily where we have two sets of developers working off-site through slow IP links.
John
Re:Win CVS book for CVS newbie (Score:1)
Anyways, I hope this helps! Cheers,
Chris
I know I've seen this book somewhere before... (Score:2)
Re:Use Visual SourceSafe (NOT!) (Score:1)
OTOH, CVS is -far- more configurable, is cross-platform in a way VSS can't match, and is far, far better for teams (you know, like when you want to -not- have a file locked for hours on end just 'cause someone's recoding a single subroutine in it? And with a cron job keeping our development environement in lockstep with CVS, testing on the live box gets rather clean.
Re:Save a buck: info cvs (Score:1)
Re:Use Visual SourceSafe (Score:2)
My company recently switched over from VSS to CVS. We several large products, with many files. I don't think any one project has 2100 file but combined we're well over that.
I personally love CVS. Multiple people can edit the same files and merge them back (A HUGE GAIN). You never get files locked by someone.
But the biggest gain is the tools. CVSWeb is great, you can browse your code in a web browser, look at diffs between checkins, annotate those diffs, the whole nine yards. CVS and LXR work together very well. LXR isn't the single greatest coding tool I've ever used. All of your class's, variables, header files are all cross linked, navigating code is easy. Use glimpse and searching is easy. Bonsai makes watching the build easier (but I havn't used it enough to be really pro or con).
We had issues with VSS stability. That may or may not be our fault. On features alone CVS is much better than VSS.
Re:cvs for backup (Score:1)
There's no B(ackup) in CVS.
Re:cvs for backup (Score:1)
That's what my last sentence said. Using CVS for backup at all is riduculous. There are tools meant for that.
Re:Why review a pocket reference (even a good one) (Score:2)
Re:SCM software (Score:1)
One day I add a superfoo() function to foo.c and foo.h, making revision 1.37 of foo.c and 1.22 of foo.h.
Three months later, I am looking at foo.h, which is up to 1.57, and I want to find out everything about the changes that introduced superfoo(). With CVS, as far as I can tell, I look at foo.h's log, see the checkin comment that added superfoo(), hope that the same comment might appear in foo.c's log, but probably have to correlate the two via the ChangeLog file. It's harder when there's not something simple like "superfoo()" to grep for.
With a system with atomic checkins, I look in foo.h's log for the relevant global change number, and then I ask what effect that change number had on foo.c. No manual searching.
It seems to me that the sole reason why GNU projects labouriously maintain ChangeLog files is to cover for the lack of atomic checkins and reporting functionality in CVS.
Standard issue Perforce fanboy (Score:2)
PVCS was appallingly bad. Random corruption, files perpetually locked by others. RCS was feature-poor. CMS was actually pretty good, especially if you didn't want to branch anything. I used to like CVS.
Then I landed in a shop where they use Perforce [perforce.com], and grumbled for a while that it wasn't CVS. Pretty quickly I was a convert. Perforce is like CVS except that:
Then I discovered how much fun scripting it was!
There's tension in that it's not free software, but then Perforce the software and Perforce the company are a joy to deal with, so you don't begrudge them all that much. Their user base is largely a free software-like rabid bunch of happy advocates, so something must be right.
I'm looking forward to next week's SVLUG [svlug.org] talk about Subversion [tigris.org], which might be Perforce's first real competition for a while in the "it's not ClearCase -- thank God" category.
Over the slow IP links: by all accounts, Source Safe is terrible. On our large projects worked on from half a dozen sites, Perforce works well. The GCC folks can probably tell you how well CVS works in that situation: I suspect the answer is pretty reasonably well too.
Ah... (Score:2)
Re:cvs for backup (Score:1)
Re:cvs for backup (Score:2)
Renames and Relocation. (Score:1)
The single best feature of ClearCase is correct support for renames and relocations. No other system allows one person to reorganize a whole source tree and still keep the history of every element intact.
The value of this is vastly underestimated. Just imagine not having to spend so much time figuring out the initial layout of the tree, since you can modify it as the project evolves. Just think of all those crappy class hierarchies that only exist because reorganizing the source tree is such a hassle, and just look at the contortions tools like VC++ go through to enable developers to reorganize their prohects without moving the files - all because renames are tough to do in any system but ClearCase.
As for all the other perceived and real flaws, they all can be dealt with by a competent ClearCase guru (like me).
Re:Renaming files/directories: (Score:1)
The problem with going behind the scene is that your changes will affect everybody, instantly.
The point of having versioned directories is that you can go about your reorganization at a leasurely pace, keeping in synch with all the other people, test it and then commit it and have your other developers absorb the change at their leasurely pace.
The only system I know of that can do this is ClearCase. Yes, it is a complex system that requires a very competent admin (like me), but then, I can do things with ClearCase that would be unthinkable in any other system
See http://www.miaow.com/clearcase/ [miaow.com]
Re:Ahhhh, no locks! (Score:1)
I really disagree. Locking is a half-ass solution and almost invites the deadlock situation.
There is no way to avoid the merge if you really want to have an open-minded but efficient parallel development environment. The scaling up is done by organising "delivery streams" and merging them into the final product. Of course you try to avoid overlap by good software design and by dispatching tasks properly, but you don't outlaw overlap via locking.
The really unfortunate side of current software development environments is that they produce more and more binary data files that are not mergeable and essentially punt on all the hard problems...
Re:Use Visual SourceSafe (NOT!!!) (Score:1)
Re:Use Visual SourceSafe (Score:1)
open source development with cvs (Score:2)
Windows/Unix synchronization (Score:1)
You might want to take a look at the Unison [upenn.edu] file synchronization mechanism.
I use CVS on my Unix boxes, and keep my Windows laptop synchronized with Unison. I synch to my main development Unix box. The chain looks like this:
Thus my Windows mods are synched to the Unix box, and checkin/out is only done on the Unix box.Why the need for books? (Score:1)
Obligitary Austin Powers joke (Score:1)
CVS: No, this is me in a nutshell; "Help! I'm in a nutshell! What kind of nut has such a big nutshell? How did I get into this bloody great big nutshell?"
Why review a pocket reference (even a good one)? (Score:3)
On the positive side, this may motivate me to investigate using CVS.
Wow. (Score:2)
Help, help, I'm in a nutshell!
CHECK ME OUT OF HERE!
Re:Why review a pocket reference (even a good one) (Score:2)
---
Use Visual SourceSafe (Score:3)
I personally have seen CVS Gnomes in my office, but upon attempting to communicate with them, they flee in fear. I do leave little pieces of cheese for them by where the ethernet goes into the wall, though, and I notice that every night they do not fail to eat it.
Has anyone had success communicating with CVS Gnomes? If so, how did you do it? They seem to be afraid of me :(
---
Re:Why buy a book when a very good online manual i (Score:1)
Ron Obvious
McGraw-Hill? I don't think so! (Score:1)
There's also this very good book online (Score:4)
It's a very easy to read CVS book that begins with the basic steps of creating a repository and goes all the way to cover a lot of advanced aspects about using CVS on a daily basis.
another good web interface (Score:2)
cvs for backup (Score:2)
i was angry:1 with:2 my:4 friend - i told:3 4 wrath:5, 4 5 did end.