Mercurial DVCS storage backend
Short description
Goal of this project is to supply alternative backend to existing flat files. This backend will be based on Mercurial. Letting DVCS store and revision data gives us few advantages:
- storing revision data internally
- atomic operations without permanent page locking on edit (internal hg file locking) - "many editors, one page" scenario
- easy data backup distribution (just clone it)
- data synchronisation between multiple instances (branching and merging)
Such backend should also prove new storage API.
Design
Constraints
- Storage API compliant
- Compatible with wide-spread (stable, vanilla) version of mercurial
- Allowing synchronisation using hg pull/push
- Editable from command line, using plain mercurial (or at least with little help of custom extensions)
Details
Repository layout
Revisions
Metadata
Indexes
Previous ideas
Ideas, which eventually for some reasons didn't fit in current design can be found on /PreviousIdeas
Extensions
Command line manual
Related
configurations docs: Storage2009/HelpOnStorageConfiguration
some notes on mercurial internals can be found on /MercurialNotes
backend todo list: /TodoNotes
Bug reports
Please, do report any problems, performance issues here: /BugReports
Messages
- This rocks!!! I can't wait to see the finished product! We need something like this horribly badly. We have several research vessels with poor intermittent internet connectivity, and we'd like to use a wiki, but we absolutely must have a way to maintain a separate instance on each ship and yet keep them synchronized whenever we have Internet. Contact me if you want help, I'll work on coding and/or testing: jlaughlin at ucsd.ihatespam.edu
We'll keep in touch! -- PawelPacana 2008-08-13 01:06:29