Lightning talk from Bryan O’Sullivan, aired at EuroPython 2006.
This talk presents Mercurial Queue (mq), an extension to the Mercurial … all » Version Control System (VCS). Mq is used to manage a series of patches in the same way that quilt does. The main difference is its complete integration with the VCS software, so that you can manipulate the patches as changeset objects.
Mq adheres to the Mercurial philosophy: it is simple to use and blazingly fast. It can manage hundreds of patches applied to a 20,000 file repository.
There is a discussion in comments to Aral Balkan’s Blog about Subversion clients for Mac OS X. Here is a list of all tools mentioned, slightly sorted by “popularity”:
Launchpad.net is the system for collaboration, project management and code hosting for free software. It provides source repository hosting, bug tracker, a place to discuss project goals and features (called “blueprints”), translation management service, and the knowledge base.
I won’t delve into details, but what caught my attention is that launchpad.net allows to make a read-only mirrors for Bazaar, Subversion and CVS repositories, and track code progress by subscribing to commits on any branch of that repository. Andy Wingo says:
Launchpad offers a web-based repository browser, including changesets, and offers the ability to subscribe to any branch it knows about. You get emails on distributed commits. This is a beautiful thing! Anyone who has worked with distributed VCS’s has probably had the feeling that they are seeing development through a keyhole, that there’s a whole world out there that’s not easily visible or comprehensible. Launchpad offers the possibility of tying together the various development branches out there in the wild in one place, effectively removing the last advantage of centralized version control.
A Google Tech Talk by Bryan O’Sullivan, on Mercurial VCS.
Mercurial is a free distributed revision control system. It focuses on conceptual simplicity, robustness, and high performance. Well-known open source projects that use Mercurial include OpenSolaris, Xen, and One Laptop Per Child.This talk presents some of the advantages of using Mercurial to manage large, fast-moving projects.
We give a brief overview of the techniques used to achieve, in Python, a level of performance that outshines most other revision control systems. Finally, we introduce some novel revision control techniques that take advantage of Mercurial’s extensibility and high performance.
Simple and cool idea: package manager should be version control software of a kind. Obviously handles version rollback and history, trojans are detected easily, general cleanliness. Downside: needs to be implemented totally, with strict discipline for software upgrades. Although, same discipline is needed for any change-managed activity.
At Ken Takusagawa’s Blog: “Version control filesystem for software packages and system configuration”
Carolyn Henry et al. briefly describe the IBM DB2 Change Management Expert, and how it can be used to keep the database schema synchronized with the application code, using version control system.
Read at:
Those of you who have used version control systems for a long time, or anything which has to diff extensively for that matter, know that once in a while they completely bungle a diff and give output which is, to put it charitably, extremely confusing.
Coming up with an algorithm which reliably gives good diffs is far from trivial, but is a problem which has now thankfully been solved. If you get the latest version of bazaar and use its diff utility it will give reasonable diff output on almost anything. All other version control systems (and I mean all others) should switch to using bazaar’s diff algorithm as a swap-in replacement, a change which has essentially no downside. (It also has better asymptotic runtime, and code which is easier to understand and debug.)
Later in comments he briefly explain new algorithm:
Instead of doing a longest common subsequence on everything, it does a longest common subsequence on lines which occur exactly once on both sides, then recurses between lines which got matched on that pass.
Small but useful post at Draconis Software Blog: “Backing up a Subversion repository”.
We use svnadmin dump, but I guess that it becomes too slow for gigabyte-sized repositories (ours is ~400Mb).
J. Paul Reed, a build engineer for Mozilla, writes an account on choosing the version control system for Mozilla development, instead of traditional CVS. The article is filled with digitally enhanced screenshots from Mortal Kombat II, illustrating the story.
Mercurial is current favorite (but not the winner).
Git, Mercurial, Bazaar, and Monotone were considered. Highlights:
Git is inappropriate for cross-platform projects due to its UNIX-centric nature; same goes for Monotone;
Mercurial had lots of initial troubles with import of Mozilla repository, which is huge and complicated;
Bazaar imports well, but extremely slowly: more than a month for trunk-only part of Mozilla repository;