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

Re: If you would write git from scratch now, what would you change?

From
Shawn O. Pearce <spearce@spearce.org>
Date
Nov 27, 2007, 01:20 UTC
Message-ID
<20071127012013.GG14735@spearce.org>
In-Reply-To
<e5bfff550711261125i92fb057i85d7217b18cd495d@mail.gmail.com>
Marco Costalba <mcostalba@gmail.com> wrote:
Show 12 quoted lines
> On Nov 26, 2007 5:46 PM, Andy Parkins <andyparkins@gmail.com> wrote:
> > Jakub Narebski wrote:
> >
> > > If you would write git from scratch now, from the beginning, without
> > > concerns for backwards compatibility, what would you change, or what
> > > would you want to have changed?
> >
> >  - "git-gui" would be written in Qt (ducks)
> 
> But...wait...Qt would require...(I'm scared to say!)... that awful,
> painful, hopeless thing called C++. Probably you didn't mean what you
> said ;-)
Heh.

I'll never port git-gui to Qt. Because of that awful, painful thing called C++ that it uses. I despise C++. No, please don't start a C++ language war again on the list. :-)

I recently considered porting git-gui to XUL, as nobody has ever said "Firefox isn't native enough on my OS!". It also (maybe) has the benefit of having a large developer base (everyone and their dog has coded in HTML and Javascript before, except maybe Linus).

But XUL doesn't support launching a process and connecting pipes to its stdin and stdout. I started to try and create an XPCOM extension to provide that functionality from NSPR and started to run into major problems compiling the XPCOM plugin, getting the necessary interfaces implemented, etc.

In the end I was able to recreate the bulk of the main git-gui UI in XUL in just an hour or so, but spent days trying to just do a basic thing like "git diff-index --cached -z HEAD" and consume the result. I never even got that to work so I just gave up on the idea.

So git-gui is in Tcl/Tk for the long-term. However I'm going to try and port git-gui over to the Tcl/Tk 8.5 "tiles" extension (if it is available on your system) so we can get better looking native widgets. I'll still fall back to the old style widgets for Tcl/Tk 8.4 so existing users aren't forced to upgrade to 8.5 just to use the latest git-gui. (But really, 8.5 isn't that hard to build and install...)

-- 
Shawn.
Previous: Marco CostalbaNext: Jakub Narebski
Message 19 of 83 in “If you would write git from scratch now, what would you change?”
  1. Jakub NarebskiNov 25, 2007
  2. Pierre HabouzitNov 25, 2007
  3. Steven WalterNov 26, 2007
  4. Junio C HamanoNov 26, 2007
  5. Adam RobenNov 26, 2007
  6. Carlos RicaNov 26, 2007
  7. Daniel BarkalowNov 26, 2007
  8. Andy ParkinsNov 26, 2007
  9. Benoit SigoureNov 26, 2007
  10. Jan HudecNov 26, 2007
  11. David KastrupNov 26, 2007
  12. Jan HudecNov 26, 2007
  13. Michael PooleNov 26, 2007
  14. Jan HudecNov 26, 2007
  15. Michael PooleNov 26, 2007
  16. Jon SmirlNov 26, 2007
  17. Andy ParkinsNov 26, 2007
  18. Marco CostalbaNov 26, 2007
  19. Shawn O. PearceNov 27, 2007
  20. Jakub NarebskiNov 27, 2007
  21. Shawn O. PearceNov 27, 2007
  22. Johannes SchindelinNov 27, 2007
  23. [RFC] git-gui USer's Survey 2007 (was: If you would write git from scratch now, what would you change?)Jakub Narebski, Nov 27, 2007
  24. Johannes SchindelinNov 28, 2007
  25. Jason SewallNov 28, 2007
  26. Jan HudecNov 28, 2007
  27. Johannes SchindelinNov 28, 2007
  28. Jan HudecNov 29, 2007
  29. Johannes SchindelinNov 29, 2007
  30. Jan HudecNov 30, 2007
  31. Marco CostalbaNov 30, 2007
  32. Shawn O. PearceDec 1, 2007
  33. Marco CostalbaDec 1, 2007
  34. Sergei OrganovNov 28, 2007
  35. Andy ParkinsNov 27, 2007
  36. Marco CostalbaNov 27, 2007
  37. Jan HudecNov 27, 2007
  38. Johannes SchindelinNov 27, 2007
  39. Andy ParkinsDec 4, 2007
  40. Jing XueNov 27, 2007
  41. Jon SmirlNov 26, 2007
  42. David KastrupNov 26, 2007
  43. Jan HudecNov 26, 2007
  44. Benoit SigoureNov 26, 2007
  45. Jan HudecNov 26, 2007
  46. Nicolas PitreNov 26, 2007
  47. David KastrupNov 26, 2007
  48. Jan HudecNov 26, 2007
  49. David KastrupNov 26, 2007
  50. Jan HudecNov 26, 2007
  51. Nicolas PitreNov 26, 2007
  52. Wincent ColaiutaNov 26, 2007
  53. Junio C HamanoNov 26, 2007
  54. Nicolas PitreNov 26, 2007
  55. Junio C HamanoNov 26, 2007
  56. Nicolas PitreNov 26, 2007
  57. Shawn O. PearceNov 27, 2007
  58. Junio C HamanoNov 27, 2007
  59. Steven GrimmNov 27, 2007
  60. Johannes SchindelinNov 26, 2007
  61. Nicolas PitreNov 26, 2007
  62. Johannes SchindelinNov 26, 2007
  63. Andreas EricssonNov 27, 2007
  64. Jakub NarebskiNov 27, 2007
  65. Dana HowNov 26, 2007
  66. Nicolas PitreNov 26, 2007
  67. Dana HowNov 26, 2007
  68. Nicolas PitreNov 26, 2007
  69. Dana HowNov 26, 2007
  70. Nicolas PitreNov 26, 2007
  71. Jakub NarebskiNov 26, 2007
  72. Dana HowNov 26, 2007
  73. Shawn O. PearceNov 27, 2007
  74. Nicolas PitreNov 27, 2007
  75. Shawn O. PearceNov 27, 2007
  76. Junio C HamanoNov 27, 2007
  77. Shawn O. PearceNov 27, 2007
  78. Jakub NarebskiNov 27, 2007
  79. C# binding, was Re: If you would write git from scratch now, what would you change?Johannes Schindelin, Nov 27, 2007
  80. Nicolas PitreNov 27, 2007
  81. Dana HowNov 27, 2007
  82. Shawn O. PearceNov 27, 2007
  83. Linus TorvaldsNov 27, 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.