Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: gitgui-0.7.0-r…
Commits on May 8, 2007
  1. Shawn O. Pearce

    git-gui: Use vi-like keys in merge dialog

    spearce authored
    Since we support vi-like keys for scrolling in other UI contexts
    we can easily do so here too.  Tk's handy little `event generate'
    makes this a lot easier than I thought it would be.  We may want
    to go back and fix some of the other vi-like bindings to redirect
    to the arrow and pageup/pagedown keys, rather than running the
    view changes directly.
    
    I've bound 'v' to visualize, as this is a somewhat common thing
    to want to do in the merge dialog.  Control (or Command) Return
    is also bound to start the merge, much as it is bound in the
    main window to activate the commit.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  2. Shawn O. Pearce

    git-gui: Include commit id/subject in merge choices

    spearce authored
    When merging branches using our local merge feature it can be
    handy to know the first few digits of the commit the ref points
    at as well as the short description of the branch name.
    
    Unfortunately I'm unable to use three listboxes in a row, as Tcl
    freaks out and refuses to let me have a selection in more than
    one of them at any given point in time.  So instead we use a
    fixed width font in the existing listbox and organize the data
    into three columns.  Not nearly as nice looking, but users can
    continue to use the listbox's features.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  3. Shawn O. Pearce

    git-gui: Show all possible branches for merge

    spearce authored
    Johannes Sixt pointed out that git-gui was randomly selecting
    which branch (or tag!) it will show in the merge dialog when
    more than one ref points at the same commit.  This can be a
    problem for the user if they want to merge a branch, but the
    ref that git-gui selected to display was actually a tag that
    points at the commit at the tip of that branch.  Since the
    user is looking for the branch, and not the tag, its confusing
    to not find it, and worse, merging the tag causes git-merge to
    generate a different message than if the branch was selected.
    
    While I am in here and am messing around I have changed the
    for-each-ref usage to take advantage of its --tcl formatting,
    and to fetch the subject line of the commit (or tag) we are
    looking at.  This way we could present the subject line in the
    UI to the user, given them an even better chance to select
    the correct branch.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  4. Shawn O. Pearce

    git-gui: Move merge support into a namespace

    spearce authored
    Like the console procs I have moved the code related to merge
    support into their own namespace, so that they are isolated
    from the rest of the world.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  5. Shawn O. Pearce

    git-gui: Allow vi keys to scroll the diff/blame regions

    spearce authored
    Users who are used to vi and recent versions of gitk may want
    to scroll the diff region using vi style keybindings.  Since
    these aren't bound to anything else and that widget does not
    accept focus for data input, we can easily support that too.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  6. Shawn O. Pearce

    git-gui: Move console procs into their own namespace

    spearce authored
    To help modularize git-gui better I'm isolating the code and
    variables required to handle our little console windows into
    their own namespace.  This way we can say console::new rather
    than new_console, and the hidden internal procs to create the
    window and read data from our filehandle are off in their own
    private little land, where most users don't see them.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  7. Shawn O. Pearce

    git-gui: Refactor into multiple files to save my sanity

    spearce authored
    I'm finding it difficult to work with a 6,000+ line Tcl script
    and not go insane while looking for a particular block of code.
    Since most of the program is organized into different units of
    functionality and not all users will need all units immediately
    on startup we can improve things by splitting procs out into
    multiple files and let auto_load handle things for us.
    
    This should help not only to better organize the source, but
    it may also improve startup times for some users as the Tcl
    parser does not need to read as much script before it can show
    the UI.  In many cases the user can avoid reading at least half
    of git-gui now.
    
    Unfortunately we now need a library directory in our runtime
    location.  This is currently assumed to be $(sharedir)/git-gui/lib
    and its expected that the Makefile invoker will setup some sort of
    reasonable sharedir value for us, or let us assume its going to be
    $(gitexecdir)/../share.
    
    We now also require a tclsh (in TCL_PATH) to just run the Makefile,
    as we use tclsh to generate the tclIndex for our lib directory.  I'm
    hoping this is not an unncessary burden on end-users who are building
    from source.
    
    I haven't really made any functionality changes here, this is just a
    huge migration of code from one file to many smaller files.  All of
    the new changes are to setup the library path and install the library
    files.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on May 2, 2007
  1. Shawn O. Pearce

    git-gui: Track our own embedded values and rebuild when they change

    spearce authored
    Like core-Git we now track the values that we embed into our shell
    script wrapper, and we "recompile" that wrapper if they are changed.
    This concept was lifted from git.git's Makefile, where a similar
    thing was done by Eygene Ryabinkin.  Too bad it wasn't just done
    here in git-gui from the beginning, as the git.git Makefile support
    for GIT-GUI-VARS was really just because git-gui doesn't do it on
    its own.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  2. Shawn O. Pearce

    git-gui: Refactor to use our git proc more often

    spearce authored
    Whenever we want to execute a git subcommand from the plumbing
    layer (and on rare occasion, the more porcelain-ish layer) we
    tend to use our proc wrapper, just to make the code slightly
    cleaner at the call sites.  I wasn't doing that in a couple of
    places, so this is a simple cleanup to correct that.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  3. Shawn O. Pearce

    git-gui: Use option database defaults to set the font

    spearce authored
    Rather than passing "-font font_ui" to every widget that we
    create we can instead reconfigure the option database for
    all widget classes to use our font_ui as the default widget
    font.  This way Tk will automatically setup their defaults
    for us, and we can reduce the size of the application.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  4. Shawn O. Pearce

    git-gui: Cleanup common font handling for font_ui

    spearce authored
    An earlier change tossed these optionMenu font configurations
    all over the code, when really we can just rename the proc to
    a hidden internal name and provide our own wrapper to install
    the font configuration we really want.
    
    We also don't need to set these option database entries in all
    of the procedures that open dialogs; instead we should just set
    one time, them after we have the font configuration ready for use.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  5. Shawn O. Pearce

    git-gui: Correct line wrapping for too many branch message

    spearce authored
    Since Tk automatically wraps lines for us in tk_messageBox
    widgets we don't need to try to wrap them ourselves.  Its
    actually worse that we linewrapped this here in the script,
    as not all fonts will render this dialog nicely.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  6. Shawn O. Pearce

    git-gui: Warn users before making an octopus merge

    spearce authored
    A coworker who was new to git-gui recently tried to make an octopus
    merge when he did not quite mean to.  Unfortunately in his case the
    branches had file level conflicts and failed to merge with the octopus
    strategy, and he didn't quite know why this happened.  Since most users
    really don't want to perform an octopus merge this additional safety
    valve in front of the merge process is a good thing.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  7. Shawn O. Pearce

    git-gui: Include the subject in the status bar after commit

    spearce authored
    Now that the command line git-commit has made displaying
    the subject (first line) of the newly created commit popular
    we can easily do the same thing here in git-gui, without the
    ugly part of forking off a child process to obtain that first
    line.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  8. Shawn O. Pearce

    Merge branch 'maint'

    spearce authored
    * maint:
      git-gui: Allow spaces in path to 'wish'
  9. Shawn O. Pearce

    git-gui: Allow spaces in path to 'wish'

    spearce authored
    If the path of our wish executable that are running under
    contains spaces we need to make sure they are escaped in
    a proper Tcl list, otherwise we are unable to start gitk.
    
    Reported by Randal L. Schwartz on #git.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Apr 24, 2007
  1. Shawn O. Pearce

    git-gui: Correctly handle UTF-8 encoded commit messages

    spearce authored
    Uwe Kleine-König discovered git-gui mangled his surname and did
    not send the proper UTF-8 byte sequence to git-commit-tree when
    his name appeared in the commit message (e.g. Signed-Off-By line).
    
    Turns out this was related to other trouble that I had in the past
    with trying to use "fconfigure $fd -encoding $enc" to select the
    stream encoding and let Tcl's IO engine do all of the encoding work
    for us.  Other parts of git-gui were just always setting the file
    channels to "-encoding binary" and then performing the encoding
    work themselves using "encoding convertfrom" and "convertto", as
    that was the only way I could make UTF-8 filenames work properly.
    
    I found this same bug in the amend code path, and in the blame
    display.  So its fixed in all three locations (commit creation,
    reloading message for amend, viewing  message in blame).
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Apr 17, 2007
  1. Shawn O. Pearce

    git-gui: Honor TCLTK_PATH if supplied

    Junio C Hamano authored spearce committed
    Mimick what we do for gitk.  Since you do have a source file,
    git-gui.sh, which is separate from the target, it should be much
    easier in git-gui's Makefile.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  2. Shawn O. Pearce

    Revert "Allow wish interpreter to be defined with TCLTK_PATH"

    spearce authored
    This reverts commit e2a1bc6.
    
    Junio rightly pointed out this patch doesn't handle the
    `make install` target very well:
    
    Junio C Hamano <junkio@cox.net> writes:
    > You should never generate new files in the source tree from
    > 'install' target.  Otherwise, the usual pattern of "make" as
    > yourself and then "make install" as root would not work from a
    > "root-to-nobody-squashing" NFS mounted source tree to local
    > filesystem.  You should know better than accepting such a patch.
