- 13 11月, 2008 3 次提交
-
-
由 Alexander Gavrilov 提交于
This commit fixes two problems with commit encodings: 1) git-log actually uses i18n.logoutputencoding to generate its output, and falls back to i18n.commitencoding only when that option is not set. Thus, gitk should use its value to read the results, if available. 2) The readcommit function did not process encodings at all. This led to randomly appearing misconverted commits if the commit encoding differed from the current locale. Now commit messages should be displayed correctly, except when logoutputencoding is set to an encoding that cannot represent charecters in the message. For example, it is impossible to convert Japanese characters from Shift-JIS to CP-1251 (although the reverse conversion works). The reason for using git log to read the commit and then getting Tcl to convert its output is that is essentially what happens in the normal path through getcommitlines, hence there is less chance for unintended differences in how commits are processed in getcommitlines and do_readcommit. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
Transient windows cause problems on these platforms: - On Win32 the windows appear in the top left corner of the screen. In order to fix it, this patch causes them to be explicitly centered on their parents by an idle handler. - On MacOS with Tk 8.4 they appear without a title bar. Since it is clearly unacceptable, this patch disables transient on that platform. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
This commit documents keyboard accelerators used for menu commands in the menu, as it is usually done, and adds some more, e.g. F4 to invoke Edit View (or New View if the current view is the un-editable "All files" view). The changes include a workaround for handling Shift-F4 on systems where XKB binds special XF86_Switch_VT_* symbols to Ctrl-Alt-F* combinations. Tk often receives these codes when Shift-F* is pressed, so it is necessary to bind the relevant actions to them as well. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 09 11月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
-
- 08 11月, 2008 2 次提交
-
-
由 Alexander Gavrilov 提交于
Originally gitk required the user to specify all limiting options manually in the same field with the list of commits. It is rather unfriendly for new users, who may not know which options can be used, or, indeed, that it is possible to specify them at all. This commit modifies the dialog to present the most useful options as individual fields. Note that options that may be useful to an extent, but produce a severely broken view, are deliberately not included. It is still possible to specify options in the commit list field, but when the dialog is reopened, they will be extracted into their own separate fields. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
This adds to the regexps that are used to work out what sort of error we encountered in trying to do a cherry-pick so that it recognizes some additional common error messages. It adds a confirmation dialog when the error is a merge conflict so the user can choose whether or not to run git citool. Finally, it arranges to update the display after a cherry-pick failed so that any local changes made by the cherry-pick become visible. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 07 11月, 2008 3 次提交
-
-
由 Alexander Gavrilov 提交于
Now that git-gui has facilities to help users resolve conflicts, it makes sense to launch it from other GUI tools when they happen. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
Transient windows are always kept above their parent, and don't occupy any space in the taskbar, which is useful for dialogs. Also, when transient is used, it is important to bind windows to the correct parent. This commit adds transient annotations to all dialogs, ensures usage of the correct parent for error and confirmation popups, and, as a side job, makes gitk preserve the create tag dialog window in case of errors. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
It is often more convenient to dismiss or accept a dialog using the keyboard, than by clicking buttons on the screen. This commit adds key binding to make it possible with gitk's dialogs. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 04 11月, 2008 2 次提交
-
-
由 Paul Mackerras 提交于
This modifies gettreediffline so that it when we get both a "U" line and an "M" line for the same file in the output from git diff-files or git diff-index --cached (used when the user clicks on a fake commit) we don't add the same filename to the treediff list twice. This also makes getblobdiffline recognize the "* Unmerged path ..." lines we get when we ask for the actual diffs, and makes a tiny optimization in makediffhdr. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
This makes the "Show origin of this line" menu item work correctly on the fake commits that gitk shows for local uncommitted changes. With the fake commit for changes that aren't checked in to the index, we can actually get a 3-way diff shown, which means we might have to blame either the parent or the commit being merged in (which we get from .git/MERGE_HEAD). If the parent is the fake commit which shows the changes that have been checked in to the index, then we need to get the SHA1 of the blob for the version of the file that is in the index, then use git cat-file blob to get the contents of the blob, and give that to git blame with --contents - so that git blame will do the blame on the index version of the file. In that case, we might get the all-zeroes SHA1 back from git blame, meaning that the line is new in the index version of the file, so then we have to use $nullid2 (the pseudo-SHA1 of the fake commit for the checked-in changes). Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 02 11月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
This adds code to getblobdiffline to make it able to recognize and display merge diffs (i.e. N-way diffs for N >= 3) as well as normal two-way diffs. This means that it can also correctly display the 3-way diff of the local changes when the git repository is in the middle of a merge with conflicts. This also removes getmergediffline and changes mergediff to invoke getblobdiffline rather than getmergediffline. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 27 10月, 2008 3 次提交
-
-
由 Paul Mackerras 提交于
This makes it possible for the user to configure the background color of lines that are "marked". At the moment only the "show the origin of this line" function marks lines. This also makes the user's choice persistent by saving it in ~/.gitk. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
This adds a menu item to the pop-up menu for the diff display window which makes gitk find which commit added the line (via git blame) and show that commit, with the line highlighted with a light-blue background. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
When walking back from the line where a right-click happened to the previous hunk separator line to calculate the line number to work on, we were counting every line including the one clicked on. That isn't right; if the user clicked on the line immediately after the hunk separator then the correct line number would be the one from the hunk separator. Therefore this looks at the clicked-on line to work out which parent to blame (or whether to blame the current commit), and then looks only at the preceding lines to work out the offset from the line number in the hunk separator. This also fixes an off-by-one error when we are showing files rather than diffs. In this case diff_menu_filebase is the line number of the banner showing the file name, so the first line of the file is at line $diff_menu_filebase + 1. This also simplifies the code in find_hunk_blamespec a bit and arranges that we don't pop up the context menu if the user clicks on a file separator line or a hunk separator line. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 26 10月, 2008 1 次提交
-
-
由 Alexander Gavrilov 提交于
This adds a context menu item to the diff viewer pane that calls git gui blame, focusing it on the clicked line. In case of combined diffs, it also automatically deduces which parent is to be blamed. Lines added by the diff are blamed on the current commit itself. The context menu itself is added by this patch. It would be possible to add the commands from the flist menu to it. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 21 10月, 2008 3 次提交
-
-
由 Alexander Gavrilov 提交于
Currently it displays an ugly error box, because the treediffs array is not filled for such commits. This fixes it by making getmergediffline add the filenames it sees to the treediffs array like gettreediffline does. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
If gitk knows that the branch the user tries to create exists, it should ask whether it should overwrite it. This way the user can either decide to choose a new name, or move the head while preserving the reflog. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
This changes the link detection logic to accept strings of between 6 and 40 hex characters as a possible SHA1 ID of another commit, rather than insisting on seeing the full 40 hex characters. To make the logic that turns a possible link into an actual link work with abbreviated IDs, this changes the way the commitinterest array is used, and puts the code that deals with it in a pair of new functions. The commitinterest array is now indexed by just the first 4 characters of the interesting SHA1 ID, and each element is a list of id + command pairs. This also pulls out the logic for expanding an abbreviated SHA1 to the list of matching full IDs into its own function (the way it is done is still the same slow way it was done before, which should be improved some day). This also fixes the bug where clicking on a link would take you to the wrong commit if the line number of the target had changed since the link was made. This is based on a patch by Linus Torvalds, but totally rewritten by me. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 18 10月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
This is the result of running make update-po and removing or fixing the strings that were fuzzily matched. The ones that were fixed were the ones where the only change was "git rev-list" to "git log", and the "about gitk" message where the copyright year got updated. To get xgettext to see the menu labels as needing translation, it was necessary for arrange for them to be preceded by "mc". This therefore changes makemenu to ignore the first element in each menu item so that it can be "mc" in the makemenu call. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 17 10月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
This is inspired by patches from Robin Rosenberg but takes a different approach. This adds a "makemenu" procedure for constructing menus that allows the menu layout to be specified in a clear fashion, and provides one place where the alt+letter accelerators can be detected and handled. The alt+letter accelerator is specified by putting an ampersand (&) before the letter for the accelerator in the menu item name. (Two ampersands in succession produce one ampersand in the menu item as it appears on screen.) This is handled in makemenu. We also add an mca procedure which is like mc but also does the ampersand translation, for use when we want to refer to a menu item by name. The mca name and the locations where we use it were shamelessly stolen from Robin Rosenberg's patch. This doesn't actually add any alt+letter accelerators yet. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 16 10月, 2008 2 次提交
-
-
由 Richard Quirk 提交于
The Return key can now be used as well as pressing the Create button from the dialog box that is shown when selecting "Create new branch". Signed-off-by: NRichard Quirk <richard.quirk@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
This adds a break so that gitk doesn't go and execute the global binding for <Return> (i.e. find next) when the user presses the return key in the sha1 entry field to indicate that gitk should jump to the commit identified by what they just put into the sha1 field. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 15 10月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
This adds an option allowing the user to select whether gitk should look up per-file encoding settings using git check-attr or not. If not, gitk uses the global encoding set in the git config (as reported by git config --get gui.encoding) for all files, or if that is not set, then the system encoding. The option is controlled by a checkbox in the Edit->Preferences window, and defaults to off for now because git check-attr is so slow. When the user turns it on we discard any cached diff file lists in treediffs, because we may not have encodings cached for the files listed in those lists, meaning that getblobdiffline will do it for each file, which will be really really slow. This adjusts the limit of how many paths cache_gitattr passes to each instance of git check-attr depending on whether we're running under windows or not. Passing only 30 doesn't effectively amortize the startup costs of git check-attr, but it's all we can do under windows because of the 32k limit on arguments to a command. Under other OSes we pass up to 1000. Similarly we adjust how many lines gettreediffline processes depending on whether we are doing per-file encodings so that we don't run for too long. When we are, 500 seems to be a reasonable limit, leading to gettreediffline taking about 60-70ms under Linux (almost all of which is in cache_gitattr, unfortunately). This means that we can take out the update call in cache_gitattr. This adds a simple cache on [tclencoding]. Now that we get repeated calls to translate the same encoding, this is useful. This reindents the new code added in the last couple of commits to conform to the gitk 4-space indent and makes various other improvements: use regexp in gitattr and cache_gitattr instead of split + join + regsub, make gui_encoding be the value from [tclencoding] to avoid having to do [tcl_encoding $gui_encoding] in each call to get_path_encoding, and print a warning message at startup if $gui_encoding isn't supported by Tcl. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 14 10月, 2008 2 次提交
-
-
由 Alexander Gavrilov 提交于
When the diff contains thousands of files, calling git-check-attr once per file is very slow. With this patch gitk does attribute lookup in batches of 30 files while reading the diff file list, which leads to a very noticeable speedup. It may be possible to reimplement this even more efficiently, if git-check-attr is modified to support a --stdin-paths option. Additionally, it should quote the ':' character in file paths, or provide a more robust way of column separation. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Tested-by: NJohannes Sixt <johannes.sixt@telecom.at> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
This allows the encoding to be specified for file contents and used when displaying files and diffs in the bottom-left pane. When displaying diffs, the encoding for each diff hunk is that for the file that the diff hunk is from, so it can change through the course of the diff. The encoding for file contents is determined as follows: - File encoding defaults to the system encoding. - It can be overridden by setting the gui.encoding option. - Finally, the 'encoding' attribute is checked on per-file basis; it has the last word. Note: Since git-check-attr does not provide support for reading attributes from trees, attribute lookup is done using files from the working directory. This also extends the range of supported encoding names, adding ShiftJIS and Shift-JIS as aliases for Shift_JIS, and allowing cp-*, cp_*, ibm-*, ibm_*, jis-* and jis_* as aliases for cp*, ibm* and jis* respectively. This also fixes some bugs in handling of non-ASCII filenames. Core git apparently supports only locale-encoded filenames, so processing is done using the system encoding. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Tested-by: NJohannes Sixt <johannes.sixt@telecom.at> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 22 9月, 2008 3 次提交
-
-
由 Christian Stimming 提交于
Signed-off-by: NChristian Stimming <stimming@tuhh.de> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
To reproduce: expand a tree like this, then collapse A: +A +B C D The result is: -A C D I.e. sub-nodes expanded from the last sub-node of the item being collapsed are not removed. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
An OSX user has reported that gitk's context menus are not usable under OSX because it doesn't provide a way to generate <Button-3> events. Users can generate <Button-2> events with command+click, so use that for the context menus instead on OSX. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 26 8月, 2008 2 次提交
-
-
由 Alexander Gavrilov 提交于
This adds a new item to the file list popup menu, that calls git gui blame for the selected file, starting with the first parent of the current commit. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
Other GUI tools may need to start gitk and make it automatically select a certain commit. This adds a new command-line option --select-commit=id to make that possible. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 11 8月, 2008 1 次提交
-
-
由 Alexander Gavrilov 提交于
Originally dorunq assumed that the queue entry remained first in the queue after the script eval, and blindly removed it. However, if the handler calls nukefile, it may not be the case anymore, and a random queue entry gets dropped instead. This makes dorunq remove the entry before calling the script, and adds a global variable to allow other functions to determine if they are called from within a dorunq handler. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 04 8月, 2008 1 次提交
-
-
由 Mikael Magnusson 提交于
Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 03 8月, 2008 1 次提交
-
-
由 Christian Stimming 提交于
This includes suggestions by Stephan Beyer. Signed-off-by: NChristian Stimming <stimming@tuhh.de> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 31 7月, 2008 6 次提交
-
-
由 Alexander Gavrilov 提交于
Try selecting the head, if the previously selected commit is not available in the new view. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
- Switching views now actually preserves the selected commit. - Reloading (also Edit View) preserves the currently selected commit. - Initial selection does not produce weird scrolling. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
If the tree diff command failed to start for some random reason, treepending remained set, and thus no more diffs were shown after that. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
MSysGit compiles git binaries as native Windows executables, so they cannot be killed unless a special flag is specified. This flag is implemented by the Cygwin version of kill, which is also included in MSysGit. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
Local change analysis can take a noticeable amount of time on large file sets, and produce no output if there are no changes. Register the back-ends in commfd, so that they get properly killed on window close. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
When collecting commits for a rarely changed, or recently created file or directory, rev-list may work for a noticeable period of time without producing any output. Such processes don't receive SIGPIPE for a while after gitk is closed, thus becoming runaway CPU hogs. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-