Painless Merging with SVK: An Interview with Chia-liang Kao
Pages: 1, 2
ED: At the U.S. OSCON, Leon Brocard demonstrated SVL. Can you explain what SVL is, and which problems it solves?
CLK: SVL is a very thin layer on top of SVK, along with Bonjour (ZeroConf) and OpenDHT. It allows peer-to-peer repository communication without a centralized server. For instance, in a room full of hackers, when people come up with a cool idea and want to start hacking right away, they shouldn't need to set up a centralized repository somewhere and make everyone use it. With SVL, repositories are advertised, people can just branch from each other, and then pull from each other.
ED: Do you have ambitions for SVK beyond scratching your own itches? Is there any interest from vendors in supporting it, or any other major installations beside your own?
CLK: Since SVK talks to other version control systems, there are many open source projects with their committers or contributors using SVK against their Subversion repositories, or even CVS servers. KDE, WINE, Samba, and those listed on svk.elixus.org are among them.
My employer, Fotango, uses SVK to maintain vendor import and branches. Most of my coworkers have moved from Subversion to SVK for daily use, mainly because SVK is a lot better at handling trees at the kinds of sizes we have.
Best Practical, maker of the popular request tracking system, "RT," are happy users of SVK. In fact, SVK enables them to effectively maintain many parallel branches, which they tell me used to be a bit of a nightmare for such a small shop.
I am also told that at Apple Computer, there is an entire team using SVK exclusively.
ED: The work being done by Canonical with Bazaar follows a similar sort of path to SVK: decentralization, easy merging. Where do you see SVK in comparison to this and other arch-based systems?
CLK: One major difference is that we are using the Subversion file system as a storage format and can talk to Subversion repositories natively.
Subversion is probably the most popular centralized version control system besides CVS. This means we benefit from the stability and the improvement from the Subversion team and contributors.
SVK has been assimilating many nice features we've found in other systems. For example, we're about ready to roll out a new interactive commit feature, based on the one found in Darcs. It makes it easy to commit only a subset of your outstanding changes by prompting you for each "chunk" of change in each file.
In the past, we've adapted smart merge functionality based on the original design in arch, Perforce-style depot paths and interactive conflict resolution, and we're working on patch-algebra from Darcs. We're also watching Bram Cohen's Codeville Precise Merge as a possible even-smarter-than-smart merge.
We're always on the lookout for new technologies to make SVK an even better tool for our users.
Edd Dumbill is co-chair of the O'Reilly Open Source Convention. He is also chair of the XTech web technology conference. Edd conceived and developed Expectnation, a hosted service for organizing and producing conferences. Edd has also been Managing Editor for XML.com, a Debian developer, and GNOME contributor. He writes a blog called Behind the Times.
Return to the O'Reilly Network