Commits on Apr 15, 2007
  1. Shawn O. Pearce

    git-gui: Display the directory basename in the title

    spearce authored
    By showing the basename of the directory very early in the
    title bar I can more easily locate a particular git-gui
    session when I have 8 open at once and my  Windows taskbar
    is overflowing with items.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  2. Shawn O. Pearce

    Merge branch 'er/ui'

    spearce authored
    * er/ui:
      Always bind the return key to the default button
      Do not break git-gui messages into multiple lines.
      Improve look-and-feel of the git-gui tool.
      Teach git-gui to use the user-defined UI font everywhere.
      Allow wish interpreter to be defined with TCLTK_PATH
Commits on Apr 4, 2007
  1. Shawn O. Pearce

    git-gui: Brown paper bag fix division by 0 in blame

    spearce authored
    If we generate a blame status string before we have obtained
    any annotation data at all from the input file, or if the input
    file is empty, our total_lines will be 0.  This causes a division
    by 0 error when we blindly divide by the 0 to compute the total
    percentage of lines loaded.  Instead we should report 0% done.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  2. Shawn O. Pearce

    Always bind the return key to the default button

    spearce authored
    If a dialog/window has a default button registered not every
    platform associates the return key with that button, but all
    users do.  We have to register the binding of the return key
    ourselves to make sure the user's expectations of pressing
    return will activate the default button are met.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  3. Shawn O. Pearce

    Do not break git-gui messages into multiple lines.

    Eygene Ryabinkin authored spearce committed
    Many git-gui messages were broken into a multiple lines to make
    good paragraph width. Unfortunately in reality it breaks the paragraph
    width completely, because the dialog window width does not coincide
    with the paragraph width created by the current font.
    
    Tcl/Tk's standard dialog boxes are breaking the long lines
    automatically, so it is better to make long lines and let the
    interpreter do the job.
    
    Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  4. Shawn O. Pearce

    Improve look-and-feel of the git-gui tool.

    Eygene Ryabinkin authored spearce committed
    Made the default buttons on the dialog active and focused upon the
    dialog appearence.
    
    Bound 'Escape' and 'Return' keys to the dialog dismissal where it
    was appropriate: mainly for dialogs with only one button and no
    editable fields, but on console output dialogs as well.
    
    Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  5. Shawn O. Pearce

    Teach git-gui to use the user-defined UI font everywhere.

    Eygene Ryabinkin authored spearce committed
    Some parts of git-gui were not respecting the default GUI font.
    Most of them were catched and fixed.
    
    Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  6. Shawn O. Pearce

    Allow wish interpreter to be defined with TCLTK_PATH

    Eygene Ryabinkin authored spearce committed
    Makefile got one external option:
    - TCLTK_PATH: the path to the Tcl/Tk interpreter.
    
    Users (or build wrappers) may set this variable to the
    location of the wish executable.
    
    Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Mar 12, 2007
  1. Shawn O. Pearce

    Merge branch 'maint'

    spearce authored
    * maint:
      git-gui: Allow 'git gui version' outside of a repository
      git-gui: Revert "git-gui: Display all authors of git-gui."
      git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."
      git-gui: Allow committing empty merges
  2. Shawn O. Pearce

    git-gui: Allow 'git gui version' outside of a repository

    spearce authored
    I got a little surprise one day when I tried to run 'git gui version'
    outside of a Git repository to determine what version of git-gui was
    installed on that system.  Turns out we were doing the repository
    check long before we got around to command line argument handling.
    
    We now look to see if the only argument we have been given is
    'version' or '--version', and if so, print out the version and
    exit immediately; long before we consider looking at the Git
    version or working directory.  This way users can still get to
    the git-gui version number even if Git's version cannot be read.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  3. Shawn O. Pearce

    git-gui: Revert "git-gui: Display all authors of git-gui."

    spearce authored
    This reverts commit 871f4c9.
    
    Too many users have complained about the credits generator in
    git-gui, so I'm backing the entire thing out.  This revert will
    finish that series.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  4. Shawn O. Pearce

    git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."

    spearce authored
    This reverts commit 92446ab.
    
    Too many users have complained about the credits generator in
    git-gui, so I'm backing the entire thing out.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  5. Shawn O. Pearce

    git-gui: Allow committing empty merges

    spearce authored
    Johannes Sixt noticed that git-gui would not let the user commit
    a merge created by `git merge -s ours` as the ours strategy does
    not alter the tree (that is HEAD^1^{tree} = HEAD^{tree} after the
    merge).  The same issue arises from amending such a merge commit.
    
    We now permit an empty commit (no changed files) if we are doing
    a merge commit.  Core Git does this with its command line based
    git-commit tool, so it makes sense for the GUI to do the same.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Mar 7, 2007
  1. Alex Riesen Shawn O. Pearce

    git-gui: Support of "make -s" in: do not output anything of the build…

    raalkml authored spearce committed
    … itself
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Mar 6, 2007
  1. Shawn O. Pearce

    git-gui: Make 'make' quieter by default

    spearce authored
    To fit nicely into the output of the git.git project's own quieter
    Makefile, we want to make the git-gui Makefile nice and quiet too.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Mar 1, 2007
  1. Shawn O. Pearce

    git-gui: Remove unnecessary /dev/null redirection.

    spearce authored
    Git 1.5.0 and later no longer output useless messages to standard
    error when making the initial (or what looks to be) commit of a
    repository.  Since /dev/null does not exist on Windows in the
    MinGW environment we can't redirect there anyway.  Since Git
    does not output anymore, I'm removing the redirection.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Something went wrong with that request. Please try again.