Domain: cvshome.org
Stories and comments across the archive that link to cvshome.org.
Comments · 67
-
Binary diff
You might like to take a look at using xdelta for your binary files. Who knows, maybe Midway can sponsor the integration of xdelta with CVS?
-
Windows does have cultural differences
When I was (along with some other people, but mostly me) running CVS development, our most popular download was the Windows client (command line at the time, although WinCVS later got popular). Yet very little of the mailing list traffic, submitted patches, and the like were for Windows. I suppose one could point to reasons like whether people had the right compilers for Windows (cygwin wasn't as mature then as it is now, so we had both cygwin and Visual C++ ports). But I still would vote for the cultural explanation. The model of Windows freeware or shareware is basically a gift from the author to the user, whereas Unix free software is more often seen as a (potential) collaboration in which the users contribute.
-
IDEA increased my productivity
I write EJB web applications for a living and having tried a variety of IDEs I have to recommend IDEA, by IntelliJ. It is the IDE for rapid development, every feature is right where you need it, and nothing is in the way. I find that with IDEA I write better/cleaner code than with any other editor. I particularly appreciate the integrated ANT and CVS integration. It is a java app and was a breeze to install on Linux, Win2k and MacOS X. I won't be going back to any other IDE!
-
Just the coworkers?
Have you ever heard of CVS? What cave does your company work from? Please shine the light in there and bring them at least to this nice old tool from back in the eighties/nineties.
-
another vote for perforce, with some history
I recently had the job of evaluating what SCM system to use for our company. We were using CVS at the time.
I believe that the complaints your bosses have about logging and concurrent editing can all be fairly easily fixed in CVS.
The major gripes we had with CVS were:
. slow (see below)
. merging between branches was miserable, because the system didn't keep track of what had already been merged
. renaming files lost all the history
. windows interface was cumbersome
We actually worked with a system layered on top of CVS that allowed us to submit batches of files at once, in a single transaction. This was the major cause of slowness, and CVS didn't really support transactions, so in some sense we were just fooling ourselves. The other major cause was doing a 'cvs update' on a large tree could be slow.
Most of the problems we had could've been fixed
if we spent the time to fix it. Some (transactions, renaming) we couldn't really fix at all. But, when I looked at everything I wanted to fix in CVS, I found that I had just described Perforce's feature set, and when I looked at how they implemented things, they did it like I would've. Plus, comparing the cost of Perforce (relatively cheap) to the time it would've taken us to implement the same features ...
So, we switched to Perforce, and I've been (more or less) happy since. The branching structure is a little weird (compared to ClearCase's, which is the most intuitive I've seen), but we're learning to live with it.
At a previous company, we used ClearCase. This was also a fine product, and it does a few things that no other product does, but it's very expensive, and a major hassle to administer.
ClearCase (at least in the mode we used) implements its own filesystem, and can provide a level of security that the others just can't. But, is this worth paying 10+ times the amount for it?
I also looked at AccuRev. This was about on a par with Perforce, and had one or two features that looked really cool. But, in the end, Perforce won mostly because we went with the product that had bigger market share and more people had used it before.
VSS wasn't an option because we're a mostly linux based shop, and because I had heard many of the complaints that others are making as well.
PVCS I think is mostly an also-ran in this day and age. I think most new source-system users use one of the other previously mentioned systems.
One new open source project (Subversion) looked promising, but it was too immature for us to use.
Bitkeeper also looked interesting, but not enough so to beat out Perforce or AccuRev.
Another thing you might want to consider is how well the SCM integrates with a change mgmt system (or bug/task database). Perforce has a simplistic change database built in, but it's good enough for what we want it to do, and it can also be used with Bugzilla and a few other systems. Of course, CVS and at least ClearCase can do these as well. I've found Bugzilla somewhat cumbersome to use on limited inspection. Other freeware systems (GNATS, for example) are very weak. -
software tool that helps people fork
I may be feeding a troll, but, just in case it was an honest question, we already have a very simple tool that helps people fork. I have used this mysterious and little-known tool to maintain my own forks of several projects when I was making changes that couldn't or shouldn't be folded back into the main tree. (To truly be effective, you should use it in concert with another hard-to-find tool.)
--
pétard -
Re:Why consider Linux?At the risk of a flame war: Want good tools? Try:
- The Nirvana Editor
It may not be an MDI (multi document interface) like Visual C++, but then I like being able to pop up a xxgdb window and have three scrolling xterms of ouput from gcc's last runs rather than tabbing through a tiny window. Got better syntax highlighting too. - Don't foget EMACS
If you can't do it in EMACS, it probably can't be done (or is waiting for the Lisp to be written.) - One acronym -
CVS
As professional who has worked on real program (i.e. real-time embeded OSes for cirtical system with more than a Megabyte of Z80 ASSEMBLER code in some files) I cannot begin to attest to the superiority of CVS (or even RCS) over Microsoft's $600 SourceSafe product for managing (or mangling) project documents. - Bugzilla
Decent bug tracking tools are hard to come by and this one has withstood the test of time (and the mozilla codebase). I don't know of anything equivalent shipped by Microsoft (or specifically for their OS). - It's been mentioned already, but OpenGL works just as well on most Linux boxes as it does on MS Windows. I've written applets and games (for a University graphics class actually) that compile and run under both Windows and Linux.
- The Nirvana Editor
-
Re:Java as a prelude to C++At the University of Oklahoma, my introductory course (CS 1213) was in Haskel and C. While it may seem more *interesting* from a paradigm point of view, functional programming languages are radically different from procedural (C, Perl, basic) and their object oriented children (Perl modules, C++, Java). Functional languages focus on matimatical and logical proof concepts. For a ciricula like mine that is trying to produce Computer Scientists - i.e. professors who do research - rather than programmers or Software Engineers (the model they are trying to move toward) - functional programs are fine, even when used in both the introductory and discrete mathematics components of a CompSci program.
However, these languages are very difficult to learn and this can get in the way of learning other facets of programming and computer science. This learning curve impacts the learning of the general problem solving skills needed to work outside the limited world of discrete finite machines, such as in networking or inter-personal spaces. Java solves some of the problem in the OU cirricula by providing a "lite" language. It is a language that does impressive things very easily and that gaurds the programmer against some nasty complexities like platform/compile/library incompatabilities. These are also the reasons it is popular in industry. Languages such as Fortran and Cobol hold on in our Science and Business colleges because of legacy code and the personal perceptions of the faculty. Unfortunately you can improperly teach the problem solving ciritcal to progammin in any language, just as you can properly teach without a language. Classes that focus on getting design and thought about a problem started at least during if not before a project would be much more helpful. Systems such as OO pattern and tools like UML provide much help to the Software Engineer and Computer Scientist alike.
I've worked in the *real world* Perl, C, C++, Z80 assembler (in embedded and non-embedded environments) and Java. Each has a different goal and a different way of getting their. However, irregardless of the path taken, they achieve those golas to a limited degree. Oak, the language that became Java, was designed to be a simple extension of real OOP with a C syntax. Like other embedded languages, most of which are either assemblers or functional strangely enough, it has grown to include methods of getting at the machine and conecpts such as closures. If it adopted lamda calculus syntax extensions, you could use it to teach mathematical therom proving.
However you choose to view the language, as toy, irritant, the next wave, the last wave, et cetera, it is in our CompSci cirricula and it can be taught and taught well. When I went on to my second year of classes I was exposed to C++ for Data Structures and Java for a Programming Abstractions course. Data Structures became a waste of a class trying while to work with a professor who was new to the lanugage. The Programming Abstractions professor knew what was up with Java and so taught us a lot about OO design before delving into the language. I didn't get a lot of help from my time learning Haskel, wich in turn had severly limited my time working with C before moving onto C++.
For what it's worth, learning RCS, and later CVS and UML, helped with my programming more than any of the languages I in which I learned or worked. In the end, these languages proved that they are just tools. Like all tools - Craftsman, DeWALT, GNU liscenses, Sun.Java.*, there will be proponents and detractors and teachers and charlitans. You mileage may vary.
Here's to 5 years of CompSci and counting (with 1 year to go.)
-
trollvim, make, cvs, and gcc are cross platform. Hate to be a troll, but the only use an IDE has is syntax highlighting. vim does this with
:syntax on.I was in the search for an IDE, kdevelop was ok. But a cvs repository, wel make make files, a sane ANSI-C compiler like gcc -Wall -Werror -ansi and good old vim with syntax highlighting is a joy to work with.
My less than $0.02
-
SourceSafe
I guess this won't go down well, but we use Mickeysoft's SourceSafe for all our version control and I would recommend checking it out. Admittedly there's the cost factor involved in that, and the administration. However, having used CVS for a while, there are limitations in that software that were hard to work around, and administration was no breeze either. No doubt it's improved in the past two and a half years, but I can't comment.
By far the best system I've used is Clearcase, but that requires an enormous effort in administration (we had 3 full-time and 2 part-time admins on it for a project spanning multiple continents and with some 80 developers, and that was just in one of the offices - I have no idea about the others). That was back before it was sold to Rational and running on HPUX though, and I've heard terrible stories about the performance of the Windows client. Oh, and it costs an absolute bomb.
My experience has been that a 30 minute course for the non-technical will bring them sufficiently up to speed on SourceSafe. A well structured SourceSafe database and a couple of clicks can allow non-technical people access and control over their documents at a centralised network location whilst maintaining version control. Note that the structure of the folders (Projects in SS terminology) is worth investing time in figuring out because it can make a world of difference to how accessible your documents will be - and that's a large part of the problem when you're dealing with non-technical people.
This of course presumes that you want a system that handles both code and document control. There are dedicated document revision control systems out there, but I have not had experience of them. At one point we built our own simple one, but I was never fully convinced of the benefit of doing that, though it leads me to believe that good commercial products may not be as plentiful as hoped for.
For the cheapest route, CVS is probably best. There are other GUI solutions available than PCVS, though I haven't tried them out, and I don't know how well they're supported. I presume you've found this page already. A quick perusal and TortoiseCVS seems a fair approximation to what you want (I presume your users are technical enough to use Windows Explorer if they are writing Powerpoint presentations), though their website is down at the moment (perhaps that's a bad sign).
I hope that's of some use to you.
Cheers,
Nixta
-
Re:Save a buck: info cvs
click here then.
-
Why the need for books?
The best place I have found for a CVS reference is their own web page manual. Everything you would want to need and printable too! I spent one day reading the entire thing and I'm very confident with CVS now.
-
Time to fire up the CVS!
Hook up a project on Sourceforge and link it from freshmeat and get that CVS tree going.. this could be a goldmine project.
pfft. ;) -
Bills & Version Control
However, a different version was passed in the Senate, which would mean that it has to get sent back (House & Senate must pass identical versions of the bill) to the House
It seems to me that Congress could use some version control. CVS anyone? -
My favorites
Given that you're posting around here, I'm guessing you have a Linux box handy. Here are some of my favorite sysadmin tools:
- dig - This is a more advanced tool for seeing what's going on with DNS.
- nmap - A great tool for probing your server to make sure you haven't left anything open.
- Apache Bench (ab) - This simple but effective benchmarking tool comes with the Apache server. It's great to see how your site will perform under load.
- wget - a tool for remotely getting web pages; it's very versatile -- you can even use to save a copy of your whole site, just in case.
- Ethereal - Having trouble figuring out what's going on between the browser and your server? This will capture all the packets and decode them into a nice conversation for you.
- vmstat - want to know why your server is slow? Get used to watching the vmstat numbers while it's fast, so you can see what's different when it's slow. It's raw numbers that are hard to interpret, but it's worth getting to know. Maybe this should be another Ask Slashdot question?
- Netsaint - this is my favorite automatic monitoring package. Once your site is in production, you can set this up to patrol things and make sure everything is working. That lets you get on with other stuff, knowing you'll hear about trouble pronto.
- MRTG - A tool that makes excellent long-term graphs of bandwidth use.
- IPtraf - Where MRTG gives you the broad overview, this gives you the second-by-second nitty gritty.
- perl - Last but most is Perl, a Swiss Army chainsaw of languages. If you'll be doing any web stuff, pick up a copy of Learning Perl and spend a little time with it. Once you learn the magic of regular expressions, you will never again say "that's impossible!" to a problem.
As far as non-sysadmin stuff goes, here are some of my other favorites:
- Bugzilla - this is a free and flexible bug tracking system. Highly recommended, especially for those people who don't think they need a bug tracking system. Our designers thought it was silly to start, but even they use it all the time now.
- CVS - Like bug tracking, most web sites don't think they need version control. Most web sites are wrong! CVSweb is also recommended.
- HTML Tidy - bad HTML in, good HTML out.
- WebTV Simulator - Sure, you and I don't use WebTVs, but a lot of people do. Browse your site with this to see how the other half surfs.
- VMWare - Along similar lines, VMWare is a Windows box emulator. I use it to keep a bunch of synthetic windows machines with a variety of OS versions and browser versions. It makes QA much easier.
And if there are particular tasks that have you stumped, come back and ask again. 'Round these parts, we have big toolboxes.
-
Seriously, though...I'm a release engineer for a company that makes, essentially, software. It's my job to make sure that all the code makes it to the right environment on time, that I know which version is being worked on where, and what's in every "release" we do. Based on my experience, here's how I see it:
- A new product idea is thought up. It's scoped out a bit and then the programmers start programming.
- The programmers drift a bit from each other and only through the miracles of CVS does the code not get totally out of whack.
- Milestones change, programmers come and go, and you get a whole bunch of contractors in.
- Eventually someone (usually a PHB or Marketing) decides that some product should be seen, regardless of the most recent "goal dates".
- Yours truly "cuts" a release and sends it to QA.
- QA finds 4 billion bugs.
- Programmers do some bug-fixing and some hemming-and-hawing happens between IT & Marketing (Product Managers).
- Marketing decides they want to see another release, regardless of how many bugs it has.
- Yours truly "cuts" another release and sends it to QA.
- QA finds somewhat less bugs, and most of the "fatal" ones are gone.
- Marketing decides the bugs aren't fatal enough to ship and since they're getting so much pressure from Sales to ship some product (or at least get stuff to demo), the product ships.
Rinse. Lather. Repeat. -
Re:Apparently, you've never actually made a Q3 modIt might help to check out CVS (no pun intended). You can use it to track external (ie "vendor") branches of the code, and help integrate their changes with your own. It can probably be used retroactively by importing your starting point, committing your changes and importing the new release.
It obviously won't help with the protocol restrictions but might be useful.
You can find out about CVS at Cyclic's home page. There's also a manual section and a section in the on-line CVS book about vendor branches.