Hey Everyone,
I am proud to announce the first pre-release of Pyrite 0.01prealpha. You can pull from git://gitorious.org/pyrite/mainline.git or http://git.gitorious.org/pyrite/mainline.git ( I think I will use gitorious for hosting since tuxfamily doesn't have an http clones, although I will sort-of miss the RSS feed).
Why such a timid name? This is because it has taken me longer than I wanted to reach a point where I felt others could reasonably use and contribute to the project. There is still much work to be done before it is ready for a general purpose release. However, I need to see if people are really interested in both helping develop and, more importantly, using Pyrite and I feel that getting a release out there will help me gauge that.
When I started this project, I had a good idea of what I wanted to accomplish but I wasn't entirely sure how I would do it. At this point I have an idea of how the interface should be presented and I will work to get it right. I hope people will have input on what improvements they would like to see to the UI.
Other things that I want to do before making a general purpose release is to tie up some loose ends like proper rebasing and a graphical merge tool (at least support for external merge tools). That's just the tip of the iceberg though since I have plans to also do a gui and a web interface.
Feel free to contact me about this if you are interested in using, testing or developing.
Thanks,
Govind.
Update:
I got several responses about how the announcement was short on
details. You guys are absolutely right, I blame the benedryl and the late
hour. Anyways...
Pyrite, in its current form, is a git porcelain. Its focus is to reduce the
learning curve, increase portability and, basically, make it as easy to
use as possible. I say "in its current form" because this is simply the
first stage of Pyrite's development. When Pyrite is complete I expect
that it will a cross between a porcelain and a python re-implementation
(similar to what the egit/jgit folks are doing).
I think Pyrite is a good idea for several reasons. First and formost,
there are several SCMs out there that are considered more usable
than git. Hg, bzr and darcs all have a more user friendly reputation
than git. There are even things to be learned (UI wise) from non
distributed systems. However, git would have a very difficult time
making the sort of changes that would be required because they have
an established user base and many people have gotten used to the way
it works currently. Such changes would also break a lot of automation.
Also, git is both plumbing and porcelain and a lot of that shows in the
interfaces. It provides many commands and options that a user would
very likely never use. A project like Pyrite offers a break from the
interface that people can choose to take, leaving those that are used to
git or like the current way of doing things alone.
I think it also offers advantages in terms of portability and ease of
development.
The foreseeable future of Pyrite is this...
0.01) Add a couple of bits of functionality that are think are missing for
general use and make some internal changes to facilitate
development. Also, as I stated above, I now have a better picture
of how I want the command line UI to behave, so I will be changing
options and other things.
0.02) Add the GUI. I have already started work on it, but it is only
about 1/3 done.
0.03) Built in webserver. This is similar to the "hg serve" command. I
think this is a good idea because there are times where it just
isn't worth it to set up a webserver to share your changes.
0.04) Move to using libgit where possible.
0.05) See where it makes sense to the git commands I am using as
python. Things that are already scripts are obvious candidates,
but also things that are simple wrappers over other git
commands.
0.06-1.0) Get feedback from users, fix bugs, add features and repeat.
I hope I was better able to answer people's questions here than in my
previous mail.
Thanks for the feedback,
Govind.
Showing posts with label pyrite dscm scm git hg mercurial. Show all posts
Showing posts with label pyrite dscm scm git hg mercurial. Show all posts
Thursday, April 24, 2008
Friday, January 25, 2008
Introducing Pyrite!
Introducing Pyrite. Combining the best of git and Mercurial.
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.
From Mercurial I like.
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.
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.
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.
Labels:
pyrite dscm scm git hg mercurial
Subscribe to:
Posts (Atom)