1. 20 5月, 2008 1 次提交
    • P
      gitk: Fix bug where current row number display stops working · 94b4a69f
      Paul Mackerras 提交于
      The display of the current row number would stop working if the user
      clicked on a line, or if selectedline got unset for any other reason,
      because the trace on it got lost when it was unselected.  This fixes
      it by changing the places that unset selectedline to set it to the
      empty string instead, and the places that tested for it being set or
      unset to compare it with the empty string.  Thus it never gets unset
      now.  This actually simplified the code in a few places since it can
      be compared for equality with a row number now without first testing
      if it is set.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      94b4a69f
  2. 19 5月, 2008 2 次提交
  3. 12 5月, 2008 1 次提交
  4. 11 5月, 2008 3 次提交
    • P
      gitk: Show current row number and total number of rows · 6df7403a
      Paul Mackerras 提交于
      This adds a couple of fields in the bar just below the upper panes
      that show the row number of the currently selected commit, and how
      many rows are displayed in total.  The latter increments as commits
      are read in, and thus functions to show that progress is being made.
      This therefore also removes the code that showed progress using a
      green oscillating bar in the progress bar window (which some people
      disliked).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6df7403a
    • P
      Merge branch 'master' into dev · e8a0c69b
      Paul Mackerras 提交于
      e8a0c69b
    • T
      gitk: Allow users to view diffs in external diff viewer · 314f5de1
      Thomas Arcila 提交于
      This allows gitk to run an external diff viewer such as meld.
      
      Right-click on a file in the file list view gives "External diff"
      popup menu entry, which launches the selected external diff tool.
      The menu entry is only active in "Patch" mode, not in "Tree" mode.
      
      The program to run to display the diff is configurable through
      Edit/Preference/External diff tool.  The program is run with two
      arguments, being the names of files containing the two versions to
      diff.  Gitk will create temporary directories called
      .gitk-tmp.<pid>/<n> to place these files in, and remove them when
      it's finished.
      
      If the file doesn't exist in one or other revision, gitk will supply
      /dev/null as the name of the file on that side of the diff.  This may
      need to be adjusted for Windows or MacOS.
      
      [paulus@samba.org - cleaned up and rewrote some parts of the patch.]
      Signed-off-by: NThomas Arcila <thomas.arcila@gmail.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      314f5de1
  5. 10 5月, 2008 1 次提交
    • P
      gitk: Synchronize highlighting in file view for 'f' and 'b' commands · f4c54b3c
      Paul Mackerras 提交于
      This is based on a patch by Eric Raible <raible@gmail.com>, but does
      things a bit more simply.
      
      Previously, 'b', backspace, and delete all did the same thing.
      This changes 'b' to perform the inverse of 'f'.  And both of
      them now highlight the filename of the currently diff.
      
      This makes it easier to review and navigate the diffs associated
      with a particular commit using only f, b, and space because the
      filename of the currently display diff will be dynamically
      highlighted.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f4c54b3c
  6. 09 5月, 2008 1 次提交
    • P
      gitk: Make updates go faster · ee66e089
      Paul Mackerras 提交于
      This goes back to the method of doing updates where we translate the
      revisions we're given to SHA1 ids and then remove the ones we've asked
      for before or that we've already come across.  This speeds up updates
      enormously in most cases since it means git log doesn't have to traverse
      large parts of the tree.  We used to do this, but it had bugs, and commit
      468bcaed (gitk: Don't filter view
      arguments through git rev-parse) went to the slower method to avoid the
      bugs.
      
      In order to do this properly, we have to parse the command line and
      understand all the flag arguments.  So this adds a parser that checks
      all the flag arguments.  If there are any we don't know about, we
      disable the optimization and just pass the whole lot to git log
      (except for -d/--date-order, which we remove from the list).
      
      With this we can then use git rev-parse on the non-flag arguments to
      work out exactly what SHA1 ids are included and excluded in the list,
      which then enables us to ask for just the new ones when updating.
      One wrinkle is that we have to turn symmetric diff arguments (of the
      form a...b) back into symmetric diff form so that --left-right still
      works, as git rev parse turns a...b into a b ^merge_base(a,b).
      
      This also updates a couple of copyright notices.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      ee66e089
  7. 03 5月, 2008 3 次提交
  8. 02 5月, 2008 3 次提交
  9. 28 4月, 2008 1 次提交
    • P
      gitk: Fix handling of tree file list with special chars in names · f31fa2c0
      Paul Mackerras 提交于
      Alex Riesen pointed out that displaying a commit in 'tree' mode fails
      if some files have names with special characters such as '{' or '}' in
      them, due to the fact that we treat the line returned from git ls-tree
      as a Tcl list at one point.
      
      This fixes it by doing what I originally intended but didn't quite
      get right.  We split the line from git ls-tree at the first tab and
      treat the part before the tab as a list (which is OK since it doesn't
      have special characters in it) and the part after the tab as the
      filename.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f31fa2c0
  10. 26 4月, 2008 1 次提交
    • P
      gitk: Reorganize processing of arguments for git log · 3ed31a81
      Paul Mackerras 提交于
      This moves the scanning of the argument list for each view into a
      new function, parseviewargs, which is called from start_rev_list.
      This also makes the date mode and the merge mode be per-view rather
      than global.  In merge mode, we work out the list of relevant files
      in a new function called from start_rev_list, so it will be updated
      on File->Reload.  Plus we now do that after running the argscmd, so
      if we have one and it generates a -d or --merge option they will be
      correctly handled now.
      
      The other thing this does is to make errors detected in start_rev_list
      not be fatal.  Now instead of doing exit 1 we just pop up and error
      window and put "No commits selected" in the graph pane.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3ed31a81
  11. 06 4月, 2008 1 次提交
    • G
      gitk: Fix changing colors through Edit->Preferences · 80dd7b44
      Gerrit Pape 提交于
      With tcl/tk8.5 the lset command seems to behave differently.  When
      changing the background color through Edit->Preferences, the changes
      are applied, but new dialogs, such as View->New view... barf with
      
       Error: unknown color name "{#ffffff}"
      
      Additionally when closing gitk, and starting it up again, a bad value
      has been saved to ~/.gitk, preventing gitk from running properly; it
      fails with
      
       Error in startup script: unknown color name "{#ffffff}"
       ...
      
      This commit fixes the problem by changing the color dialogs to pass
      the empty string {} as the list index to choosecolor.  This causes
      the lset and lindex commands used by choosecolor to use and set the
      whole variable (bgcolor, fgcolor or selectbgcolor) rather than
      treating them as a 1-element list.  Tested with tcl/tk8.4 and 8.5.
      
      Dmitry Potapov reported this problem through
       http://bugs.debian.org/472615Signed-off-by: NGerrit Pape <pape@smarden.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      80dd7b44
  12. 14 3月, 2008 2 次提交
  13. 11 3月, 2008 3 次提交
  14. 10 3月, 2008 5 次提交
  15. 07 3月, 2008 2 次提交
  16. 04 3月, 2008 2 次提交
  17. 03 3月, 2008 2 次提交
    • P
      gitk: Don't filter view arguments through git rev-parse · 468bcaed
      Paul Mackerras 提交于
      Previously we passed the arguments indicating what commits the user
      wants to view through git rev-parse to get a list of IDs (positive and
      negative), then gave that to git log.  This had a couple of problems,
      notably that --merge and --left-right didn't get handled properly.
      
      Instead we now just pass the original arguments to git log.  When doing
      an update, we append --not followed by the list of commits we have seen
      that have no children, since we have got (or will get) their ancestors
      from the first git log.  If the first git log isn't finished yet, we
      might get some duplicates from the second git log, but that doesn't
      cause any problem.
      
      Also get rid of the unused vnextroot variable.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      468bcaed
    • P
      gitk: Fix problems with target row stuff · ac1276ab
      Paul Mackerras 提交于
      Occasionally the target row stuff would scroll the display to some
      uninteresting commit while reading.  There were two problems: one
      was that drawvisible would set targetrow even if there was no target
      previously and no row selected, and the other was that it was possible
      for the target row to get pushed down past numcommits, if drawvisible
      was called after rows were added but before layoutmore got run.
      
      The first problem is fixed by just not setting targetrow/id unless
      there is a selected row or they were set previously.
      
      The second problem is fixed by updating numcommits immediately new
      rows are added.  This leads to a simplification of layoutmore and
      chewcommits but also means that some of the things that were done in
      layoutmore now need to be done elsewhere, since layoutmore can no
      longer use numcommits to know how much it has seen previously.
      Hence the changes to getcommits, initlayout and setcanvscroll.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      ac1276ab
  18. 24 2月, 2008 1 次提交
    • P
      gitk: Handle updating with path limiting better · f806f0fb
      Paul Mackerras 提交于
      When updating the graph, gitk uses a git log command with commit
      limiting in order to get just the new commits.  When path limiting
      is also in effect, git log rewrites the parents of the commits it
      outputs in order to represent just the subgraph that modifies the
      listed paths, but it doesn't rewrite the parents on the boundary
      of the graph.  The result is that when updating, git log does not
      give gitk the information about where the new commits join in to
      the existing graph.
      
      This solves the problem by explicitly rewriting boundary parents
      when updating.  If we are updating and are doing path limiting,
      then when gitk finds an unlisted commit (one where git log puts a
      "-" in front of the commit ID to indicate that it isn't actually
      part of the graph), then gitk will execute:
      
          git rev-list --first-parent --max-count=1 $id -- paths...
      
      which returns the first ancestor that affects the listed paths.
      (Currently gitk executes this synchronously; it could do it
      asynchronously, which would be more complex but would avoid the
      possibility of the UI freezing up if git rev-list takes a long time.)
      
      Then, if the result is a commit that we know about, we rewrite the
      parents of the children of the original commit to point to the new
      commit.  That is mostly a matter of adjusting the parents and children
      arrays and calling fix_reversal to fix up the graph.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f806f0fb
  19. 18 2月, 2008 1 次提交
    • P
      gitk: Fix bug where arcs could get lost · 841ea824
      Paul Mackerras 提交于
      Because we weren't fixing up vlastins when moving an arc from one
      place to another, it was possible for us later to decide to move
      an arc to the wrong place, and end up with an arc disconnected from
      the rest of the graph.  This fixes it by updating vlastins when
      necessary.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      841ea824
  20. 16 2月, 2008 2 次提交
    • P
      Merge branch 'master' into dev · 585fb598
      Paul Mackerras 提交于
      585fb598
    • P
      gitk: Cope better with getting commits that we have already seen · f1bf4ee6
      Paul Mackerras 提交于
      This fixes a bug in updating the graph after we have cherry-picked
      a commit in gitk and then added some new stuff externally.  First,
      we weren't updating viewincl with the new head added by the cherry-
      pick.  Secondly, getcommitlines was doing bad things if it saw a
      commit that was already in the graph (was already in an arc).  This
      fixes both things.  If getcommitlines sees a commit that is already
      in the graph, it ignores it unless it was not listed before and is
      listed now.  In that case it doesn't assign it a new arc now, and
      doesn't re-add the commit to its arc.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f1bf4ee6
  21. 14 2月, 2008 1 次提交
  22. 13 2月, 2008 1 次提交