[RFC] git-gui: A commit / fetch / push interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.  :)

-- 
Shawn.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]