This changes the previously zero-width whitespace character used to control the menu item selected when typing a C with the menu open. The previous workaround became very visible on Yosemite, a hair space isn't absolutely invisible but almost so.
Previously, we would wait on TextMate to close before cleaning up the temporary file; however, we may want to avoid this since in the future TextMate may be able kill the process (before closing) and therefore leave behind the file. Also, let's use `TextMate.detach` instead of just `fork` to ensure we detach. This resolves an issue reported on the TextMate mailing list (http://lists.macromates.com/textmate/2014-September/037756.html).
Since we auto populate the textview with the last commit message, we eliminate the need to include the "-- update commit message --" item. This item was used to inform the bundle if the user intended to update the commit message (check) or just use the previous message (uncheck). So now when amending a commit, the commit window will show the last commit message in the textview and a list of potential files only if necessary (i.e., the table view will be empty in situations where the user wanted just to edit the commit message). This behavior is more consistent with the way amending a commit works when running "git commit --amend" from the command line. Also, we now check to see if there is nothing to amend (i.e., it is the initial commit).
This is useful when we would like to discard and not show any potential (html) output that may have been generated up to that point (e.g., canceling an action). Note that all output will be suppressed until "unsupress_output" is called. I.e., calling "flush" will not show the current output buffer.
This reverts commit 12c87d5.
By default, running “git diff” shows local changes that have not yet been staged, so if the user had already added (a version of) the file to the staging area, the diff button would only show changes done since that, which is misleading (as we commit to HEAD not the staging area). A minor issue exists for newly initialized repositories without a HEAD to diff against, here the diff command actually fails, but we ignore the return code and show a blank diff.
When the commit window was a separate program and required siginificant time to launch, it made since to initially send some kind of information to the users via the output window. However, now that the commit window runs as part of the Textmate, it may be a better user experience to delay output until after the commit window is closed.
Git commands like `status` and `log` are now called with additional parameters, so I updated `Git.command_response` mocks accordingly. Also there were some problems with redefined constants and nil strings that seem to be related to Ruby versions > 1.8 (fixes should be backward compatible, though). I commented out "should auto-expand the path when filtering to a relative path" (in `lib/commands/status_spec.rb`), as this feature was (accidentally?) removed in 8ecadc8.
Specs need to be run with RSpec 1.
This fixes error messages like "fatal: '/path/to/file' is outside repository" when using the bundle with git submodules. `Git.path` assumed that the git dir would always be located directly below the working copy root. However, this is not (no longer?) true when working with submodules: The git dir of a submodule is nested inside the parent project’s git dir. Using `git rev-parse --show-toplevel` (available since Git 1.7.0) figures this out correctly, even for submodules. Similar incorrect code existed in `Compare Branches.tmCommand`. This was dead code however (`path` not being used anywhere afterwards), so I removed the line there completely.
Starting with mate 2.5 it will not read from standard input if the TM_DOCUMENT_UUID environment variable is set. This is unfortunate for commands launched by TextMate (where the variable is set) that use mate to pass data to TextMate (via mate’s stdin). This fix is provisional until a new version of mate gets released.
When multi cursors and zero width column selection is involved, there are some edge cases where the border does not include the last selected line in the document. But I guess this implementation should be good enough.
If there is a selection instead of a single line, use the first line in the selection range. Takes offset from the navigation box into account and scrolls to the first row of the commit (scrolling to the **selected** row is pretty useless, as there is no author or revision info if you are in the middle of the document).