1. 06 7月, 2007 2 次提交
  2. 04 7月, 2007 1 次提交
  3. 30 6月, 2007 1 次提交
  4. 27 6月, 2007 2 次提交
    • S
      git-gui: Don't require a .pvcsrc to create Tools/Migrate menu hack · 7e508eb1
      Shawn O. Pearce 提交于
      The Tools/Migrate menu option is a hack just for me.  Yes, that's
      right, git-gui has a hidden feature that really only works for me,
      and the users that I support within my day-job's great firewall.
      The menu option is not supported outside of that environment.
      
      In the past we only enabled Tools/Migrate if our special local
      script 'gui-miga' existed in the proper location, and if there
      was a special '.pvcsrc' in the top level of the working directory.
      This latter test for the '.pvcsrc' file is now failing, as the file
      was removed from all Git repositories due to changes made to other
      tooling within the great firewall's realm.
      
      I have changed the test to only work on Cygwin, and only if the
      special 'gui-miga' is present.  This works around the configuration
      changes made recently within the great firewall's realm, but really
      this entire Tools/Migrate thing should be abstracted out into some
      sort of plugin system so other users can extend git-gui as they need.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      7e508eb1
    • S
      git-gui: Don't nice git blame on MSYS as nice is not supported · fffaaba3
      Shawn O. Pearce 提交于
      Johannes Sixt reported that MinGW/MSYS does not have a nice.exe to
      drop the priority of a child process when it gets spawned.  So we
      have to avoid trying to start `git blame` through nice when we are
      on Windows and do not have Cygwin available to us.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      fffaaba3
  5. 22 6月, 2007 1 次提交
    • S
      git-gui: Don't require $DISPLAY just to get --version · 4e817d1a
      Shawn O. Pearce 提交于
      Junio asked that we don't force the user to have a valid X11 server
      configured in $DISPLAY just to obtain the output of `git gui version`.
      This makes sense, the user may be an automated tool that is running
      without an X server available to it, such as a build script or other
      sort of package management system.  Or it might just be a user working
      in a non-GUI environment and wondering "what version of git-gui do I
      have installed?".
      
      Tcl has a lot of warts, but one of its better ones is that a comment
      can be continued to the next line by escaping the LF that would have
      ended the comment using a backslash-LF sequence.  In the past we have
      used this trick to escape away the 'exec wish' that is actually a Bourne
      shell script and keep Tcl from executing it.
      
      I'm using that feature here to comment out the Bourne shell script and
      hide it from the Tcl engine.  Except now our Bourne shell script is a
      few lines long and checks to see if it should print the version, or not.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      4e817d1a
  6. 21 6月, 2007 2 次提交
    • S
      git-gui: Bind Tab/Shift-Tab to cycle between panes in blame · fb626dc0
      Shawn O. Pearce 提交于
      The blame viewer is composed of two different areas, the file
      area on top and the commit area on the bottom.  If users are
      trying to shift the focus it is probably because they want to
      shift from one area to the other, so we just setup Tab and
      Shift-Tab to jump from the one half to the other in a cycle.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      fb626dc0
    • S
      git-gui: Correctly install to /usr/bin on Cygwin · 82a2d6bd
      Shawn O. Pearce 提交于
      Mark Levedahl <mlevedahl@gmail.com> noted that installation on Cygwin
      to /usr/bin can cause problems with the automatic guessing of our
      library location.  The problem is that installation to /usr/bin
      means we actually have:
      
        /usr/bin   = c:\cygwin\bin
        /usr/share = c:\cygwin\usr\share
      
      So git-gui guesses that its library should be found within the
      c:\cygwin\share directory, as that is where it should be relative
      to the script itself in c:\cygwin\bin.
      
      In my first version of this patch I tried to use `cygpath` to resolve
      /usr/bin and /usr/share to test that they were in the same relative
      locations, but that didn't work out correctly as we were actually
      testing /usr/share against itself, so it always was equal, and we
      always used relative paths.  So my original solution was quite wrong.
      
      Mark suggested we just always disable relative behavior on Cygwin,
      because of the complexity of the mount mapping problem, so that's
      all I'm doing.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      82a2d6bd
  7. 12 6月, 2007 3 次提交
    • S
      git-gui: Save geometry before the window layout is damaged · 39fa2a98
      Shawn O. Pearce 提交于
      Because Tk does not assure us the order that it will process
      children in before it destroys the main toplevel we cannot safely
      save our geometry data during a "bind . <Destroy>" event binding.
      The geometry may have already changed as a result of a one or
      more children being removed from the layout.  This was pointed
      out in gitk by Mark Levedahl, and patched over there by commit
      b6047c5a.
      
      So we now also use "wm protocol . WM_DELETE_WINDOW" to detect when
      the window is closed by the user, and forward that close event to
      our main do_quit routine.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      39fa2a98
    • S
      git-gui: Give amend precedence to HEAD over MERGE_MSG · b2f3bb1b
      Shawn O. Pearce 提交于
      Apparently git-commit.sh (the command line commit user interface in
      core Git) always gives precedence to the prior commit's message if
      `commit --amend` is used and a $GIT_DIR/MERGE_MSG file also exists.
      
      We actually were doing the same here in git-gui, but the amended
      message got lost if $GIT_DIR/MERGE_MSG already existed because
      we started a rescan immediately after loading the prior commit's
      body into the edit buffer.  When that happened the rescan found
      MERGE_MSG existed and replaced the commit message buffer with the
      contents of that file.  This meant the user never saw us pick up
      the commit message of the prior commit we are about to replace.
      
      Johannes Sixt <J.Sixt@eudaptics.com> found this bug in git-gui by
      running `git cherry-pick -n $someid` and then trying to amend the
      prior commit in git-gui, thus combining the contents of $someid
      with the contents of HEAD, and reusing the commit message of HEAD,
      not $someid.  With the recent changes to make cherry-pick use the
      $GIT_DIR/MERGE_MSG file Johannes saw git-gui pick up the message
      of $someid, not HEAD.  Now we always use HEAD if we are amending.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      b2f3bb1b
    • S
      git-gui: Include 'war on whitespace' fixes from git.git · 615b8653
      Shawn O. Pearce 提交于
      Earlier git.git applied a large "war on whitespace" patch that was
      created using 'apply --whitespace=strip'.  Unfortunately a few of
      git-gui's own files got caught in the mix and were also cleaned up.
      That was a6080a0a.
      
      This patch is needed in git-gui.git to reapply those exact same
      changes here, otherwise our version generator script is unable to
      obtain our version number from git-describe when we are hosted in
      the git.git repository.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      615b8653
  8. 08 6月, 2007 1 次提交
  9. 06 6月, 2007 27 次提交
    • S
      git-gui: Favor the original annotations over the recent ones · 0f32da53
      Shawn O. Pearce 提交于
      Usually when you are looking at blame annotations for a region of
      a file you are more interested in why something was originally
      done then why it is here now.  This is because most of the time
      when we get original annotation data we are looking at a simple
      refactoring performed to better organize code, not to change its
      semantic meaning or function.  Reorganizations are sometimes of
      interest, but not usually.
      
      We now show the original commit data first in the tooltip.  This
      actually looks quite nice as the original commit will usually have an
      author date prior to the current (aka move/copy) annotation's commit,
      so the two commits will now tend to appear in chronological order.
      
      I also found myself to always be clicking on the line of interest
      in the file column but I always wanted the original tracking data
      and not the move/copy data.  So I changed our default commit from
      $asim_data (the simple move/copy annotation) to the more complex
      $amov_data (the -M -C -C original annotation).
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      0f32da53
    • S
      git-gui: Improve our labeling of blame annotation types · 949da61b
      Shawn O. Pearce 提交于
      It feels wrong to call the -M -C -C annotations "move/copy tracking"
      as they are actually the original locations.  So I'm relabeling
      the status bar to show "copy/move tracking annotations" for the
      current file (no -M -C -C) as that set of annotations tells us who
      put the hunk here (who moved/copied it).  I'm now calling the -M
      -C -C pass "original location annotations" as that's what we're
      really digging for.
      
      I also tried to clarify some of the text in the hover tooltip.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      949da61b
    • S
      git-gui: Use three colors for the blame viewer background · 5d198d67
      Shawn O. Pearce 提交于
      To prevent neighboring lines that are different commits from using
      the same background color we now use 3 colors and assign them
      by selecting the color that is not used before or after the line
      in question.  We still color "on the fly" as we receive hunks from
      git-blame, but we delay our color decisions until we are getting
      the original location data (the slower -M -C -C pass) as that is
      usually more fine-grained than the current location data.
      
      Credit goes to Martin Waitz for the tri-coloring concept.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      5d198d67
    • S
      git-gui: Jump to original line in blame viewer · 0dfed77b
      Shawn O. Pearce 提交于
      When the user clicks on a commit link within one of the columns
      in the blame viewer we now jump them not just to that commit/file
      pair but also to the line of the original file.  This saves the
      user a lot of time, as they don't need to search through the new
      file data for the chunk they were previously looking at.
      
      We also restore the prior view when the user clicks the back button
      to return to a pior commit/file pair that they were looking at.
      
      Turned out this was quite tricky to get working in Tk.  Every time
      I tried to jump the text widgets to the correct locations by way
      of the "yview moveto" or "see" subcommands Tk performed the change
      until the current event finished dispatching, and then reset the
      views back to 0, making the change never take place.  Forcing Tk
      to run the pending events before we jump the UI resolves the issue.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      0dfed77b
    • S
      git-gui: Display both commits in our tooltips · 383d4e0f
      Shawn O. Pearce 提交于
      If we have commit data from both the simple blame and the
      rename/move tracking blame and they differ than there is a
      bigger story to tell.  We now include data from both commits
      so that the user can see that this link as moved, who moved
      it, and where it originated from.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      383d4e0f
    • S
      git-gui: Run blame twice on the same file and display both outputs · 172c92b4
      Shawn O. Pearce 提交于
      We now perform two passes over any input file given to the blame
      viewer.  Our first pass is a quick "git-blame" with no options,
      getting the details of how each line arrived into this file.  We
      are specifically ignoring/omitting the rename detection logic as
      this first pass is to determine why things got into the state they
      are in.
      
      Once the first pass is complete and is displayed in the UI we run
      a second pass, using the much more CPU intensive "-M -C -C" options
      to perform extensive rename/movement detection.  The output of this
      second pass is shown in a different column, allowing the user to see
      for any given line how it got to be, and if it came from somewhere
      else, where that is.
      
      This is actually very instructive when run on our own lib/branch.tcl
      script.  That file grew recently out of a very large block of code
      in git-gui.sh.  The first pass shows when I created that file, while
      the second pass shows the original commit information.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      172c92b4
    • S
      git-gui: Display the "Loading annotation..." message in italic · debcd0fd
      Shawn O. Pearce 提交于
      If the user clicks on a line region that we haven't yet received
      an annotation for from git-blame we show them "Loading annotation".
      But I don't want the user to confuse this loading message with a
      commit whose first line is "Loading annotation" and think we messed
      up our display somehow.  Since we never use italics for anything
      else, I'm going with the idea that italic slant can be used to show
      data is missing/elided out at the time being.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      debcd0fd
    • S
      git-gui: Rename fields in blame viewer to better descriptions · fc816d7b
      Shawn O. Pearce 提交于
      Calling the commit message pane $w_cmit is a tad confusing when
      we also have the $w_cgrp column that shows the abbreviated SHA-1s.
      
      So w_cmit -> w_cviewer, as it is the "commit viewer"; and
      w_cgrp -> w_amov as it is the "annotated commit + move tracking"
      column.  Also changed line_data -> amov_data, as that list is
      exactly the results shown in w_amov.
      
      Why call the column "move tracking"?  Because this column holds
      data from "git blame -M -C".  I'm considering adding an additional
      column that holds the data from "git blame" without -M/-C, showing
      who did the copy/move, and when they did it.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      fc816d7b
    • S
      git-gui: Label the uncommitted blame history entry · c5db65ae
      Shawn O. Pearce 提交于
      If the user runs the blame viewer on a working directory file
      instead of a specific commit-ish then we have no value for the
      commit SHA1 or the summary line; this causes the history menu
      to get an empty entry at the very bottom.  We now look for this
      odd case and call the meny entry "Working Directory".
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      c5db65ae
    • S
      git-gui: Switch internal blame structure to Tcl lists · 2f85b7e4
      Shawn O. Pearce 提交于
      The Tcl list datatype is significantly faster to work with than
      the array type, especially if our indexes are a consecutive set
      of numbers, like say line numbers in a file.
      
      This rather large change reorganizes the internal data structure
      of the blame viewer to use a proper Tcl list for the annotation
      information about a line.  Each line is given its own list within
      the larger line_data list, where the indexes correspond to various
      facts about that particular line.
      
      The interface does seem to be more responsive this way, with less
      time required by Tcl to process blame, and to switch to another
      version of the same file.  It could just be a placebo effect, but
      either way most Tcl experts perfer lists for this type of work over
      arrays.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      2f85b7e4
    • S
      git-gui: Cleanup redundant column management in blame viewer · 14c4dfd3
      Shawn O. Pearce 提交于
      The code to handle our three different text widgets is a bit
      on the messy side as we issue the same command on all three
      widgets one at a time.  Adding (or removing) columns from the
      viewer is messy, as a lot of locations need to have the new
      column added into the sequence, or removed from it.
      
      We also now delete the tags we create for each commit when
      we switch to display another "commit:path" pair.  This way the
      text viewer doesn't get bogged down with a massive number of tags
      as we traverse through history.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      14c4dfd3
    • S
      git-gui: Better document our blame variables · c17c1751
      Shawn O. Pearce 提交于
      The array variable "order" used to be used to tell us in what
      order each commit was received in.  Recent changes have removed
      that need for an ordering and the "order" array is now just a
      boolean 'do we have that commit yet' flag.
      
      The colors were moved to fields, so they appear inside of the
      blame viewer instance.  This keeps two different concurrently
      running blame viewers from stepping on each other's ordering
      of the colors in group_colors.
      
      Most of the other fields were moved around a little bit so
      that they are organized by major category and value lifespan.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      c17c1751
    • S
      git-gui: Remove unused commit_list from blame viewer · b6110157
      Shawn O. Pearce 提交于
      This list used to store the commits in the order we received
      them in.  I originally was using it to update the colors of
      the commit before and the commit after the current commit,
      but since that interface concept turned out to be horribly
      ugly and has been removed we no longer need this list.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      b6110157
    • S
      git-gui: Automatically expand the line number column as needed · 81fb7efe
      Shawn O. Pearce 提交于
      After we finish reading a chunk of data from the file stream
      we know how many digits we need in the line number column to
      show the current maximum line number.  If our line number column
      isn't wide enough, we should expand it out to the correct width.
      
      Any file over our default allowance of 5 digits (99,999 lines)
      is so large that the slight UI "glitch" when we widen the column
      out is trivial compared to the time it will take Git to fully do
      the annotations.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      81fb7efe
    • S
      git-gui: Make the line number column slightly wider in blame · 375e1365
      Shawn O. Pearce 提交于
      Most source code files are under 9,999 lines of text, so using a
      field width of 5 characters meant that we should have had one char
      padding on the left edge (because we right-justify the line number).
      Unfortunately when I added the right margin earlier (when I removed
      the padding) I ate into the extra character's space, losing the left
      margin.  This put the line numbers too close to the commit column in
      any file with more than 999 lines in it.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      375e1365
    • S
      git-gui: Use lighter colors in blame view · 000a1069
      Shawn O. Pearce 提交于
      The colors I originally picked out on a Mac OS X system look a
      tad too dark on a Windows 2000 system; the greys are dark enough
      to make it difficult to read some lines of text and the green used
      to highlight the current commit was also difficult to read text on.
      
      I also added a third grey to the mix, to try and help some files
      that wind up with a number of neighboring chunks getting the same
      colors.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      000a1069
    • S
      git-gui: Remove unnecessary space between columns in blame viewer · 06325707
      Shawn O. Pearce 提交于
      On Mac OS X the OS has "features" that like to draw thick black
      borders around the text field that has focus.  This is nice if
      you want to know where your text is going and are blind as a bat,
      but it isn't the best thing to have in a table that is being
      faked through the abuse of Tk text widgets.
      
      By setting our takefocus, highlightthickness and padx/y we can
      get rid of this border and get our text widgets packed right next
      to each other, with no padding between them.  This makes the blame
      background color smoothly run across the entire line of commit data,
      line number and file content.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      06325707
    • S
      git-gui: Remove the loaded column from the blame viewer · 0eab69a4
      Shawn O. Pearce 提交于
      Originally I had placed this loaded column between the line number
      and the file line data to help users know if a particular line has
      received annotation data or not yet.  This way users would know if
      the line(s) they were interested in were ready for viewing, or if
      they still had to wait.  It also was an entertaining way for the
      user to spend their time waiting for git-blame --incremental to
      compute the complete set of annotations.
      
      However it is completely useless now that we show the abbreviated
      commit SHA-1 and author initials in the leftmost column.  That area
      is empty until we get the annotation data, and as soon as we get it
      in we display something there, indicating to the user that there is
      now blame data ready.  Further with the tooltips the user is likely
      to see the data as soon as it comes in, as they are probably not
      keeping their mouse perfectly still.  So I'm removing the field to
      save screen space for more useful things, like file content.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      0eab69a4
    • S
      git-gui: Clip the commit summaries in the blame history menu · b55a243d
      Shawn O. Pearce 提交于
      Some commit lines can get really long when users enter a lot of
      text without linewrapping (for example).  Rather than letting the
      menu get out of control in terms of width we clip the summary to
      the first 50+ characters.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      b55a243d
    • S
      git-gui: Use a label instead of a button for the back button · 08dda17e
      Shawn O. Pearce 提交于
      Apparently Tk on Mac OS X won't draw a button with an image using a
      transparent background.  Instead it draws the button using some sort
      of 3D effect, even though I asked for no relief and no border.  The
      background is also not our orange that we expected it to be.
      
      Earlier I had tried this same trick on Windows and it draws the same
      way as the button did, so I'm going to switch to the label as that
      seems to be more portable.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      08dda17e
    • S
      git-gui: Show original filename in blame tooltip · 79c50bf3
      Shawn O. Pearce 提交于
      If we have two commits right next to each other in the final
      file and they were kept as different blocks in the leftmost
      column then its probably because the original filename was
      different.  To help the user know where they are digging into
      when they click on that link we now show the original file in
      the tooltip, but to save space we do so only if the original
      file is not the same as the file we are currently viewing.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      79c50bf3
    • S
      git-gui: Combine blame groups only if commit and filename match · 669fbc3d
      Shawn O. Pearce 提交于
      Consecutive chunks of a file could come from the same commit, but
      have different original file names.  Previously we would have put
      them into a single group, but then the hyperlink would jump to only
      one of the files, and the other would not be accessible.  Now we can
      get to the other file too.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      669fbc3d
    • S
      git-gui: Allow digging through history in blame viewer · 22c6769d
      Shawn O. Pearce 提交于
      gitweb has long had a feature where the user can click on any
      commit the blame display and go visit that commit's information
      page.  From the user could go get the blame display for the file
      they are tracking, and try to digg through the history of any
      part of the code they are interested in seeing.
      
      We now offer somewhat similiar functionality in git-gui.  The 4
      digit commit abreviation in the first column of our blame view is
      now offered as a hyperlink if the commit isn't the one we are now
      viewing the blame output for (as there is no point in linking back
      to yourself).  Clicking on that link will stop the current blame
      engine (if still running), push the new target commit onto the
      history stack, and restart the blame viewer at that commit, using
      the "original file name" as supplied by git-blame for that chunk
      of the output.
      
      Users can navigate back to a version they had been viewing before
      by way of a back button, which offers the prior commits in a popup
      menu displayed right below the back button.  I'm always showing the
      menu here as the cost of switching between views is very high; you
      don't want to jump to a commit you are not interested in looking at
      again.
      
      During switches we throw away all data except the cached commit data,
      as that is relatively small compared to most source files and their
      annotation marks.  Unfortunately throwing this per-file data away in
      Tcl seems to take some time; I probably should move the line indexed
      arrays to proper lists and use [lindex] rather than the array lookup
      (usually lists are faster).
      
      We now start the git-blame process using "nice", so that its priority
      will drop hopefully below our own.  If I don't do this the blame engine
      gets a lot of CPU under Windows 2000 and the git-gui user interface is
      almost non-responsive, even though Tcl is just sitting there waiting
      for events.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      22c6769d
    • S
      git-gui: Display a progress bar during blame annotation gathering · 982cf98f
      Shawn O. Pearce 提交于
      Computing the blame records for a large file with a long project
      history can take git a while to run; traditionally we have shown
      a little meter in the status area of our blame viewer that lets
      the user know how many lines have been finished, and how far we
      are through the process.
      
      Usually such progress indicators are drawn with a little progress
      bar in the window, where the bar shows how much has been completed
      and hides itself when the process is complete.  I'm using a very
      simple hack to do that: draw a canvas with a filled rectangle.
      
      Of course the time remaining has absolutely no relationship to the
      progress meter.  It could take very little time for git-blame to get
      the first 90% of the file, and then it could take many times that to
      get the remaining 10%.  So the progress meter doesn't really have any
      sort of assurances that it relates to the true progress of the work.
      But in practice on some ugly history it does seem to hold a reasonable
      indicator to the completion status.  Besides, its amusing to watch and
      that keeps the user from realizing git is being somewhat slow.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      982cf98f
    • S
      git-gui: Allow the user to control the blame/commit split point · d0b741dc
      Shawn O. Pearce 提交于
      At one point I tried to present the blame viewer to an audience of
      people on a 640 by 480 pixel LCD projector.  This did not work at
      all as the top area (the file data) was taking up all of the screen
      realestate and the split point was not adjustable by the user.  In
      general locking the user into a specific ratio of display is just
      not user friendly.
      
      So we now place a split pane control into the middle of our blame
      window, so the user can adjust it to their current needs.  If the
      window increases (or decreases) in height we assign the difference
      to the file data area, as that is generally the area of the window
      that users are trying to see more of when they grow the window.
      
      Unfortunately there appears to be a bug in the "pack" layout manager
      in Tcl/Tk 8.4.1.  The status bar and the lower commit pane was being
      squashed if the window decreased in height.  I think the pack manager
      was just not decreasing the size of the panedwindow slave properly if
      the main window shrank.  Switching to the "grid" layout manager fixes
      the problem, but is slightly uglier setup code.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      d0b741dc
    • S
      git-gui: Show author initials in blame groups · 223475a7
      Shawn O. Pearce 提交于
      Frequently when I'm looking at blocks of code in the blame
      viewer I want to know who is the culprit, or who I should
      be praising for a job well done.  The tooltips nicely show
      this if I mouse over a block, but it doesn't work to get
      this detail at a glance.
      
      Since we don't use the leftmost commit column for anything
      after the first line within a commit group I'm now tossing
      the author's initials into that field, right justified.  It
      is quite clearly not a SHA-1 number as we always show the
      SHA-1 in lowercase, while we explicitly select only the
      uppercase characters from an author's name field, and only
      those that are following whitespace.
      
      I'm using initials here over anything else as they are quite
      commonly unique within small development teams.  The leading
      part of the email address field was out for some of the teams
      I work with, as there the email addresses are all of the form
      "Givenname.Surname@initech.com".  That will never fit into the
      4 characters available.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      223475a7
    • S
      git-gui: Space the commit group continuation out in blame view · ddc1fa8f
      Shawn O. Pearce 提交于
      The | in the continued lines of the same commit group as not
      easily seen on the left edge; putting a single space in front
      of the pipe makes it slightly more visually appealing to me as
      I can follow the line down through the group to the next commit
      marker.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      ddc1fa8f