- 02 3月, 2009 1 次提交
-
-
由 Paul Mackerras 提交于
This fixes an issue reported by Johannes Sixt on the git mailing list: > This recipe sends gitk into an endless loop. In git.git do: > > cd t > # remove chmod a+x A near the end of the file > sed -i 's/chmod/: chmod/' t3400-rebase.sh > sh t3400-rebase.sh --debug > cd trash\ directory.t3400-rebase/ > gitk master modechange modechange@{1} > > > I briefly see the history chart, but the dot that should be modechange@{1} > is missing. One automatically selected commit is shown in the diff section > below. But then the commit list is cleared and gitk goes into an infinite > loop. > > Things work alright if either modechange@{1} is dropped, or the 'chmod' > line is left unchanged, which is a bit strange. > > This is with git version 1.6.1.2.390.gba743 There were actually two problems. This recipe created a situation where git log would output a child commit after its parent. This meant that we called fix_reversal which called splitvarc, which should call modify_arc to note the fact that it has modified the arc that it has just split. It wasn't, which meant that displayorder and other variables got into an inconsistent state (a commit appearing twice in displayorder). This then meant that the targetrow/targetid logic in drawvisible thought it need to redraw each time. That, together with the fact that drawvisible called drawcommits which called drawvisible if a redraw was needed, led to the infinite loop. In fact drawvisible is now the only caller of drawcommits. Thus, the start and end row arguments to drawcommits always encompass the whole visible area, so drawcommits doesn't need to call drawvisible to redraw; it just needs to clear the screen and draw what it's been asked to. This fixes these two problems by adding a call to modify_arc in splitvarc and by taking out the call to drawvisible in drawcommits. It also removes an unrelated left-over debugging puts in external_blame. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 22 12月, 2008 7 次提交
-
-
由 Johannes Sixt 提交于
On msysGit, the focus is first on the (Tk) console. This console is then hidden, but keeps the focus. Work around that by forcing the focus onto the gitk window. This fixes msysGit issue 14. Diagnosed and originally fixed by Johannes Schindelin. Signed-off-by: NJohannes Sixt <j6t@kdbg.org> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Kevin Ballard 提交于
When parsing commits, gitk treats the headers of the commit as tcl lists. This causes errors if the header contains an unbalanced quote or open brace. Splitting the line on spaces allows us to treat it as a set of words instead of as a tcl list, which prevents errors. Signed-off-by: NKevin Ballard <kevin@sb.org> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Christian Stimming 提交于
Attached to avoid whitespace problems. Regards, Christian From 282060ac531fee722142f9d39c4ff29570723cbb Mon Sep 17 00:00:00 2001 From: Christian Stimming <stimming@tuhh.de> Date: Sat, 6 Dec 2008 20:47:15 +0100 Subject: [PATCH 2/2] gitk: Update German translation Merged with most recent "make update-po" result. Signed-off-by: NChristian Stimming <stimming@tuhh.de> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Christian Stimming 提交于
Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Johannes Sixt 提交于
Consider this sequence of events: 1. Detach HEAD and fire up gitk 2. Call the context menu on some commit. Notice that the last menu entry says "Detached HEAD: can't reset" and it is disabled. 3. Now checkout some regular branch (e.g. 'master') using the context menu. 4. Call the context menu again on some commit. Previously, at this point the last menu entry said "Reset master branch to here", but it was still disabled. With this fix it is now enabled again. Signed-off-by: NJohannes Sixt <j6t@kdbg.org> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Johannes Sixt 提交于
Previously the check-buttons' labels in the Preferences were separate widgets. This had the disadvantage that in order to toggle the check-button with the mouse the check-box had to be clicked. With this change the check-box can also be toggled by clicking the label. Signed-off-by: NJohannes Sixt <j6t@kdbg.org> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Giuseppe Bilotta 提交于
The / key is often used to initiate searches (less, vim, some web browsers). This changes the binding for the / (slash) key from 'find next' to 'focus the search box' to follow this convention. Signed-off-by: NGiuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 06 12月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
The "show origin of this line" function wasn't working when gitk was run in a subdirectory, since it passed the path relative to the top-level directory to git blame. This fixes it by passing the absolute path to the file instead of the relative path. The same problem occurs when running git gui blame, except that git gui blame appears not to be able to accept an absolute path to the file, so we make a relative path using a new [make_relative] function. Finally, this fixes a bug in [show_line_source] where we weren't setting id, resulting in an error when trying to find the origin of a line in the fake commit for local changes not checked in, when its parent was a real commit (i.e. there were no changes checked in). Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 02 12月, 2008 5 次提交
-
-
由 Alexander Gavrilov 提交于
Git gui already has menu commands to start gitk, and this makes the relation symmetric. [paulus@samba.org - changed "Git Gui" in the menu item to "git gui"] Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
Currently the 'show origin of this line' feature does not update the status field of the gitk window, so it is not evident that any processing is going on. It may seem at first that clicking the item had no effect. This commit adds calls to set and clear the busy status with an appropriate title, similar to other search commands. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Christian Stimming 提交于
This takes into account the most recent po file merge. Signed-off-by: NChristian Stimming <stimming@tuhh.de> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
As pointed out by Johannes Sixt and Alexander Gavrilov, commit 29582284 ("gitk: Fix switch statement in parseviewargs") exposed a latent bug in that $notflag was never initialized. Since it isn't used either, this removes it entirely. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
When the search type is "touching paths" or "adding/removing string", it's not very useful to highlight instances of the search string in the commit message, headline or author name, so this disables the highlighting in those cases. This was suggested by Mark Burton <markb@ordern.com>, but the implementation is different to his patch, which tested $gdttype at each place where $markingmatches was tested. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 18 11月, 2008 4 次提交
-
-
由 Paul Mackerras 提交于
Currently, if you invoke the "diff this -> selected" or "diff selected -> this" and gitk is in "Tree" mode rather than "Patch" mode, the diff display pane will just show the header but not the actual diff, unless gitk has done the diff before and thus has the list of files that differ. This was because the logic in gettreediffline that checked whether we had moved on to doing something else checked the mode (Tree or Patch) before checking whether the ids we're diffing had changed. This fixes it. The new logic in gettreediffline is slightly hacky and relies on the fact that the Tree/Patch mode only applies when we're looking at a single commit, not at the diff between two commits. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Alexander Gavrilov 提交于
This reverts commit 63767d5f. A similar change was made as part of commit 76f15947, that added bindings to all dialogs, and this duplication causes mkbrgo to be called twice, the second time after the window has been destroyed. As a result, an error window appears when the code tries to access widgets. Signed-off-by: NAlexander Gavrilov <angavrilov@gmail.com> Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
Since gitk looks for the HEAD commit to attach the fake commits for local changes to, we can miss out on seeing the fake commits if we have a path limit and the HEAD commit doesn't alter any of the files in the path limit. This fixes it by running git rev-list -1 $head -- $paths if we have a path limit, and taking the result of that as the commit to attach the fake commits to. This means that we can be attaching the fake commits to a different commit in each view, so we use a new $viewmainhead($view) for that. This also fixes a buglet where updatecommits would only fix up the fake commits if the HEAD changed since the last call to updatecommits, whereas it should fix them up if the HEAD has changed since this view was last created or updated. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 Paul Mackerras 提交于
In Tcl, a comment in a switch command where a pattern would be expected doesn't do what one would expect, so this moves the comments inside the actions. Doing that shows up an extra "-" which this also removes. With this, --merge is now handled properly. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 15 11月, 2008 1 次提交
-
-
由 Paul Mackerras 提交于
This simplifies things a bit and is better because ids are stable but row numbers aren't. It also means we can avoid one [rowofcommit] call. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
- 13 11月, 2008 4 次提交
-
-
由 Paul Mackerras 提交于
Occasionally gitk will throw a Tcl error complaining that linehtag(n) is undefined when. It happens when the commit list is still growing (e.g. when updating the commit list) and gitk is set to highlight commits that affect certain file(s). What happens is that the changes to the commit list set need_redisplay to indicate that the display needs to be redrawn. That causes the next call to drawcommits to call clear_display, which unsets iddrawn and thus ensures that readfhighlight won't call bolden on any rows that have moved. However, it is possible for readfhighlight to be called after the commit list has changed but before drawcommits has run, meaning that readfhighlight will potentially think that rows have been drawn when they haven't, because of the change in the id -> row mapping (and the fact that iddrawn is indexed by id but line[hnd]tag are indexed by row number). This fixes it (and also optimizes things a little) by making bolden and bolden_name check need_redisplay before doing anything. If need_redisplay is set, then there is no point doing anything because the whole display is about to get cleared and redrawn, and it avoids looking up line[hn]tag using stale row numbers. Signed-off-by: NPaul Mackerras <paulus@samba.org>
-
由 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>
-