1. 23 6月, 2007 11 次提交
    • P
      gitk: Speed up the reading of references · 62d3ea65
      Paul Mackerras 提交于
      We were doing two execs for each tag - one to map the tag ID to a
      commit ID and one to read the contents of the tag for later display.
      This speeds up the process by not reading the contents of the tag
      (instead it is read later if needed), and by using the -d flag to
      git show-ref, which gives us refs/tags/foo^{} lines which give us
      the commit ID.  Also this uses string operations instead of regexps.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      62d3ea65
    • P
      gitk: Show local uncommitted changes as a fake commit · 219ea3a9
      Paul Mackerras 提交于
      If there are local changes in the repository, i.e., git-diff-index HEAD
      produces some output, then this optionally displays an extra row in
      the graph as a child of the HEAD commit (but with a red circle to
      indicate that it's not a real commit).  There is a checkbox in the
      preferences window to control whether gitk does this or not.
      
      Clicking on the extra row shows the diffs between the working directory
      and the HEAD (using git diff-index -p).  The right-click menu on the
      extra row allows the user to generate a patch containing the local diffs,
      or to display the diffs between the working directory and any commit.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      219ea3a9
    • P
      gitk: New algorithm for drawing the graph lines · 322a8cc9
      Paul Mackerras 提交于
      This only draws as much of the graph lines as is visible.  This can
      happen by adding coordinates on to an existing graph line or by
      creating a new line.  This means that we only need to have laid out
      and optimized as much of the graph as is actually visible in order to
      draw it, including the lines (previously we didn't draw a graph
      line until we had laid out and optimized to the end of a segment of
      the line, i.e. down to a down-arrow or to the row where the line's
      commit is displayed).  This also lets us get rid of the linesegends
      list, and gives us an easy workaround for the X server bug that
      causes long lines to be misdrawn.  This also gets rid of the use
      of rowoffsets in drawlineseg et al.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      322a8cc9
    • P
      gitk: Store ids in rowrangelist and idrowranges rather than row numbers · 66e46f37
      Paul Mackerras 提交于
      This removes the need for insertrow to go through rowrangelist and
      idrowranges and adjust a lot of entries.  The first entry for a given
      id is now the row number of the first child, not that row number + 1,
      and rowranges compensates for that so its callers didn't have to
      change.  This adds a ranges argument to drawlineseg so that we can
      avoid calling rowranges a second time inside drawlineseg (all its
      callers already called rowranges).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      66e46f37
    • P
      gitk: Disable the head context menu entries for the checked-out branch · 00609463
      Paul Mackerras 提交于
      Neither the "check out this branch" nor the "remove this branch"
      menu item can be used on the currently-checked out branch, so disable
      them.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      00609463
    • P
      gitk: Cope with commit messages with carriage-returns and initial blank lines · 43c25074
      Paul Mackerras 提交于
      In some repositories imported from other systems we can get carriage
      return characters in the commit message, which leads to a multi-line
      headline being displayed in the summary window, which looks bad.
      Also some commit messages start with one or more blank lines, which
      leads to an empty headline.  This fixes these problems.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      43c25074
    • P
      gitk: Implement a simple scheduler for the compute-intensive stuff · 7eb3cb9c
      Paul Mackerras 提交于
      This allows us to do compute-intensive processing, such as laying out
      the graph, relatively efficiently while also having the GUI be
      reasonably responsive.  The problem previously was that file events
      were serviced before X events, so reading from another process which
      supplies data quickly (hi git rev-list :) could mean that X events
      didn't get processed for a long time.
      
      With this, gitk finishes laying out the graph slightly sooner and
      still responds to the GUI while doing so.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7eb3cb9c
    • P
      gitk: Improve the behaviour of the initial selection · e507fd48
      Paul Mackerras 提交于
      It used to be that if you clicked on a line while gitk was still drawing
      stuff, it would immediately re-select the first line of the display.
      This fixes that.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e507fd48
    • P
      3fc4279a
    • P
      gitk: Don't try to list large numbers of tags or heads in the details pane · 0a4dd8b8
      Paul Mackerras 提交于
      With some large repositories, a commit can end up on thousands of
      branches, which results in an extremely long "Branches:" line in the
      details window, and that results in the window being extremely slow
      to scroll.
      
      This fixes it by just showing "many (N)" after "Branches:", "Follows:"
      or "Precedes:", where N is the number of heads or tags.  The limit
      is currently set at 20 but could be made configurable (and the "many"
      could be a link to pop up a window listing them all in case anyone
      really wants to know).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0a4dd8b8
    • P
      gitk: New infrastructure for working out branches & previous/next tags · e11f1233
      Paul Mackerras 提交于
      Instead of working out descendent heads and descendent & ancestor
      branches in a two-pass algorithm, this reads and stores a simplified
      version of the graph topology, and works out descendent/ancestor
      tags and descendent heads on demand (with a bit of caching).
      
      The advantages of this are, first, that we now don't have to use
      --topo-order on the git rev-list process.  Secondly, we don't have
      to re-read the whole graph when tags or heads change or even when
      the graph changes.  Since we can cope with parents coming before
      children, we can update the graph by running a git rev-list with
      arguments that just give us the new commits, and merge the new
      commits into the simplified graph.
      
      The graph is simplified in the sense that commits with exactly one
      parent and one child (which is >90% of them in most cases) are grouped
      together into arcs joining nodes or 'branch/merge points', which are
      the commits that don't have exactly 1 parent and 1 child.  This reduces
      the size of the graph substantially and decreases the time to traverse
      it correspondingly.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e11f1233
  2. 22 5月, 2007 4 次提交
  3. 19 4月, 2007 1 次提交
  4. 01 4月, 2007 2 次提交
  5. 21 3月, 2007 1 次提交
  6. 12 3月, 2007 1 次提交
  7. 15 2月, 2007 6 次提交
  8. 13 1月, 2007 2 次提交
  9. 23 11月, 2006 1 次提交
    • P
      gitk: Fix enabling/disabling of menu items on Mac OS X · 3cd204e5
      Paul Mackerras 提交于
      It seems that under Mac OS X, the menus get some extra entries (or
      possibly fewer entries), leading to references to entries by an
      absolute number being off.  This leads to an error when invoking
      gitk --all under Mac OS X, because the "Edit view" and "Delete view"
      entries aren't were gitk expects them, and so enabling them gives an
      error.
      
      This changes the code so it refers to menu entries by their content,
      which should solve the problem.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3cd204e5
  10. 19 10月, 2006 1 次提交
  11. 28 8月, 2006 1 次提交
  12. 16 8月, 2006 1 次提交
    • P
      gitk: Improve responsiveness while reading and layout out the graph · d1e46756
      Paul Mackerras 提交于
      This restructures layoutmore so that it can take a time limit and do
      limited amounts of graph layout and graph optimization, and return 1
      if it exceeded the time limit before finishing everything it could do.
      Also getcommitlines reads at most half a megabyte each time, to limit
      the time it spends parsing the commits to about a tenth of a second.
      
      Also got rid of the unused ncmupdate variable while I was at it.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d1e46756
  13. 08 8月, 2006 1 次提交
  14. 06 8月, 2006 1 次提交
  15. 02 8月, 2006 4 次提交
  16. 17 7月, 2006 1 次提交
  17. 06 7月, 2006 1 次提交