1. 04 4月, 2006 1 次提交
    • P
      gitk: Implement multiple views · 50b44ece
      Paul Mackerras 提交于
      With this, gitk can know about the graphs for multiple sets of files
      and directories of interest.  Each set of files/dirs and its graph is
      called a "view".  There is always the "All files" view, which is the
      complete graph showing all commits.  If files or dirs are specified
      on the command line, a "Command line" view is automatically created.
      Users can create new views and switch between them, and can delete
      any view except the "All files" view.
      
      This required a bit of reengineering.  In particular, some more things
      that were arrays have now become lists.  The idrowranges array is still
      used while the graph is being laid out, but for rows that have been laid
      out we use the rowrangelist list instead.  The cornercrossings and
      crossings arrays no longer exist, and instead we compute the crossings
      when needed (in assigncolor).
      
      Still to be done: make the back/forward buttons switch views as necessary;
      make the updatecommits function work right; preserve the selection if
      possible when the new view has to be read in; fix the case when the user
      switches away from the current view while we are still reading it in
      and laying it out; further optimizations.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      50b44ece
  2. 02 4月, 2006 1 次提交
  3. 31 3月, 2006 3 次提交
  4. 30 3月, 2006 2 次提交
  5. 22 3月, 2006 1 次提交
    • P
      gitk: Fix two bugs reported by users · 7a1d9d14
      Paul Mackerras 提交于
      The first was a simple typo where I put $yc instead of [yc $row].
      The second was that I broke the logic for keeping up with fast
      movement through the commits, e.g. when you select a commit and then
      press down-arrow and let it autorepeat.  That got broken when I
      changed the merge diff display to use git-diff-tree --cc.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7a1d9d14
  6. 18 3月, 2006 4 次提交
  7. 08 3月, 2006 1 次提交
  8. 03 3月, 2006 1 次提交
  9. 02 3月, 2006 2 次提交
    • P
      gitk: Fix a bug in drawing the selected line as a thick line · c934a8a3
      Paul Mackerras 提交于
      If you clicked on a line, so that it was drawn double-thickness,
      and then scrolled to bring on-screen a child that hadn't previously
      been drawn, the lines from it to the selected line were drawn
      single-thickness.  This fixes it so they are drawn double-thickness.
      This also removes an unnecessary setting of phase in drawrest.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c934a8a3
    • P
      gitk: Further speedups · 8ed16484
      Paul Mackerras 提交于
      Now we don't parse the commits as we are reading them, we just put
      commit data on a list as a blob, and instead parse the commit when
      we need the various parts of it, such as when a commit is drawn on
      the canvas.  This makes searching a bit more interesting: now we
      scan through the commit blobs doing a string or regexp match to find
      commits that might match, then for those that might match, we parse
      the commit info (if it isn't already parsed) and do the matching
      for the various fields as before.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8ed16484
  10. 28 2月, 2006 3 次提交
    • P
      gitk: Various speed improvements · 8f7d0cec
      Paul Mackerras 提交于
      This rearranges the code a little to eliminate some procedure calls
      and reduce the number of globals accessed.  It makes rowidlist and
      rowoffsets lists rather than arrays, and removes the lineid array,
      since $lineid($l) was the same as [lindex $displayorder $l], and the
      latter is a little faster.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8f7d0cec
    • P
      gitk: Fix Update menu item · aa81d974
      Paul Mackerras 提交于
      This just does the simple thing of resetting everything, reading all
      the commits, and redoing the whole layout from scratch.  Hopefully
      things are now fast enough that this simple approach is acceptable.
      Also, this fits in better with future plans for adding the ability
      to restrict the tree to just a few files and then expand back to
      the whole tree.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      aa81d974
    • P
      gitk: Fix clicks on arrows on line ends · f6342480
      Paul Mackerras 提交于
      With the new representation of the graph lines, this turns out
      much simpler now.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f6342480
  11. 19 2月, 2006 1 次提交
    • P
      gitk: New improved gitk · 9f1afe05
      Paul Mackerras 提交于
      This is a new version of gitk which is much faster and has much better
      graph layout.  It achieves the speed by only drawing the parts of the
      canvases that are actually visible.  It also draws the commits in the
      order that git-rev-list produces them, so if you use -d, you need to
      have a recent enough git-rev-list that understands the --date-order
      flag.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9f1afe05
  12. 10 2月, 2006 1 次提交
  13. 07 2月, 2006 2 次提交
  14. 07 12月, 2005 1 次提交
  15. 06 12月, 2005 1 次提交
  16. 01 12月, 2005 2 次提交
  17. 30 11月, 2005 1 次提交
  18. 28 11月, 2005 2 次提交
    • J
      [PATCH] gitk: Use i18n.commitencoding configuration item. · 671bc153
      Junio C Hamano 提交于
      Hardcoding "utf-8" in the script breaks projects that use local
      encoding, so allow setting i18n.commitEncoding.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      671bc153
    • P
      gitk: Fix diff this->selected and selected->this functions · d327244a
      Paul Mackerras 提交于
      The change in 8b7e5d76, which makes
      a couple of git-diff-tree calls supply only one id rather than two,
      fixes the display when showing what a single commit did with dense
      revlists, but broke the diff this->selected and diff selected->this
      right-click menu functions.
      
      Yann Dirson pointed this out and had a patch that fixed the diff
      menu functions by passing a "singlecommit" flag around.  This fixes
      it a bit differently, by making the ids and diffids variables be
      either a single id, in the case of showing what a commit did, or
      {oldid newid}, in the case of the diff menu functions.  That way
      we can just pass $ids to git-diff-tree as is.  Most of the changes
      in fact are just reversing the order of ids in $ids and $diffids,
      because they used to be {child parent}, but git-diff-tree requires
      old id before new id.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d327244a
  19. 23 11月, 2005 2 次提交
  20. 21 11月, 2005 1 次提交
  21. 20 11月, 2005 1 次提交
  22. 19 11月, 2005 4 次提交
  23. 15 11月, 2005 1 次提交
    • P
      Add -r flag and some speedups · 232475d3
      Paul Mackerras 提交于
      The -r flag means "rev-list order", i.e. just display the commits
      in the order they come from git-rev-list.
      
      The speedups include:
      - don't process the whole commit line-by-line, only the header
      - don't convert dates when reading the commits, rather do it when
        needed
      - don't do the $canv delete lines.$id in drawlines when drawing the
        graph initially (it was taking a lot of the total time)
      - cache the date conversion for each hour (more important with tk8.5,
        since [clock format] is a lot slower in 8.5 than in 8.4).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      232475d3
  24. 27 10月, 2005 1 次提交
    • L
      [PATCH] Make "gitk" work better with dense revlists · 8b7e5d76
      Linus Torvalds 提交于
      To generate the diff for a commit, gitk used to do
      
      	git-diff-tree -p -C $p $id
      
      (and same thing to generate filenames, except using just "-r" there) which
      does actually generate the diff from the parent to the $id, exactly like
      it meant to do.
      
      However, that really sucks with --dense, where the "parent" information
      has all been rewritten to point to the previous commit. The diff actually
      works exactly right, but now it's the diff of the _whole_ sequence of
      commits all the way to the previous commit that last changed the file(s)
      that we are looking at.
      
      And that's really not what we want 99.9% of the time, even if it may be
      perfectly sensible. Not only will the diff not actually match the commit
      message, but it will usually be _huge_, and all of it will be totally
      uninteresting to us, since we were only interested in a particular set of
      files.
      
      It also doesn't match what we do when we write the patch to a file.
      
      So this makes gitk just show the diff of _that_ commit.
      
      We might even want to have some way to limit the diff to only the
      filenames we're interested in, but it's often nice to see what else
      changed at the same time, so that's secondary.
      
      The merge diff handling is left alone, although I think that should also
      be changed to only look at what that _particular_ merge did, not what it
      did when compared to the faked-out parents.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8b7e5d76