Why Do You Always Say Not To Use CVS, Subversion, or Monotone?

Well, there are several reasons. We'll start with the most important and go from there.

First of all, we tend to break the code in our repositories quite often, usually intentionally. Quite frankly, we don't have the time to deal with bug reports from users about something we know we broke. Don't get us wrong; we greatly appreciate contributions. But users who use CVS/SVN/MTN versions of our code and don't contribute to us are far more of a hindrance than a help. Somewhat related to this is an example Pidgin itself provided to us--API changes. When Pidgin is going through work on a new major version, the internal API changes wildly, and we try to keep up. Any user using a release of Pidgin is likely to have a problem building our plugins from MTN due to our keeping up with Pidgin, and any user using a Pidgin from MTN is likely to have trouble because we haven't kept up quickly enough.

Another reason we say not to use CVS/SVN/MTN is limited resources. In the past, we were hosted on Sourceforge.net, a provider of hosting, version control, and numerous other services for open-source projects. As many Sourceforge users know, the CVS servers quite frankly sucked. This wasn't necessarily Sourceforge's fault; they do a pretty good job of providing all those services for free to the open source projects taking advantage of the offerings. The main problem was load. Too many users pulled CVS code simply for the sake of having the absolute newest code, and several projects provide no source releases, instead expecting users to download specific tags or branches from CVS themselves. This effectively crippled the anonymous CVS servers at Sourceforge, making it difficult or impossible for those who were actually contributing code to projects to do so. Now, however, we are self-hosted, including our Monotone repository. Our hosting resources are extremely limited. We get only a certain amount of bandwidth we're allowed to use per month from our service provider. Additional bandwidth would drive our monthly hosting costs up, which is something we'd like to avoid.

All of our revision control history prior to leaving Sourceforge.net is still in our CVS repository there, accessible through the ViewVC web frontend or your favorite CVS client. This should be used for historical purposes ONLY. Sourceforge.net CVS is still overloaded and largely unusable for non-developers. Also, we are no longer committing any code to the CVS repository, so further pulls from CVS are pointless. We were using Subversion for quite some time, and in fact there is a Subversion repository still sitting on our server, but we no longer use it. We have entirely migrated to Monotone, choosing not to bring the CVS history with us, so CVS is truly a historical archive only. The MTN repo does, however, contain all our SVN history. Again, our MTN repository has limited resources that must be shared among the developers needing access to the server and all other users, including users who download only our released packages, so we ask that you please not lightly use our non-release code.