git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [ANNOUNCE] Pyrite project.

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 26, 2008, 13:21 UTC
Message-ID
<alpine.LSU.1.00.0801261311380.23907@racer.site>
In-Reply-To
<5d46db230801260127pf6f7a2fwfc8f35884a6322e@mail.gmail.com>
Hi,
IIRC it was you who started the c# port of git?  What happened to it?
On Sat, 26 Jan 2008, Govind Salinas wrote:
Show 7 quoted lines
> I am starting a project that I hope some of you will be interested in.
> I have been looking at DSCM tools for a few months now and I have
> come away liking different aspects of different systems.  The project,
> called Pyrite, aims to combine the best features of git and Mercurial.
> 
> Please stop by http://pyrite.sophiasuchtig.com/ to see the
> announcement.  Links to the public repo in there.

I do not like this type of announcement. A link is good on IRC, but on the mailing list you can include a (possibly abbreviated) version of it so that people are not inconvenienced.

So I will quote your linked page, and insert my comments
Show 36 quoted lines
> 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.
> 
> 
>   • 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
> 
> I think it is possible to get the best of both worlds. So I am looking 
> at writing something that will be a git repo at its core, but have 
> Mercurial-like properties for ui and add-ons.
> 
> 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.
> 
> 
>  1. Build a wrapper over git plumbing that allows me to have the user
>     interfaces that I want.
That should be easy enough.
>  2. Help the libification effort in git so that I can use git code straight
>     from python.

That should also be easy enough; there was a GSoC program, and you could just go there and help that effort, instead of reinventing the wheel.

For your convenience:
	http://repo.or.cz/w/git/libgit-gsoc.git
>  3. Start stripping away non-performance-critical C code and convert it to
>     python code to help interoperate with extensions and GUIs

I am absolutely no fan of "extensions". You keep breaking other people's code if your core introduces changes; see for example the libgit.a issue with cgit.

> There are 2 main benefits that I am looking for with git libification. 
> One is, if we can reduce the amount of code that has to be compiled in C 
> to a small enough subset, we should be able to build without the need of 
> Cygwin or Msys.

This effort would be better helped by converting more scripts to builtins, _not_ by reintroducing the dependency on python.

> The other main benefit is that if everything lives in the same process, 
> then we should be able to reduce the overhead for doing some operations 
> that require forking and execing.

We have relatively few fork()s and exec()s by now. Eliminating them would mean that you have to put in a huge effort to undo the one-shot paradigm in a lot of operations.

> As you chain operations you can reuse data in their native structures 
> and not have to re-parse them as they are passed on stdin or the command 
> line.

You might want to look at Han-Wen's git-dump tool (although I think that it is misnamed; something like git-query would be better IMHO).

> 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 expect that Mercurial people will not be happy...

Ciao, Dscho

Previous: Govind SalinasNext: Govind Salinas
Message 4 of 7 in “[ANNOUNCE] Pyrite project.”
  1. Govind SalinasJan 26, 2008
  2. Jakub NarebskiJan 26, 2008
  3. Govind SalinasJan 26, 2008
  4. Johannes SchindelinJan 26, 2008
  5. Govind SalinasJan 26, 2008
  6. Johannes SchindelinJan 26, 2008
  7. Govind SalinasJan 26, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.