1. 24 1月, 2010 2 次提交
    • C
      git-gui: Keep repo_config(gui.recentrepos) and .gitconfig in sync · 3c6a2870
      Christopher Beelby 提交于
      When the number of recent repo's gets to ten there can be a
      situation where an item is removed from the .gitconfig file via
      a call to git config --unset, but the internal representation of
      that file (repo_config(gui.recentrepo)) is not updated.  Then a
      subsequent attempt to remove an item from the list fails because
      git-gui attempts to call --unset on a value that has already
      been removed.  This leads to duplicates in the .gitconfig file,
      which then also cause errors if the git-gui tries to --unset them
      (rather than using --unset-all. --unset-all is not used because it
      is not expected that duplicates should ever be allowed to exist.)
      
      When loading the list of recent repositories (proc _get_recentrepos)
      if a repo in the list is not considered a valid git reposoitory
      then we should go ahead and remove it so it doesn't take up a slot
      in the list (since we limit to 10 items). This will prevent a bunch
      of invalid entries in the list (which are not shown) from making
      valid entries dissapear off the list even when there are less than
      ten valid entries.
      
      See: http://code.google.com/p/msysgit/issues/detail?id=362Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      3c6a2870
    • P
      git-gui: handle really long error messages in updateindex. · ea888f84
      Pat Thoyts 提交于
      As reported to msysGit (bug #340) it is possible to get some very
      long error messages when updating the index. The use of a label to
      display this prevents scrolling the output. This patch replaces the
      label with a scrollable text widget configured to look like a label.
      Signed-off-by: NPat Thoyts <patthoyts@users.sourceforge.net>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      ea888f84
  2. 07 1月, 2010 2 次提交
  3. 07 12月, 2009 1 次提交
  4. 06 12月, 2009 3 次提交
    • A
      git-gui: Increase blame viewer usability on MacOS. · 10852086
      Alexander Gavrilov 提交于
      On MacOS raising a window causes the focus to be transferred
      to it -- although it may actually be a bug in the Tcl/Tk port.
      When this happens with the blame viewer tooltips, it makes
      the interface less usable, because Entry and Leave handlers
      on the text view cause the tip to disappear once the mouse
      is moved even 1 pixel.
      
      This commit makes the code raise the main window on MacOS
      when Tk 8.5 is used. This version seems to properly support
      wm transient by making the tip stay on top of the master,
      so reraising the master does not cause it to disappear. Thus
      the only remaining sign of problems is slight UI flicker
      when focus is momentarily transferred to the tip and back.
      Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      10852086
    • C
      git-gui: search 4 directories to improve statistic of gc hint · 88520cad
      Clemens Buchacher 提交于
      On Windows, git-gui suggests running the garbage collector if it finds
      1 or more files in .git/objects/42 (as opposed to 8 files on other
      platforms). The probability of that happening if the repo contains
      about 100 loose objects is 32%. The probability for the same to happen
      when searching 4 directories is only 8%, which is bit more reasonable.
      
      Also remove $objects_limit from the message, because we already know
      that we are above (or close to) that limit. Telling the user about
      that number does not really give him any useful information.
      
      The following octave script shows the probability for at least m*q
      objects to be found in q subdirectories of .git/objects if n is the
      total number of objects.
      
      q = 4;
      m = [1 2 8];
      n = 0:10:2000;
      
      P = zeros(length(n), length(m));
      for k = 1:length(n)
              P(k, :) = 1-binocdf(q*m-1, n(k), q/(256-q));
      end
      plot(n, P);
      
      n \ q   1       4
      50      18%     1%
      100     32%     8%
      200     54%     39%
      500     86%     96%
      Signed-off-by: NClemens Buchacher <drizzd@aon.at>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      88520cad
    • H
      git gui: make current branch default in "remote delete branch" merge check · c0d15329
      Heiko Voigt 提交于
      We already do the same when locally deleting a branch.
      Signed-off-by: NHeiko Voigt <hvoigt@hvoigt.net>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      c0d15329
  5. 28 10月, 2009 1 次提交
  6. 26 9月, 2009 1 次提交
  7. 13 9月, 2009 1 次提交
  8. 27 8月, 2009 2 次提交
  9. 12 8月, 2009 2 次提交
  10. 10 8月, 2009 3 次提交
  11. 02 5月, 2009 1 次提交
  12. 29 4月, 2009 1 次提交
  13. 08 4月, 2009 4 次提交
  14. 06 4月, 2009 5 次提交
  15. 30 3月, 2009 2 次提交
  16. 25 3月, 2009 2 次提交
  17. 21 3月, 2009 2 次提交
  18. 17 3月, 2009 2 次提交
  19. 10 3月, 2009 1 次提交
    • P
      Append ampersand to "Target" of lnk files created by do_cygwin_shortcut · 880fa117
      Phil Lawrence 提交于
      The git-gui menu item "Repository | Create Desktop Icon" creates a
      shortcut (.lnk file) on the Windows desktop.  The purpose of the
      created shortcut is to make it easy for a user to launch git-gui
      for a particular repo in the future.
      
      A Windows user would expect to see git gui launch when they click
      the shortcut; they would not expect (nor want) to see a cmd window
      open and remain open in the background.
      
      msysGit avoids opening a command window altogether when it's Git GUI
      shortcut is used.  Ideally, git on cygwin would also have shortcuts
      that simply open the GUI, but as a first step, this change allows
      the shell window to politely disappear after starting git gui as a
      background process.
      Signed-off-by: NPhil Lawrence <prlawrence@gmail.com>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      880fa117
  20. 09 2月, 2009 2 次提交
    • A
      git-gui: Support more git version notations. · 764369c5
      Alexander Gavrilov 提交于
      Recently the msysgit repository has got a '1.6.1-msysgit1'
      tag, which, when used to build the git version, is not
      handled gracefully by the git-gui version code.
      
      This patch changes the regular expressions to fix it, and
      removes the hardcoded 'rc' string. Now git-gui can accept
      a version tail like '.foo123.GIT.bar.456.7.g89ab'
      Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      764369c5
    • A
      git-gui: Avoid an infinite rescan loop in handle_empty_diff. · 584fa9cc
      Alexander Gavrilov 提交于
      If the index update machinery and git diff happen to disagree
      on whether a particular file is modified, it may cause git-gui
      to enter an infinite index rescan loop, where an empty diff
      starts a rescan, which finds the same set of files modified,
      and tries to display the diff for the first one, which happens
      to be the empty one. A current example of a possible disagreement
      point is the autocrlf filter.
      
      This patch breaks the loop by using a global counter to track
      the auto-rescans. The variable is reset whenever a non-empty
      diff is displayed.
      
      Another suggested approach, which is based on giving the
      --exit-code argument to git diff, cannot be used, because
      diff-files seems to trust the timestamps in the index, and
      returns a non-zero code even if the file is actually
      unchanged, which essentially defeats the purpose of the
      auto-rescan logic.
      Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      584fa9cc