1. 23 10月, 2007 3 次提交
    • P
      gitk: Fix some bugs with path limiting in the diff display · bd8f677e
      Paul Mackerras 提交于
      First, we weren't putting "--" between the ids and the paths in the
      git diff-tree/diff-index/diff-files command, so if there was a tag
      and a file with the same name, we could get an ambiguity in the
      command.  This puts the "--" in to make it clear that the paths are
      paths.
      
      Secondly, this implements the path limiting for merge diffs as well
      as the normal 2-way diffs.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      bd8f677e
    • P
      gitk: Ensure tabstop setting gets restored by Cancel button · 94503918
      Paul Mackerras 提交于
      We weren't restoring the tabstop setting if the user pressed the
      Cancel button in the Edit/Preferences window.  Also improved the
      label for the checkbox (made it "Tab spacing" rather than the laconic
      "tabstop") and moved it above the "Display nearby tags" checkbox.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      94503918
    • P
      gitk: Limit diff display to listed paths by default · 7a39a17a
      Paul Mackerras 提交于
      When the user has specified a list of paths, either on the command line
      or when creating a view, gitk currently displays the diffs for all files
      that a commit has modified, not just the ones that match the path list.
      This is different from other git commands such as git log.  This change
      makes gitk behave the same as these other git commands by default, that
      is, gitk only displays the diffs for files that match the path list.
      
      There is now a checkbox labelled "Limit diffs to listed paths" in the
      Edit/Preferences pane.  If that is unchecked, gitk will display the
      diffs for all files as before.
      
      When gitk is run with the --merge flag, it will get the list of unmerged
      files at startup, intersect that with the paths listed on the command line
      (if any), and use that as the list of paths.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7a39a17a
  2. 21 10月, 2007 1 次提交
    • P
      gitk: Fix "can't unset prevlines(...)" Tcl error · e5ef6f95
      Paul Mackerras 提交于
      This fixes the error reported by Michele Ballabio, where gitk will
      throw a Tcl error "can't unset prevlines(...)" when displaying a
      commit that has a parent commit listed more than once, and the commit
      is the first child of that parent.
      
      The problem was basically that we had two variables, prevlines and
      lineends, and were relying on the invariant that prevlines($id) was
      set iff $id was in the lineends($r) list for some $r.  But having
      a duplicate parent breaks that invariant since we end up with the
      parent listed twice in lineends.
      
      This fixes it by simplifying the logic to use only a single variable,
      lineend.  It also rearranges things a little so that we don't try to
      draw the line for the duplicated parent twice.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e5ef6f95
  3. 20 10月, 2007 4 次提交
    • P
      gitk: Avoid an error when cherry-picking if HEAD has moved on · 3ebba3c7
      Paul Mackerras 提交于
      This fixes an error reported by Adam Piątyszek: if the current HEAD
      is not in the graph that gitk knows about when we do a cherry-pick
      using gitk, then gitk hits an error when trying to update its
      internal representation of the topology.  This avoids the error by
      not doing that update if the HEAD before the cherry-pick was a
      commit that gitk doesn't know about.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3ebba3c7
    • P
      gitk: Check that we are running on at least Tcl/Tk 8.4 · 5d7589d4
      Paul Mackerras 提交于
      This checks that we have Tcl/Tk 8.4 or later, and puts up an error
      message in a window and quits if not.
      
      This was prompted by a patch submitted by Steffen Prohaska, but is
      done a bit differently (this uses package require rather than
      looking at [info tclversion], and uses show_error to display the
      error rather than printing it to stderr).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5d7589d4
    • J
      gitk: Do not pick up file names of "copy from" lines · 5e85ec4c
      Johannes Sixt 提交于
      A file copy would be detected only if the original file was modified in the
      same commit. This implies that there will be a patch listed under the
      original file name, and we would expect that clicking the original file
      name in the file list warps the patch window to that file's patch. (If the
      original file was not modified, the copy would not be detected in the first
      place, the copied file would be listed as "new file", and this whole matter
      would not apply.)
      
      However, if the name of the copy is sorted after the original file's patch,
      then the logic introduced by commit d1cb298b (which picks up the link
      information from the "copy from" line) would overwrite the link
      information that is already present for the original file name, which was
      parsed earlier. Hence, this patch reverts part of said commit.
      Signed-off-by: NJohannes Sixt <johannes.sixt@telecom.at>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      5e85ec4c
    • J
      gitk: Add support for OS X mouse wheel · 5dd57d51
      Jonathan del Strother 提交于
      (Väinö Järvelä supplied this patch a while ago for 1.5.2.  It no longer
      applied cleanly, so I'm reposting it.)
      
      MacBook doesn't seem to recognize MouseRelease-4 and -5 events, at all.
      So i added a support for the MouseWheel event, which i limited to Tcl/tk
      aqua, as i couldn't test it neither on Linux or Windows. Tcl/tk needs to
      be updated from the version that is shipped with OS X 10.4 Tiger, for
      this patch to work.
      Signed-off-by: NJonathan del Strother <jon.delStrother@bestbefore.tv>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      5dd57d51
  4. 17 10月, 2007 1 次提交
  5. 29 8月, 2007 1 次提交
  6. 20 8月, 2007 1 次提交
    • P
      gitk: Add a window to list branches, tags and other references · 887c996e
      Paul Mackerras 提交于
      This adds an entry to the File menu labelled "List references" which
      pops up a window showing a sorted list of branches, tags, and other
      references, with a little icon beside each to indicate what sort it
      is.  The list only shows refs that point to a commit that is included
      in the graph, and if you click on a ref, the corresponding commit
      is selected in the main window.  The list of refs gets updated
      dynamically.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      887c996e
  7. 17 8月, 2007 2 次提交
  8. 15 8月, 2007 3 次提交
  9. 13 8月, 2007 2 次提交
    • P
      gitk: Fix bug causing Tcl error when updating graph · a69b2d1a
      Paul Mackerras 提交于
      If "Show nearby tags" is turned off, selecting "Update" from the File
      menu will cause a Tcl error.  This fixes it.  The problem was that
      we were calling regetallcommits unconditionally, but it assumed that
      getallcommits had been called previously.  This also restructures
      {re,}getallcommits to be a bit simpler.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a69b2d1a
    • P
      gitk: Fix bug introduced in commit 67a4f1a7 · 7b459a1c
      Paul Mackerras 提交于
      In fixing the "can't unset idinlist" error, I moved the setting of
      idinlist into the loop that splits the parents into "new" parents
      (i.e. those of which this is the first child) and "old" parents.
      Unfortunately this is incorrect in the case where we hit the break
      statement a few lines further down, since when we come back in,
      we'll see idinlist($p) set for some parents that aren't in the list.
      
      This fixes it by moving the loop that sets up newolds and oldolds
      further down.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7b459a1c
  10. 12 8月, 2007 5 次提交
  11. 27 7月, 2007 1 次提交
  12. 26 7月, 2007 1 次提交
    • P
      gitk: Fix bugs in the Find function · 005a2f4e
      Paul Mackerras 提交于
      This fixes the problem reported by Brian Downing where searching for
      a string that doesn't exist would give a Tcl error.  The basic problem
      was that we weren't reading the data for the last commit since it
      wasn't terminated with a null.  This effectively adds a null on the end
      (if there isn't one already) to make sure we process the last commit.
      
      This also makes the yellow background behind instances of the search
      string appear more consistently, and fixes a bug where the "/" key
      would just find the same commit again and again instead of advancing.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      005a2f4e
  13. 23 7月, 2007 1 次提交
    • P
      gitk: Wait for the window to become visible after creating it · 0eafba14
      Paul Mackerras 提交于
      When the git log process returned an error immediately, we were
      sometimes getting no main window and no error window displayed,
      with the gitk process just hanging waiting for something.  It appears
      that the tkwait in show_error, which waits for the error window to
      be destroyed, wasn't sufficient to allow the main window or the error
      window to be mapped.
      
      This adds a wait in the main startup code after the main window
      has been created to wait until it is visible.  This seems to fix the
      problem.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0eafba14
  14. 22 7月, 2007 3 次提交
  15. 13 7月, 2007 2 次提交
    • P
      gitk: Show changes in index and changes in working directory separately · 8f489363
      Paul Mackerras 提交于
      This makes gitk show up to two fake commits when there are local changes
      in the repository; one to represent the state of the index and one to
      represent the state of the working directory.  The commit representing
      the working directory is colored red as before; the commit representing
      the index state is colored magenta (as being between red and blue in
      some sense).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8f489363
    • P
      gitk: Fix bug introduced by previous commit · 6ebedabf
      Paul Mackerras 提交于
      When I added the "--" case to the code scanning the arguments, I missed
      the fact that since the switch statement uses -regexp, the "--" case
      will match any argument containing "--", e.g. "--all".  This fixes it
      by taking out the -regexp (since we don't actually need regular
      expression matching) and adjusting the match strings.
      
      A side effect of this is that previously any argument starting with
      "-d" would be taken to indicate date mode; now the argument has to be
      exactly "-d" if you want date mode.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6ebedabf
  16. 12 7月, 2007 1 次提交
    • P
      gitk: Improve handling of -- and ambiguous arguments · cdaee5db
      Paul Mackerras 提交于
      This makes gitk more consistent with git rev-list and git log in its
      handling of arguments that could be either a revision or a filename;
      now gitk displays an error message and quits, rather than treating it
      as a revision and getting an error in the underlying git log.  Now
      gitk always passes "--" to git log even if no filenames are being
      specified.
      
      It also makes gitk display errors in invoking git log in a window
      rather than on stderr, and makes gitk stop looking for a -d flag
      when it sees a "--" argument.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      cdaee5db
  17. 09 7月, 2007 3 次提交
    • P
      gitk: Use git log and add support for --left-right · c961b228
      Paul Mackerras 提交于
      This is based on patches from Linus Torvalds and Junio Hamano, so the
      ideas here are theirs.
      
      This makes gitk use "git log -z --pretty=raw" instead of "git rev-list"
      to generate the list of commits, and also makes it grok the "<" and ">"
      markers that git log (and git rev-list) output with the --left-right
      flag to indicate which side of a symmetric diff a commit is reachable
      from.  Left-side commits are drawn with a triangle pointing leftwards
      instead of a circle, and right-side commits are drawn with a triangle
      pointing rightwards.  The commitlisted list is used to store the
      left/right information as well as the information about whether each
      commit is on the boundary.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c961b228
    • P
      gitk: Fix bug causing "can't read commitrow(0,n)" error · 8c93917d
      Paul Mackerras 提交于
      In commit 66e46f37 I changed gitk to
      store ids in rowrangelist and idrowranges rather than row numbers,
      but I missed two places in the layouttail procedure.  This resulted
      in occasional errors such as the "can't read "commitrow(0,8572)":
      no such element in array" error reported by Mark Levedahl.  This fixes
      it by using the id rather than the row number.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8c93917d
    • B
      [PATCH] gitk: Fix for tree view ending in nested directories · 096e96b4
      Brian Downing 提交于
      Unroll the prefix stack when assigning treeheights when leaving
      proc treeview.  Previously, when the ls-tree output ended in
      multiple nested directories (for instance in a repository with a
      single file "foo/bar/baz"), $treeheight("foo/bar/") was assigned
      twice, and $treeheight("foo/") was never assigned.  This led to
      an error when expanding the "foo" directory in the gitk treeview.
      Signed-off-by: NBrian Downing <bdowning@lavos.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      096e96b4
  18. 04 7月, 2007 3 次提交
    • P
      gitk: Remove the unused stopfindproc function · d36d385e
      Paul Mackerras 提交于
      This was a hangover from before the "Files" and "Pickaxe" parts of
      the Find function were moved to the highlight facility in commit
      60f7a7dc.  It serves no useful
      purpose any more, so this removes it.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d36d385e
    • P
      gitk: Fix bug in the anc_or_desc routine · 69c0b5d2
      Paul Mackerras 提交于
      I missed the case where both nodes have no children and therefore
      have no incoming arcs.  This fixes it.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      69c0b5d2
    • P
      gitk: Fix the find and highlight functions · 4fb0fa19
      Paul Mackerras 提交于
      This reworks the way that the "Find" button (and the /, ?, ^F, and ^G
      keys) works.  Previously, pressing the "Find" button would cause gitk
      to go off and scan through every commit to see which commits matched,
      and the user interface was completely unreponsive during that time.
      Now the searching is done in chunks using the scheduler, so the UI
      still responds, and the search stops as soon as a matching commit is
      found.
      
      The highlighting of matches using a yellow background is now done in
      the commit-drawing code and the highlighting code.  This ensures that
      all the commits that are visible that match are highlighted without
      the search code having to find them all.
      
      This also fixes a bug where previously-drawn commits that need to be
      highlighted were not being highlighted.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      4fb0fa19
  19. 28 6月, 2007 2 次提交