- 25 9月, 2008 4 次提交
-
-
由 Shawn O. Pearce 提交于
Most folks using git-gui on internationalized files have complained that it doesn't recognize UTF-8 correctly. In the past we have just ignored the problem and showed the file contents as binary/US-ASCII, which is wrong no matter how you look at it. This really should be a per-file attribute, managed by .gitattributes, so we now pull the "encoding" attribute data for the given path from the .gitattributes (if available) and use that, falling back to UTF-8 if the attributes are unavailable, git-check-attr is broken, or an encoding for this path not specified. We apply the encoding anytime we show file content, which currently is limited to only the diff viewer and the blame viewer. Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Joshua Williams 提交于
Signed-off-by: NJoshua Williams <joshua.williams@qlogic.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Shawn O. Pearce 提交于
If the user started git-gui as "git citool --nocommit" then they don't need the new commit / amend commit radio buttons, or the sign off button in the UI. Rather than use up space with options the user cannot activate they are simply not installed into the UI. Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
- Make citool return nonzero exit code if it did not commit. - Add a mode where it does not actually commit and simply exits with zero code. Commit message is either disabled, or simply dumped to GITGUI_EDITMSG before exiting. - Add an option to immediately start it in amend mode. Rationale: 1) Use 'git citool --nocommit' instead of mergetool in scripts. 2) Use 'git citool --amend' to edit commits while rebasing. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 12 9月, 2008 2 次提交
-
-
由 Alexander Gavrilov 提交于
Tools like rerere leave files marked as conflicts in the index, while actually resolving them in the working copy. Also, some people like to use an external editor to resolve conflicts. This patch restores functionality previously removed in commit 617ceee6 by adding a new context menu item. It still ensures that the user does not stage conflicting files accidentally by clicking on the icon instead of the name. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Tested-by: NJohannes Sixt <johannes.sixt@telecom.at> Signed-off-by: NShawn O. Pearce <sop@google.com>
-
由 Alexander Gavrilov 提交于
Make Blame Parent Commit and Show History Context work properly for lines blamed on the working copy. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <sop@google.com>
-
- 05 9月, 2008 6 次提交
-
-
由 Alexander Gavrilov 提交于
If an untracked file is selected, F5 and other manual rescan synonyms would try to select a tracked file instead. Also, clicking on an icon in the unstaged changes list skips over untracked files, unless the file clicked is untracked itself. The objective is to make it easier to ignore untracked files showing up in the Unstaged Changes list, and ensure that no modifications to tracked objects are left unstaged. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Generalize the next_diff system, and implement auto-reselection for merge tool resolution and reshow_diff. Also add auto-selection of diffs after rescan, if no diff is already selected. New auto-select rules: - Rescan auto-selects the first conflicting file, or if none a modified tracked file, if nothing was selected previously. - Resolving a conflict auto-selects the nearest conflicting file, or nothing if everything is resolved. - Staging the last remaining hunk auto-selects the nearest modified staged file. - Staging a file through its icon auto-selects the nearest file. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Support _U (local deleted, remote modified) and UT (file type changed in conflict) modes. Note that 'file type changed' does not refer to changes in the executable bit, instead it denotes replacing a file with a link, or vice versa. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Prevent staging files with conflict markers by clicking on the icon in the 'Unstaged Changes' list. Instead, pretend that the user clicked the name, and show the diff. Originally it made some sense to allow staging conflicting files, because git-gui did not provide any tools to resolve them from within the GUI. But now that we have added mergetool capabilities, it is more likely to cause accidental and non-undoable errors. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Adds an item to the diff context menu in conflict mode, which invokes a merge tool for the selected file. Tool command-line handling code was ported from git-mergetool. Automatic default tool selection and custom merge tools are not supported. If merge.tool is not set, git-gui defaults to meld. This implementation uses a checkout-index hack in order to retrieve all stages with autocrlf and filters properly applied. It requires temporarily moving the original conflict file out of the way. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
If the file has merge conflicts, show a special version of the diff context menu, which includes conflict resolution commands instead of Stage Hunk/Line. This patch only supports resolving by discarding all sides except one. Discarding is the only way to resolve conflicts involving symlinks and/or deletion, excluding manual editing. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 02 9月, 2008 1 次提交
-
-
由 Clemens Buchacher 提交于
Staging hunks without context does not work, because line number information would have to be recomputed for individual hunks. Since it is already possible to stage individual lines using 'Stage Line for Commit', zero context diffs are not really necessary for git gui. Signed-off-by: NClemens Buchacher <drizzd@aon.at> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 25 8月, 2008 3 次提交
-
-
由 Alexander Gavrilov 提交于
Add a command-line option to make git gui blame automatically scroll to a specific line in the file. Useful for integration with other tools. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Add a context menu command to load commits that are within a certain time range from the selected commit into gitk. It can be useful for understanding of the code, especially if the repository is imported from a VCS that does not support atomic commits. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Gustaf Hendeby 提交于
Signed-off-by: NGustaf Hendeby <hendeby@isy.liu.se> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 05 8月, 2008 1 次提交
-
-
由 Johannes Sixt 提交于
The new execdir is two levels below the root directory, while the old execdir 'bin' was only one level below. This commit adapts the discovery of oguilib that uses relative paths accordingly. We determine whether we have the extra level in the same way in which the Makefile defines sharedir, i.e. whether the last directory part is 'git-core'. Inspired-by: NSteffen Prohaska <prohaska@zib.de> Signed-off-by: NJohannes Sixt <johannes.sixt@telecom.at> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 30 7月, 2008 1 次提交
-
-
由 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>
-
- 27 7月, 2008 1 次提交
-
-
由 Alexander Gavrilov 提交于
It was positioned incorrectly (offset by one position) if the menu had a tear-off handle. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 26 7月, 2008 1 次提交
-
-
由 Abhijit Menon-Sen 提交于
Signed-off-by: NAbhijit Menon-Sen <ams@toroid.org> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 17 7月, 2008 3 次提交
-
-
由 Alexander Gavrilov 提交于
Currently 'git-gui blame' does not kill its back-end process, hoping that it will die anyway when the pipe is closed. However, in some cases the process works for a long time without producing any output. This behavior results in a runaway CPU hog. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
On huge repositories, -C -C can be way too slow to be unconditionally enabled, and it can also be useful to control its precision. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
由 Alexander Gavrilov 提交于
Apply the work-around for checking the executable permission of hook files not only on Cygwin, but on Windows in general. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 08 7月, 2008 1 次提交
-
-
由 Soeren Finster 提交于
Now, as in all OSX apps, there is only one quit menu entry. It's automatically in the wish menu and calls ::tk::mac::Quit when used. Signed-off-by: NSoeren Finster <sf@9by6.de> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 02 7月, 2008 1 次提交
-
-
由 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>
-
- 26 6月, 2008 1 次提交
-
-
由 Abhijit Menon-Sen 提交于
Johannes Sixt noticed that if the last file in the list was staged, my earlier patch would display the diff for the penultimate file, but show the file _before_ that as being selected. This was due to my misunderstanding the lno argument to show_diff. This patch fixes the problem: lno is not decremented in the special case to handle the last item in the list (though we still need to use $lno-1 to find the right path for the next diff). Signed-off-by: NAbhijit Menon-Sen <ams@toroid.org> Tested-by: NJohannes Sixt <johannes.sixt@telecom.at> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 21 6月, 2008 1 次提交
-
-
由 Richard Quirk 提交于
If a text widget is asked the index at x,y with y == 0 or y == 1 it will always return 1.0 as the nearest index, regardless of the x position. This means that clicking the top 2 pixels of the Unstaged/Staged Changes lists caused the state of the file there to be toggled. This patch checks that the pixel clicked is greater than 1, so there is less chance of accidentally staging or unstaging changes. Signed-off-by: NRichard Quirk <richard.quirk@gmail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 14 6月, 2008 1 次提交
-
-
由 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>
-
- 22 5月, 2008 1 次提交
-
-
由 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>
-
- 21 5月, 2008 1 次提交
-
-
由 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>
-
- 09 5月, 2008 1 次提交
-
-
由 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>
-
- 05 4月, 2008 1 次提交
-
-
由 Michele Ballabio 提交于
On some systems, brackets cannot be used as event details (they don't have a keysym), so use +/- instead (both on keyboard and keypad) and add ctrl-= as a synonym of ctrl-+ for convenience. [sp: Had to change accelerator to show only "$M1T-="; the original version included "$M1T-+ $M1T-=" but this is not drawn at all on Mac OS X.] Signed-off-by: NMichele Ballabio <barra_cuda@katamail.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 04 4月, 2008 1 次提交
-
-
由 Shawn O. Pearce 提交于
Thanks to Michele Ballabio for the quick fix. This resolves the error introduced by c91ee2bd. Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 02 4月, 2008 1 次提交
-
-
由 Jonathan del Strother 提交于
Bound to Ctrl/Cmd + left & right square brackets, depending on your platform. [sp: Added missing binds for . to allow shortcuts to work when not focused in the commit message area.] Signed-off-by: NJonathan del Strother <jon.delStrother@bestbefore.tv> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 15 3月, 2008 1 次提交
-
-
由 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>
-
- 08 3月, 2008 1 次提交
-
-
由 Adam Piątyszek 提交于
The width of the commit message text area is currently hard-coded to 75 characters. This value might be not optimal for some projects. For instance users who would like to generate GNU-style ChangeLog file from git commit message might prefer commit messages of width no longer than 70 characters. This patch adds a global and per repository option "Commit Message Text Width", which could be used to change the width of the commit message text area. Signed-off-by: NAdam Piątyszek <ediap@users.sourceforge.net> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 06 3月, 2008 1 次提交
-
-
由 Philipp A. Hartmann 提交于
In several places, only the background colour is set to an explicit value, sometimes even "white". This does not work well with dark colour themes. This patch tries to set the foreground colour to "black" in those situations, where an explicit background colour is set without defining any foreground colour. Signed-off-by: NPhilipp A. Hartmann <ph@sorgh.de> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 20 2月, 2008 1 次提交
-
-
由 Wincent Colaiuta 提交于
"git gui" would complain at launch if the local version of Git was "1.5.4.2.dirty". Loosen the regular expression to look for either "-dirty" or ".dirty", thus eliminating spurious warnings. Signed-off-by: NWincent Colaiuta <win@wincent.com> Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
-
- 12 2月, 2008 1 次提交
-
-
由 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>
-
- 21 1月, 2008 1 次提交
-
-
由 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>
-