1. 12 9月, 2008 1 次提交
  2. 05 9月, 2008 6 次提交
  3. 02 9月, 2008 1 次提交
  4. 25 8月, 2008 3 次提交
  5. 05 8月, 2008 1 次提交
  6. 30 7月, 2008 1 次提交
    • S
      git-gui: Fix gitk search in $PATH to work on Windows · 79317e5d
      Shawn O. Pearce 提交于
      Back in 15430be5 ("Look for gitk in $PATH, not $LIBEXEC/git-core")
      git-gui learned to use [_which gitk] to locate where gitk's script
      is as Git 1.6 will install gitk to $prefix/bin (in $PATH) and all
      of the other tools are in $gitexecdir.
      
      This failed on Windows because _which adds the ".exe" suffix as it
      searches for the program on $PATH, under the assumption that we can
      only execute something from Tcl if it is a proper Windows executable.
      
      When scanning for gitk on Windows we need to omit the ".exe" suffix.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      79317e5d
  7. 27 7月, 2008 1 次提交
  8. 26 7月, 2008 1 次提交
  9. 17 7月, 2008 3 次提交
  10. 08 7月, 2008 1 次提交
  11. 02 7月, 2008 1 次提交
    • J
      git-gui: Implement "Stage/Unstage Line" · 5821988f
      Johannes Sixt 提交于
      This adds a context menu entry below "Stage/Unstage Hunk" that stages or
      unstages just the line under the mouse pointer.
      
      This is by itself useful, for example, if there are unrelated changes in
      the same hunk and the hunk cannot be split by reducing the context.
      
      The feature can also be used to split a hunk by staging a number of
      additions (or unstaging a number of removals) until there are enough
      context lines that the hunk gets split.
      
      The implementation reads the complete hunk that the line lives in, and
      constructs a new hunk by picking existing context lines, removing unneeded
      change lines and transforming other change lines to context lines. The
      resulting hunk is fed through 'git apply' just like in the "Stage/Unstage
      Hunk" case.
      Signed-off-by: NJohannes Sixt <johannes.sixt@telecom.at>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      5821988f
  12. 26 6月, 2008 1 次提交
  13. 21 6月, 2008 1 次提交
  14. 14 6月, 2008 1 次提交
    • A
      git-gui: Move on to the next filename after staging/unstaging a change · 8a965b8e
      Abhijit Menon-Sen 提交于
      Suppose the "Unstaged Changes" pane contains a list of files, and one of
      them is selected (i.e., that diff is currently being displayed). If one
      clicks on the icon to stage the change, git-gui clears the diff and one
      has to click on another filename to see the next diff in the list.
      
      This patch changes that behaviour. If one clicks on the icon to stage
      (or unstage) the file whose diff is being displayed, git-gui will move
      on to the next filename in the list and display that diff instead of a
      blank diff pane. If the selected file was at the end of the list, the
      diff pane will display the previous diff instead; if the selected file
      was the only one listed, the diff pane will become blank.
      
      If no diff is currently being displayed, this patch changes nothing.
      Signed-off-by: NAbhijit Menon-Sen <ams@toroid.org>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      8a965b8e
  15. 22 5月, 2008 1 次提交
    • S
      git-gui: Handle workdir detection when CYGWIN=nowinsymlinks · 7f83aa2d
      Shawn O. Pearce 提交于
      If the user has put nowinsymlinks into their CYGWIN environment
      variable any symlinks created by a Cygwin process (e.g. ln -s)
      will not have the ".lnk" suffix.  In this case workdir is still
      a workdir, but our detection of looking for "info.lnk" fails
      as the symlink is actually a normal file called "info".
      
      Instead we just always use Cygwin's test executable to see if
      info/exclude is a file.  If it is, we assume from there on it
      can be read by git-ls-files --others and is thus safe to use
      on the command line.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      7f83aa2d
  16. 21 5月, 2008 1 次提交
    • S
      git-gui: Add a --trace command line option · 16dd62ac
      Shawn O. Pearce 提交于
      Often new Git users want to know what commands git-gui uses to make
      changes, so they can learn the command line interface by mimicking
      what git-gui does in response to GUI actions.  Showing the direct
      commands being executed is easy enough to implement but this is of
      little value to end-users because git-gui frequently directly calls
      plumbing, not porcelain.
      
      Since the code is already written and tested, its fairly harmless
      to include.  It may not help a new end-user, but it can help with
      debugging git-gui or reverse-engineering its logic to further make
      changes to it or implement another GUI for Git.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      16dd62ac
  17. 09 5月, 2008 1 次提交
    • S
      git-gui: Setup branch.remote,merge for shorthand git-pull · fe70225d
      Shawn O. Pearce 提交于
      When creating new branches if branch.autosetupmerge is not set, or
      is set to true or always and we have been given a remote tracking
      branch as the starting point for a new branch we want to create the
      necessary configuration options in .git/config for the new branch
      so that a no argument git-pull on the command line pulls from the
      remote repository's branch.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      fe70225d
  18. 05 4月, 2008 1 次提交
  19. 04 4月, 2008 1 次提交
  20. 02 4月, 2008 1 次提交
  21. 15 3月, 2008 1 次提交
    • S
      git-gui: Don't translate the special Apple menu · 442b3caa
      Shawn O. Pearce 提交于
      Peter Karlsson pointed out there is no value in translating the
      string "Apple", as this is used as the dummy label for the Apple
      menu on Mac OS X systems.
      
      The Apple menu is actually not the menu with the Apple corporate
      logo, but the menu next to it, which shows the name of the
      application and is typically called the application menu.  Most users
      of git-gui see this menu titled as "Git Gui".  The actual label of
      this menu comes from our Info.plist file and cannot be specified
      by any other means.  Translating this string in the Tcl PO files
      is not necessary.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      442b3caa
  22. 08 3月, 2008 1 次提交
  23. 06 3月, 2008 1 次提交
  24. 20 2月, 2008 1 次提交
  25. 12 2月, 2008 1 次提交
    • S
      git-gui: Automatically spell check commit messages as the user types · 95b002ee
      Shawn O. Pearce 提交于
      Many user friendly tools like word processors, email editors and web
      browsers allow users to spell check the message they are writing
      as they type it, making it easy to identify a common misspelling
      of a word and correct it on the fly.
      
      We now open a bi-directional pipe to Aspell and feed the message
      text the user is editing off to the program about once every 300
      milliseconds.  This is frequent enough that the user sees the results
      almost immediately, but is not so frequent as to cause significant
      additional load on the system.  If the user has modified the message
      text during the last 300 milliseconds we delay until the next period,
      ensuring that we avoid flooding the Aspell process with a lot of
      text while the user is actively typing their message.
      
      We wait to send the current message buffer to Aspell until the user
      is at a word boundary, thus ensuring that we are not likely to ask
      for misspelled word detection on a word that the user is actively
      typing, as most words are misspelled when only partially typed,
      even if the user has thus far typed it correctly.
      
      Misspelled words are highlighted in red and are given an underline,
      causing the word to stand out from the others in the buffer.  This is
      a very common user interface idiom for displaying misspelled words,
      but differs from one platform to the next in slight variations.
      For example the Mac OS X system prefers using a dashed red underline,
      leaving the word in the original text color.  Unfortunately the
      control that Tk gives us over text display is not powerful enough
      to handle such formatting so we have to work with the least common
      denominator.
      
      The top suggestions for a misspelling are saved in an array and
      offered to the user when they right-click (or on the Mac ctrl-click)
      a misspelled word.  Selecting an entry from this menu will replace
      the misspelling with the correction shown.  Replacement is integrated
      with the undo/redo stack so undoing a replacement will restore the
      misspelled original text.
      
      If Aspell could not be started during git-gui launch we silently eat
      the error and run without spell checking support.  This way users
      who do not have Aspell in their $PATH can continue to use git-gui,
      although they will not get the advanced spelling functionality.
      
      If Aspell started successfully the version line and language are
      shown in git-gui's about box, below the Tcl/Tk versions.  This way
      the user can verify the Aspell function has been activated.
      
      If Aspell crashes while we are running we inform the user with an
      error dialog and then disable Aspell entirely for the rest of this
      git-gui session.  This prevents us from fork-bombing the system
      with Aspell instances that always crash when presented with the
      current message text, should there be a bug in either Aspell or in
      git-gui's output to it.
      
      We escape all input lines with ^, as recommended by the Aspell manual
      page, as this allows Aspell to properly ignore any input line that is
      otherwise looking like a command (e.g. ! to enable terse output).  By
      using this escape however we need to correct all word offsets by -1 as
      Aspell is apparently considering the ^ escape to be part of the line's
      character count, but our Tk text widget obviously does not.
      
      Available dictionaries are offered in the Options dialog, allowing
      the user to select the language they want to spellcheck commit
      messages with for the current repository, as well as the global
      user setting that all repositories inherit.
      
      Special thanks to Adam Flott for suggesting connecting git-gui
      to Aspell for the purpose of spell checking the commit message,
      and to Wincent Colaiuta for the idea to wait for a word boundary
      before passing the message over for checking.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      95b002ee
  26. 21 1月, 2008 1 次提交
    • S
      git-gui: Consolidate hook execution code into a single function · ed76cb70
      Shawn O. Pearce 提交于
      The code we use to test if a hook is executable or not differs on
      Cygwin from the normal POSIX case.  Rather then repeating that for
      all three hooks we call in our commit code path we can place the
      common logic into a global procedure and invoke it when necessary.
      
      This also lets us get rid of the ugly "|& cat" we were using before
      as we can now rely on the Tcl 8.4 feature of "2>@1" or fallback to
      the "|& cat" when necessary.
      
      The post-commit hook is now run through the same API, but its outcome
      does not influence the commit status.  As a result we now show any of
      the errors from the post-commit hook in a dialog window, instead of on
      the user's tty that was used to launch git-gui.  This resolves a long
      standing bug related to not getting errors out of the post-commit hook
      when launched under git-gui.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      ed76cb70
  27. 14 12月, 2007 1 次提交
  28. 08 11月, 2007 1 次提交
  29. 01 11月, 2007 1 次提交
  30. 26 10月, 2007 1 次提交
  31. 17 10月, 2007 1 次提交