I have been following the Distributed Source Code Management for some time and I think it is a wonderful tool. I have looked extensively at both git and Mercurial and there are several things I like about both of them.
From Git I like.
- Ability to re-write history
- Speed
- Lightweight versatile branches
- Rebasing
- Squashing
From Mercurial I like.
- Easy as pie to set up an ad-hoc web server
- Cross Platform (works well on Winders)
- Extensibility, get full access to repository internals from your own python scripts
- Python, chalk it up to personal taste, but I would rather work in python or another high-level language
Rather than try and re-implement git internals, I think it is best to re-use them. So the project will take place in stages.
- Build a wrapper over git plumbing that allows me to have the user interfaces that I want.
- Help the libification effort in git so that I can use git code straight from python.
- Start stripping away non-performance-critical C code and convert it to python code to help interoperate with extensions and GUIs
Since it will be a git repository in fancy dress, the goal is to keep it fully compatible with git such that you can clone/pull/push to and from a git repository seamlessly. Or even use standard git in your pyrite repository and vice versa.
I have set up a repository on tuxfamily that should be in the links bar on this blog. I don't have an issue tracker or a Wiki yet, but hopefully there will be enough interest in this project that they will become necessary. I will be adding a mailing list too. In the meantime, if you are interested in helping with the project please email me. I also need a logo and I have no artistic talents.
About the name: Pyrite is "fool's gold." I chose the name for a few reasons. Because it's fool's gold, it has some connection to git (an idiot), Because it's a metal, it has some connection to mercurial. Also python projects like to be called pysomething. So the name worked out rather well.