git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] git-gui: A commit / fetch / push interface
@ 2006-11-07  8:36 Shawn Pearce
  2006-11-07  8:58 ` Jakub Narebski
  2006-11-07 22:46 ` Paul Mackerras
  0 siblings, 2 replies; 6+ messages in thread
From: Shawn Pearce @ 2006-11-07  8:36 UTC (permalink / raw)
  To: git; +Cc: paulus

Paul Mackerras originally started a thread about gitool, a graphical
interface for creating commits:

  http://thread.gmane.org/gmane.comp.version-control.git/26415

I liked it and wanted to start making it available to some folks I
work with who are more comfortable with the mouse than they are with
the keyboard.  At first I tried fixing a few of the outstanding bugs
in gitool but I eventually wound up rewriting the thing from scratch.

The git-gui interface looks pretty similar to the gitool interface
(thanks Paul for laying out a such good idea!).  In the top 1/3
of the window there are two panes listing the modified files; the
middle 1/3 shows the diff against HEAD; the bottom 1/3 is used to
edit the commit message.

Clicking on a file icon in the top 1/3 area will update the index
via an update-index call, thereby scheduling the file for commit.
Right now however you can't undo the update (on the TODO list).  :-)

Clicking on a file name will show the diff against HEAD, or a 3 way
diff against HEAD, index and working directory, or just the file's
contents (depending on state of the file).


Major improvements over Paul's original gitool are:

 * Amend the last commit.

 * Merge commits (no merge resolution assitance however).

 * Automatic loading of MERGE_MSG and SQUASH_MSG buffers.

 * Fetch and push available from with the GUI.

 * Start gitk on the current branch.

 * Some useful keyboard bindings (though probably could use more).

 * Proper menus and menubar.

 * Provides status feedback to the user.

 * Prevents the user from doing parallel operations that might
   also affect the current operation (well at least from within
   git-gui anyway).

 * Default geometry works properly on Windows.

 * Stays running if invoked as git-gui; exits immediately after
   commit if invoked as git-citool.

 * Tested on Cygwin/Windows 2000 and Mac OS X.

 * Never crashes with Tcl/Tk errors.

Ok so that last one might be reaching. :-) While trying to improve
gitool I noticed that gitool kept throwing Tcl/Tk errors at various
times.  I had a hard time tracking down most of them.  (This is
one of the reasons I just rewrote it.)  I have yet to break git-gui.

I have posted a repository with the source on pasky's service:

	http://repo.or.cz/w/git-gui.git


My goal is to have enough operations available through git-gui that
the average user won't need to leave it, unless he/she needs to do a
cherry-pick, am, etc. type of operation.  Or they want to browse the
history, in which case they can just start gitk from within git-gui.
I'm hoping to have most of it done this week.  :-)

Suggestions for improvement (or patches!) are most welcome.
Better naming suggestions are also welcome.  :)

-- 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-11-08  6:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-07  8:36 [RFC] git-gui: A commit / fetch / push interface Shawn Pearce
2006-11-07  8:58 ` Jakub Narebski
2006-11-07 22:46 ` Paul Mackerras
2006-11-08  5:46   ` Liu Yubao
2006-11-08  5:55     ` Shawn Pearce
2006-11-08  6:03   ` Shawn Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).