>linuxsymposium

July 19th ~ 22nd, 2006, Ottawa, Canada

Registration

Call For Papers
Register/Login

Content

Schedule
Speaker Guide
Presentations
Tutorials
BOFS

Related

Sponsors
Venue
Travel
FAQ

Archives

Proceedings
Photos
2005
2004
2003
2002
2001
2000
1999

Contacts

Information
Home

Towards a Better SCM: Revlog and Mercurial

Large projects need scalable, performant, and robust software configuration management systems. If common revision control operations are not cheap, they present a large barrier to proper software engineering practice. This paper will investigate the theoretical limits on SCM performance, and examines how existing systems fall short of those ideals.

I then describe the Revlog data storage scheme created for the Mercurial SCM. The Revlog scheme allows all common SCM operations to be performed in near-optimal time, while providing excellent compression and robustness. The results of our experiments with delta generation and application algorithms are also shared, with some surprises.

Finally, I look at how a full distributed SCM (Mercurial) is built on top of the Revlog scheme, some of the pitfalls we've surmounted in on-disk layout and I/O performance and the protocols used to efficiently communicate between repositories.

These results should hopefully stimulate further discussion of algorithms and performance in the growing field of SCM systems.



Major Sponsors




Minor Sponsors



Wireless

Supporters



register | login | call for papers | schedule | talks | tutorials | bofs | venue | travel | faq | link us | sponsors | contact | home

Copyright © 2007 Linux Symposium Inc. All rights reserved.
Linux is a registered trademark of Linus Torvalds.