Domain: tigris.org
Stories and comments across the archive that link to tigris.org.
Comments · 463
-
Re:How about...
Subversion uses a centralized model. In TFA, Linus talks about his disdain for such a system, and given the distributed way kernel development is done, Subversion would be quite a headache. That's not to say Subversion isn't great for some projects, but certainly not for the kernel.
It really is too bad, though, that with the complaints about BitKeeper before, nobody seems to have written a 100% free equivalent in that time, and there doesn't appear to be a worthy alternative for Linus now that he's dropped BK. Maybe one will pop up, or someone will hack in the needed features into an existing project like Subversion. Here's hoping. -
Distributed Version Control with SVK
-
Not an option.
The Subversion devs have already stated that Subversion is a poor choice for kernel development. In fact, the title of the page I just linked is "Please Stop Bugging Linus Torvalds About Subversion." Plus, Linus himself said "Don't bother telling me about Subversion" in his e-mail.
-
Re:How about...How about Subversion
How about reading Subversion's writeup on why that's not a good idea?
-
How about...
How about Subversion?
-
Re:Linus says, no subversion.
And subversion developers themselves say that its not a good idea.
-
Re:Subversion
But not for this purpose. http://subversion.tigris.org/subversion-linus.htm
l -
Re:What tool to move to?Subversion is not the tool we will be moving to.
Don't take my word for it, read the official statement from the subversion developers, "Please Stop Bugging Linus Torvalds About Subversion".
The kernel development model, as molded by BitKeeper, needs a highly decentalized model which encourages forks as a way of staging kernel changes.
-
Re:Features Subversion lacks vs Bitmover
Subversion's Open Letter on this topic:
http://subversion.tigris.org/subversion-linus.html -
Re:Oh great...
Apache is migrating many of their projects to Subversion. I think they have about half of them converted right now. So the viability of Subversion for large codebases has already been proven.
There are quite a number of FOSS projects using Subversion listed here. -
Information on OSS/FS SCM toolsSee Comments on OSS/FS Software Configuration Management (SCM) Systems for more information on open source software / Free Software SCM tools. You can also take a peek at the related paper, Software Configuration Management (SCM) Security.
There are lots of such tools, including CVS, Subversion (SVN), GNU arch, Monotone, Aegis, CVSNT, Darcs, FastCST, OpenCM, Vesta, Superversion, Codeville, Bazaar, Arx, and Bazaar-NG.
-
Re:Too Obvious AnswerSubversion has distributed add-ons. For example, svk (I have not personally used it, but have heard good things). Subversion is more than just a version control system, it is more like a version control architecture. Take a look at all the related projects here. Most people just need cvs-replacement functionality, but there are certainly more options than that. I think it has a very good chance of catching up with BitKeeper shortly.
ps - now that I look at it again, it appears that svk has grown beyond a subversion add-on and supports other repository architectures.
-
Re:Too Obvious Answer
Actually, Subversion uses a centralised system, which would not necessarily be the best choice for a group of developers used to decentralised control. Better choices would be GNU Arch or Darcs; however neither is really production ready at the moment, though Arch is getting there.
As a result, Linus may indeed end up going for Subversion, but through a lack of options rather than a personal preference
-
Too Obvious AnswerEvidently the recent decision was due to OSDL's decision to keep paying a developer who was working on reverse engineering BitKeeper... What tool Linus will move to is still being determined.
Considering what has transpired, the obvious choice is subversion:)
-
Playing into [ungrateful] hands
"That's because traditionally, with a few notable exceptions, client-side Java apps suck. They're clunky, slow, and they look like arse."
Talk about looking a gift horse in the mouth.
Guess I better stop downloading F/OSS software like these.
http://argouml.tigris.org/files/documents/4/0/argo uml-0.16.1/jws/argouml-en.jnlp
http://www.johnmunsch.com/projects/HotSheet/HotShe et.jnlp
http://my.unidata.ucar.edu/content/software/idv/we bstart/IDV/idv.jnlp
http://www.crosswire.org/bibledesktop/stable/bible desktop.jnlp
http://www.geovistastudio.psu.edu/autobuild/gvstud io-full.jnlp
http://molo.concord.org/software/
[There's a LOT of java software out there]
http://community.java.net/projects/alpha.csp?only= hosted
And the fun thing is that on SuSE, Java Web Start is already set up. Click on the JNLP links and it'll automatically download, and set up (Warning some are large downloads).
-
Re:Finder Extentions
I agree with the comment about Version Control and Finder. I use TortoiseSVN on win32 and love it. When I code on my mac, I greatly miss this significant integration.
The beauty of TortoiseSVN (CVS) is that they integrate to the Windows Explorer, which is in turn used by *most* applications in windows for managing files allowing the version control to be very well integrated with the entire operating system.
[...]
If Apple could allow for Icon overlays and adding of file attributes similar to Windows Explorer it would be a huge improvement to the usability of OSX for GUI based hacking.
So you mean the Finder plugin I've been using doesn't exist? Or is it lumped in with the "other projects out there" you mentioned?
To be fair, it's not terribly polished; you do get badging of files, but they don't always update properly. And it requires a command-line Subversion installaion, either via Fink or through some standalone Subversion packages. But a new version is supposed to be coming that includes the necessary Subversion libraries, and I believe they're supposed to fix the badging issue at the same time.
Jay (= -
OSS software configuration management tools - refsFor some info on OSS configuration management tools, including references to many of them, see Comments on OSS/FS Software Configuration Management (SCM) Systems. That paper, in turn, references lots of other pages on the topic:
"The better SCM initiative was established to encourage improved OSS/FS SCM systems, by discussing and comparing them. Among other things, see their comparison file. Zooko has written a short review of OSS/FS SCM tools. Shlomi Fish's OnLamp.com article compares various CM systems as does his Evolution of a Revision Control User. The arch folks have developed a comparison of arch with Subversion and CVS (obviously, they like arch). Another pro-arch discussion is Why the Future is Distributed. A pro-subversion discussion is available at Dispelling Subversion FUD. Slashdot had a discussion when Subversion 1.0 was announced. Kernel traffic posted a summary of a technical discussion about BitKeeper. Brad Appleton has collected lots of interesting SCM links. jemfinch has some interesting essays about SCMs (he uses the term VCS), including why he thinks the approach to branches used by Darcs, Arch, and Bazaar-ng is a poor one. A brief overview of SCM systems that can run on Linux is available."
There are lots of OSS/FS software configuration management (SCM) tools. CVS, Subversion (SVN), and GNU arch get lots of press, but there are many others such as Aegis, CVSNT, Darcs, FastCST, OpenCM, Vesta, Codeville, Bazaar and Bazaar-NG.
You might also take a peek at my paper Software Configuration Management (SCM) Security.
-
Re:I wonder how this bitkeeper thing comparesWhat makes Perforce superior to for example CVS?
More or less anything is superior to CVS. Consider deleting directories or moving things or...
A reasonable list of the most obvious evils of CVS can be found as the list of features on the Subversion project home page.
CVS's only real advantage is ubiquity.
-
Open alternatives
There are so much real open alternatives like subversion, arch and (my personal favourite) darcs - just to name a few. Why bother with bitkeeper?
-
Just another weak collaboration tool
I don't care how easy it is to chat and share files, that does not really make teams work that well together. Teams need to be sharing the right information that actually helps them reach decisions.
One groupware "tool" for developers that I have been really happy with is http://readyset.tigris.org/. -
What I do as a programmer
As a PHP/Perl/JavaScript/HTML developer, here are some of the things I think I do well:
- I use liberal comments in most of my projects. I always try to use
/* and */ to make multiline comments that are easy to quickly add to without worrying about a lot of pretty formatting. - I have recently started to play with PHPDoc to create self-documenting code.
- When creating any character(s) implying "open" I immediately create the "closed" character(s) too. For example, I type "if () { }" and then fill it in. As I write this, my LI tags are all already typed, I am just filling in text now.
- I use text editors with syntax highlighting, such as HTML-Kit -- no drag & drop GUIs.
- I use tools like WinMerge, Subversion (only a little, not so good at it) and ReplaceEm to maintain large codebases.
Where I fail at coding:
- I know OOP, but it isn't natural for me, so I'm still a procedural boy, even when Object-Oriented Programming might help.
- I have no idea what vectors and matrixes are.
- I'm self-taught, my schooling is as an English major. So I have absolutely no Computer Science education behind what I do. While I try to do well, my solution to a deep and complicated problem is going to be basic compared to a guy who spent years of his life learning algorithms.
- I use liberal comments in most of my projects. I always try to use
-
Use open tools only!Here's the big thing: only use open tools.
What happens three years down the road when Management decides not to renew the Rational Rose license? What happens when IntelliJ stops supporting your version of IDEA and you have to upgrade with money you don't have? Etc.
Use only open tools. Open-source is best, of course, but anything that uses completely documented file formats and has tools for exporting to other formats is acceptable.
Don't let yourself get nailed with vendor lock-in. That's a bad, bad place to be. Better to use slightly inferior tools which are open than to lock yourself to a vendor.
That said, here are the tools I find myself using again and again:- C++
- jEdit is a Java programmer's editor with excellent C++ support. I do development on Linux, Win32 and MacOS X, so it's very nice for me to have one editor I use on every platform. jEdit's not as featureful as, say, Emacs, but it's considerably more friendly to use.
- Boost. If you're writing C++ and you're not using Boost, you're committing a crime against yourself.
- Python. With Boost's Python library, it's easy to make your C++ applications scriptable. Write the heavy lifting parts in C++, then make those parts callable from Python. Do the rest of your development in a far safer, more sane language. You get almost all of the speed of C++, and far fewer headaches.
- SWIG is another tool that's excellent for creating scriptable C++ applications.
- Subversion for your version-control needs. Nothing else will do.
- Doxygen for all your documentation needs. Learn it, love it. Your code's not done until every public part of the API has been doxygenated.
- The GNU Autotools are really, really awful. They're also far better supported than Scons or pick-your-Autotools-replacement. Get ready to feel the pain of m4 macros. Sorry.
:( - The GNU Compiler Collection started getting a good C++ compiler around version 3.0. I've been quite favorably impressed with 3.3, and I'm looking forward to 4.0. I don't recommend it for Windows, but for Solaris and x86 Linux it's beautiful.
- I haven't found a good C++ unit testing framework yet. If you find one, please let me know.
- Java
- Eclipse is an excellent Java IDE. jEdit also fits the bill nicely, if all you want is an editor. I use both frequently, and am quite pleased with both.
- Subversion again for your version-control needs.
- jUnit for unit tests. Your code's incomplete unless you've written unit tests for it.
- Javadoc for documentation. I would recommend Doxygen, but it's quite possible you'll be deploying your applications on machines that don't have it installed.
- Ant for all your build needs.
- C++
-
Use open tools only!Here's the big thing: only use open tools.
What happens three years down the road when Management decides not to renew the Rational Rose license? What happens when IntelliJ stops supporting your version of IDEA and you have to upgrade with money you don't have? Etc.
Use only open tools. Open-source is best, of course, but anything that uses completely documented file formats and has tools for exporting to other formats is acceptable.
Don't let yourself get nailed with vendor lock-in. That's a bad, bad place to be. Better to use slightly inferior tools which are open than to lock yourself to a vendor.
That said, here are the tools I find myself using again and again:- C++
- jEdit is a Java programmer's editor with excellent C++ support. I do development on Linux, Win32 and MacOS X, so it's very nice for me to have one editor I use on every platform. jEdit's not as featureful as, say, Emacs, but it's considerably more friendly to use.
- Boost. If you're writing C++ and you're not using Boost, you're committing a crime against yourself.
- Python. With Boost's Python library, it's easy to make your C++ applications scriptable. Write the heavy lifting parts in C++, then make those parts callable from Python. Do the rest of your development in a far safer, more sane language. You get almost all of the speed of C++, and far fewer headaches.
- SWIG is another tool that's excellent for creating scriptable C++ applications.
- Subversion for your version-control needs. Nothing else will do.
- Doxygen for all your documentation needs. Learn it, love it. Your code's not done until every public part of the API has been doxygenated.
- The GNU Autotools are really, really awful. They're also far better supported than Scons or pick-your-Autotools-replacement. Get ready to feel the pain of m4 macros. Sorry.
:( - The GNU Compiler Collection started getting a good C++ compiler around version 3.0. I've been quite favorably impressed with 3.3, and I'm looking forward to 4.0. I don't recommend it for Windows, but for Solaris and x86 Linux it's beautiful.
- I haven't found a good C++ unit testing framework yet. If you find one, please let me know.
- Java
- Eclipse is an excellent Java IDE. jEdit also fits the bill nicely, if all you want is an editor. I use both frequently, and am quite pleased with both.
- Subversion again for your version-control needs.
- jUnit for unit tests. Your code's incomplete unless you've written unit tests for it.
- Javadoc for documentation. I would recommend Doxygen, but it's quite possible you'll be deploying your applications on machines that don't have it installed.
- Ant for all your build needs.
- C++
-
Re:Eclipse
Use cvs for your version control.
No. Use Subversion. -
Re:maddening
In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
Word. In the meantime, we're stuck w/ NCollection. -
Re:No suprise, some projects are best suited for OWhat would be interesting is to see a group of companies start an OSS project from the ground up, pour their own money, pay programmers. But then again, there is no motivation for that! Big companies are only interested in jumping on OSS projects that happen to have gained fame...
There are several examples of companies doing this, singly if not in group. For instance, Subversion has paid developers to design and implement Subversion. X11 has seen quite a bit of paid development by various companies.
-
Re:CVS Admin's be afraid ... very afriad."If I convert from CVS to Subversion will it retain all the tags, commit comments, etc.? Can I retrieve an old version of the source code (pre-Subversion)?"
Yes. You have to understand that the SVN model of "everything is a directory" requires a different way of thinking from the CVS "everything is a file with attributes" model, but cvs2svn does an excellent job of preserving your entire project history.
Also, it is not mentioned anywhere that I've seen in any documentation, but the output of cvs2svn is a very tractable ascii-formatted sequence of svn repository transaction instructions. This makes it very simple and straighforward to do an intermediate processing step (with sed, perl, whatever) to ensure you get an SVN repository structure that meets your own requirements rather than the default layout that cvs2svn uses.
"Is there anything in Subversion like the commitinfo stuff in CVS that allows you to call other scripts/programs and do verifications before a commit is completed?"
SVN supports pre-commit, commit, and post-commit script hooks. The design is simple (due in no small part to the fact that the SVN model is much more simple) and the documentation is clear.
"Is there anything like CVSweb for Subversion? If not, forget about moving. If there is, will it display the pre-Subversion information (from a previous CVS repository) in the repository?"
ViewCVS has excellent SVN support right out of the box (although I strongly recommend using the much-improved development version out of CVS, rather than the rather stale stable release). Because cvs2svn copies over your CVS-era project history into the new SVN repository, all that information is viewable through ViewCVS. Because of fundamental differences in the underlying model (directory-oriented vs. file-oriented), there are a few minor rough edges that are probably unavoidable in a unified CVS/SVN repository browser, but overall, the ViewCVS user experience with an SVN repository is quite satisfactory.
Not mentioned in your requirements, but a show-stopper for many projects is Eclipse support. I'm happy to report that Subclipse works great once you get around the fiddly javahl library installation issue. Just don't forget to read the documentation if you are checking out a Java project from SVN for the first time.
Once you get your brain around the differences in the underlying model, SVN is so clearly superior you'll never look back.
-
Re:Lots of folks are switching over...
I have never used StatCVS, but I believe if you open up a log dialog in TortoiseSVN you can select "Statistics". I've only used it once, but it gave results similar the the sample report the StatCVS site refers to. It's not formatted as nicely, but it's worth looking at.
-
Re:NIce but where is WinSubversion
RapidSVN, right there on the Subversion main website.
-
Re:NIce but where is WinSubversion
There are a number of GUIs, we use TortoiseSVN here, which works pretty well and integrates directly into the windows explorer. Takes some getting used to, but I find this much more effective than having a standalone program.
-
Re:gnu arch
I'll switch to Arch as soon as it supports something like TortoiseSVN on Windows, which provides shell-integrated access to Subversion repositories.
-
RapidSVN
Besides Tortoise, you should also check out RapidSVN. I tried them both and I like the RapidSVN Gui better. Both of them are open source.
-
Re:NIce but where is WinSubversion
TortoiseSVN is an excellent front-end, and there are a bunch of IDE plugins for integration with things like Eclipse, IntelliJ, Visual Studio...
http://tortoisesvn.tigris.org/ -
Re:NIce but where is WinSubversion
Try Tortoise SVN. It's a pretty, integrated windows subversion client.
-
Re:CVS Admin's be afraid ... very afriad.
love it so much, I am actually considering installing svn on my families computer so they can keep track of their most beloved digital documents as well.
If you're using Windows, look into TortoiseSVN, a Subversion shell extension for Windows. The neat thing is that you it doesn't even need a server if you file access to the repository is available (and possibly in other cases as well). This means it's the only program needed.
As for myself, I actually use it for school homework in addition to my programming projects. I setup a dedicated server for my repository in this case so that I could access and synchronize my work at school. It works wonderfully, especially when used with plain text documents or source.
-
Re:Conflicts and Merging vs Locking
FWIW, the lock/unlock model (a.k.a., "reserved checkouts") is on tap for Subversion 1.2, according to the roadmap.
-
Re:Whatever happened..
This is why I choose free software because it's in the spirit of cooperation rather than subversion.
Hey now, Subversion is free software too! -
Re:Or Apple hears Anandtech's cry (offtopic)
Check out ArgoUML for a togetherJ workalike. It's open source, and It runs fairly well, and has a thriving community.
-
Re:The IDE Issue...
You can easily move your classes between packages as long as you don't use CVS
:-)
In our projects we use Intellij IDEA IDE. We already have painfull experience with ability to move classes easily (while using CVS). Try moving a class and then merge modifications to different branch...
Good news is that SVN integration comes to IDEA soon. We will migrate our projects to SVN ASAP and then enjoy all features of IDE. -
Source Control HOWTO (in the works)
Eric Sink has recently started writting a detailed HOWTO off of his personal website titles "Source Control HOWTO. He doesn't just cover his own companies project "Vault", but also touches on CVS, VSS, and Subversion.
In my IT career I've used VSS, PVCS, a bit of CVS, and now becoming more familiar with Subversion behind GForge. Of all the documentation I've consumed, Eric Sink's article has so far been the most thorough (and least dry!)
As for the comments regarding source control being overkill for personal projects; I feel there is a misconception that source control will add continually overhead to a project. The initial setup may be a pain, but when refactoring components, it's much easier to perform differences along a file's history from a source control system than diff directory which you manually copied to perserve a "version". I've done it both ways, and found using source control with my solo projects to provide a multitude of benefits. I could list them out here, but I believe they're all addressed (and then some) in the HOWTO. -
Tortoise SVN for Windows
Tortoise SVN for Windows is great for mini projects with a single programmer, because it lets your run a subversion tree locally from your HDD without the need for a proper server install. I'm sure there's an equivalent for *nix.
-
Re:AloneThere is not much of overhead, ever for tiny project.
I use VC even for single file projects (in which case I use RCS) or very small projects I work on.
For my toolbox (mostly EMACS) using RCS is almost transparent - I visit file in read only mode, when I want to edit it, I check out it (C-v v), work on it, then close it (C-x C-q) and describe what I've done. I really wish it would work the same with CVS or subversion.
I do not this for VC itself, but it half for VC in case I screw up something bad so I can gest back to old version,half for backup facilities. is reassuring to know that the file you work on is not the only copy in existence and you may get some recent copy back in case you screw something up. For larger projects I use subversion which is CVS done right. If the projects grows over RCS stage I migrate it to subversion via CVS and cvs2svn.
Since I work on various machines, subversion also allows me to merge changes semi-painlessly and to keep local copies in sync.
And yes, I DO use documnt versioning in OpenOffice. -
Re:Buy 'Pragmatic Version Control using CVS'
as for all those \. ass-monkeys telling you to use Subversion
heh-heh. Ass monkeys. You're funny.
Pity you don't know about subclipse
Eclipse has had subversion support for quite a while. -
The BEST CVS administration method
If you have an opportunity to, chuck it and use Subversion instead.
-
Re:Patch viewing!
Bonsai, LXR and CVS.
Hrm, what about Subversion, which is the next big thing in the bug/SCM world?
(but yes, props to the Bugzilla team!) -
Re:I blame the If statements
Introduce them to version control.
-
Some softwares I use....
Exact Audio Copy for cd grabbing
XnView for picture viewing
Subversion as code repository
Trillian 3 Basic as Instant Messenger
Media Player Classic, ffdshow, ZipGenius, and many others... -
Compelling reason to upgrade
I guess trying to run subversion with Apache might be a compelling reason to upgrade since it requires Apache2...
(Running Apache2 with svn, PHP, ... with no problems here) -
PHP and Subversion
I think this is going to become more of an issue as software projects choose to target different versions of Apache.
For instance, recently I was setting up a Subversion server for a project I was working on. It turns out that if you want to run Subversion over WebDAV/DeltaV, you are forced to use the Apache 2 series. As many have pointed out, if you try to use PHP in this environment httpd will randomly die off since PHP isn't thread-safe. When you are using Apache to write information, rather than read it, this is a very troubling issue.
Of course, this is easy enough to work around, you can either use one of the other access methods that Subversion supports, or install both versions of Apache simultaneously, placing them on different ports, or simply choose not to use PHP, however these are all workarounds, not solutions. Imagine what happens if other software takes this approach, say for example jboss, and you need to use both for different parts of your site. Suddenly, the "run both servers concurrently" approach doesn't look very attractive. -
Re:subversion?
Subversion is modular, has 2 backend and many client protocols that are all used in different projects because there are needs to each one. With mainly good results, some with projects of many gigabytes. Pointers at http://subversion.tigris.org/propaganda.html.
The n you prejudice without any concrete evidence, without other knowledge than that is "new" and is somehow obscure because of layers, abstractions and framworks. But again without any concrete evidence.
If you think I'm wrong please give some real facts, for example: point to the framework that you think is over-abstract.