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
- Lightweight versatile branches
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.
From the description here it looks like Pyrite is (will be) something
in between porcelain (SCM layer) like (now deprecated) Cogito, StGit,
Guilt, and plumbings / reimplementation of Git, like jGit/eGit in Java
and (planned?) Widgit in C#, rather than new SCM, isn't it?
Yes, I guess it's going a bit far to say that it's a new SCM since I
will be re-using the git internals. Mostly I said that because I hope
to re-implement large parts of it. It is more than a porcelain layer
though. I prefer to think of it as a system based on both tools.
Post a Comment