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

gitk and git-gui, was Re: FFmpeg considering GIT

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
May 8, 2007, 11:16 UTC
Message-ID
<Pine.LNX.4.64.0705081311550.4167@racer.site>
In-Reply-To
<20070508041939.GK11311@spearce.org>
Hi,
On Tue, 8 May 2007, Shawn O. Pearce wrote:
Show 11 quoted lines
> Paul Mackerras <paulus@samba.org> wrote:
>
> > Gitk ends up handling pretty significant amounts of data.  In 
> > particular the per-commit data can get to gigabytes, and processing it 
> > is pretty cpu-intensive.  I did try using namespaces for the 
> > per-commit data but I found that the performance hit to be more than I 
> > was willing to tolerate.
> 
> If that is the case then an obvious direction is to start using C for 
> the actual Git operations/datastore and Tcl/Tk for the basic UI layout 
> and event handlers.

It might be a much better idea to write something a la git-fetch--tool, which is a helper in C (thus very fast and memory efficient), outputting easily parseable data.

For example, when constructing the commit graph, the calculations could be done in C, and Tcl/Tk could do _just_ the display. AFAIK tig already has the algorithm implemented in C...

The big benefits would not only be that you can compile this without the headers/libs of Tcl/Tk (possibly avoiding the problem we experienced when trying to compile Git with gcc, and linking to Perl, which was compiled with a different compiler), but other Git viewers could take this output as well, avoiding reimplementing the algorithm in Ruby or Haskell.

Ciao, Dscho

Previous: Shawn O. PearceNext: Linus Torvalds
Message 4 of 5 in “Re: FFmpeg considering GIT”
  1. Brett SchwarzMay 8, 2007
  2. Paul MackerrasMay 8, 2007
  3. Shawn O. PearceMay 8, 2007
  4. gitk and git-gui, was Re: FFmpeg considering GITJohannes Schindelin, May 8, 2007
  5. Linus TorvaldsMay 8, 2007

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.