summaryrefslogtreecommitdiff
path: root/gitk
AgeCommit message (Collapse)AuthorFilesLines
2009-11-14gitk: Fix "git gui blame" invocation when called from top-level directoryLibravatar Markus Heidelberg1-0/+3
When run in the top-level directory of a git repository, "git rev-parse --git-dir" doesn't return an absolute path, but merely ".git", so the selected file for "git gui blame" has a relative path. The function make_relative then tries to make the already relative path relative, which results in a path like "../../../../Makefile" with as many ".." as there are elements of [pwd]. This regression was introduced by commit 9712b81 (gitk: Fix bugs in blaming code, 2008-12-06), which fixed "git gui blame" when called from subdirs. This also fixes it for bare repositories. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-14gitk: Disable checkout of remote branchesLibravatar Sitaram Chamarty1-0/+3
At the command line, trying to check out a remote branch gives you a detailed warning message, but the gitk GUI currently allows it without any fuss. Since the GUI is often used by people much less familiar with git, it seems reasonable to make the GUI more restrictive than the command line, not less. This prevents a lot of detached HEAD commits by new users. Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-14gitk: Improve appearance of radiobuttons and checkbuttonsLibravatar Paul Mackerras1-2/+12
Commit 5497f7a23ac11f9b230892220d5ed80263eedd1f ("gitk: Add configuration for UI colour scheme") added a call to tk_setPalette at startup. Unfortunately, tk_setPalette always chooses a dark red color for the selectColor value if none is given explicitly, and this makes checkbuttons and radiobuttons look rather bad. This restores the previous appearance by specifying selectColor explicitly. For light backgrounds we use white for selectColor, and for dark backgrounds we use black. The formula and threshold for distinguishing light from dark are the same as used in tk_setPalette for choosing the foreground color. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-03gitk: Skip translation of "wrong Tcl version" messageLibravatar Bernt Hansen1-4/+4
We check the required Tcl version number before we setup msgcat for language translation. If the Tcl version is too old just display the untranslated error text. The caller of show_error can now pass an alternative function for mc. The Tcl list function turns the translation into a no-op. This fixes the error: Error in startup script: invalid command name "mc" when attempting to start gitk with Tcl 8.3. Tested with both Tcl 8.3 and 8.4. Signed-off-by: Bernt Hansen <bernt@norang.ca> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-03gitk: Use the --submodule option for displaying diffs when availableLibravatar Jens Lehmann1-1/+20
When displaying diffs in a submodule, this makes gitk display the headlines of the commits being diffed, instead of just showing not-quite-helpful SHA-1 pairs, if the underlying git installation supports this. That makes it much easier to evaluate the changes, as it eliminates the need to start a gitk inside the submodule and use the superprojects hashes there to find out what the commits are about. Since the --submodule option of git diff is new in git version 1.6.6, this only uses the --submodule option when a git version of 1.6.6 or higher is detected. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-03gitk: Fix diffing committed -> staged (typo in diffcmd)Libravatar Jens Lehmann1-1/+1
When highlighting a commit, using the context menu over the staged changes and then selecting "Diff this -> selected" the diff was empty. The same happened when highlighting the staged changes and using "Diff selected -> this" over a commit. The reason was a copy/paste error in [diffcmd]. This fixes it. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-11-03gitk: Add configuration for UI colour schemeLibravatar Guillermo S. Romero1-2/+14
This adds an option to control the global colour scheme in the Edit > Preferences dialog so that the whole interface can have a non-default main colour. Signed-off-by: Guillermo S. Romero <gsromero@infernal-iceberg.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-09-21gitk: Work around leftover temporary save fileLibravatar Pat Thoyts1-0/+1
If a file exists and is hidden on Windows the Tcl open command will fail as the attributes provided in the CREAT call fail to match those of the existing file. Forcing removal of the temporary file before we begin solves any problems caused by previous failures to save the application settings. An alternative would be to remove the hidden attribute before calling 'open'. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-09-10gitk: Show diff of commits at end of compare-commits outputLibravatar Paul Mackerras1-23/+58
When comparing a string of commits, when we find two non-merge commits that differ, we now write the two commits to files and diff the files. This pulls out the logic for creating a temporary directory from external_diff into a separate procedure so that the new diffcommits procedure can use it. Because the diff command returns an exit status of 1 when the files differ, and Tcl treats that as an error, this adds catch {} around the close statements in getblobdiffline. At present this only removes the temporary files when gitk exits. It should remove them when the diff is done. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: Parse arbitrary commit-ish in SHA1 fieldLibravatar Thomas Rast1-1/+6
We only accepted either SHA1s or heads/tags that have been read. This meant the user could not, e.g., enter HEAD to go back to the current commit. This adds code to call out to git rev-parse --verify if all other methods of interpreting the string the user entered fail. (git-rev-parse alone is not enough as we really want a single revision.) The error paths change slighly, because we now know from the rev-parse invocation whether the expression was valid at all. The previous "unknown" path is now only triggered if the revision does exist, but is not in the current view display. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: Fix direction of symmetric difference in optimized modeLibravatar Thomas Rast1-1/+1
ee66e08 (gitk: Make updates go faster, 2008-05-09) implemented an optimized mode where gitk parses the arguments with rev-parse, and manually reads history in chunks. As mentioned in the commit message, symmetric differences are a problem there: One wrinkle is that we have to turn symmetric diff arguments (of the form a...b) back into symmetric diff form so that --left-right still works, as git rev parse turns a...b into a b ^merge_base(a,b). However, git-rev-parse returns a...b in the swapped order b a ^merge_base(a,b) This has been the case since at least 1f8115b (the state of master at the time of the abovementioned ee66e08; Merge branch 'maint', 2008-05-08). So gitk flipped the sides of symmetric differences whenever it was in optimized mode. Fix this by swapping the sides of the reconstruction code. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: New option to hide remote refsLibravatar Thomas Rast1-3/+15
In repositories with lots of remotes, looking at the history in gitk can be borderline insane with all the red labels for remote refs. Introduce a new option in the preferences that makes gitk ignore remote refs entirely, so they don't take up space in the display. Wished-for-by: Thell Fowler <tbfowler4@gmail.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: Do not hard-code "encoding" in attribute lookup functionsLibravatar Johannes Sixt1-2/+2
Commit 39ee47e (Clean up file encoding code and add enable/disable option, 2008-10-15) rewrote the attribute lookup functions gitattr and cache_gitattr, but in the process hard-coded the attribute name "encoding" instead of using the functions' parameters. This fixes it. This is not a serious regression because currently all callers look only for "encoding". Further note that this fix assumes that future callers will not pass an attribute name that contains regex special characters. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-25gitk: Allow diff view without context linesLibravatar Markus Heidelberg1-2/+2
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-25gitk: Add another string to translationLibravatar Michele Ballabio1-1/+1
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-25gitk: Add option 'Simple history' to the options menuLibravatar Dirk Suesserott1-1/+3
When clicked, the option --simplify-by-decoration is added to gitk/git log. This yields to a simplified history where only decorated commits are shown, i.e. those with a yellow tag or a green branch flag. Signed-off-by: Dirk Suesserott <newsletter@dirk.my1.cc> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-19gitk: Handle msysGit version during version comparisonsLibravatar Pat Thoyts1-1/+1
msysGit generates version strings with text appended which cannot be used with vcompare; trying to use them generates a Tcl error. Limit git_version to the first three digits which are the real git version to avoid this error. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-16gitk: Make more options easily accessible from Edit View dialogLibravatar Elijah Newren1-37/+94
Commit 218a900bd8efd0d49f8a0d9491aa4786a998d4f4 added a number of new individual fields for the Edit View dialog to make them more accessible to end users, while still allowing all options to be specified in the "arguments to git log" field. This extends the dialog further, to include refs, author, committer, commit message, and patch contents. As before everything still remains accessible from the "arguments to git log" input field. Additionally, this provides hints for the format of the various input fields (for example, listing some sample date strings in different formats), and puts related query items into subsections to make it easier to digest the number of options that exist. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-16gitk: Check git version before using --textconv flagLibravatar Paul Mackerras1-1/+7
Commit 785b7535 ("gitk: use --textconv to generate diff text") added the --textconv flag to the git diff commands used to display commit diffs. Since some people use newer gitk with older git installations, this adds a check on the git version to check that it understands --textconv before using it. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-05-16gitk: Use --textconv to generate diff textLibravatar Johannes Sixt1-1/+1
For the most part gitk's focus is on showing history and changes in a human readable form. For this reason, it makes sense to generate the patch text in the diff view using --textconv so that textconv drivers are used if they are defined. gitk can also generate patches, but we do not use --textconv because such patches could not be applied. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-21gitk: Fix compare-commits function when we have local changesLibravatar Paul Mackerras1-19/+47
This fixes a bug in the compare-commits function added in commit 010509f2 ("gitk: Add a command to compare two strings of commits") where gitk would show an error dialog if the comparison of commits got to a fake commit (one showing local changes). It extends getpatchid to handle these fake commits by using [diffcmd] to get the git diff command variant to use, and also handles the situation where an error occurs. Now that we can have the fake commit IDs showing up, which are 00..00 and 00..01, the short ID is ambiguous. To make sure the links point to the right commit, this adds a new [appendshortlink] procedure which takes the full link destination, and uses that rather than appendwithlinks. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Avoid crash if closed while reading referencesLibravatar Pat Thoyts1-0/+1
As recorded in msysGit issue 125, if the user closes gitk while it reports itself as still reading references then Tk will crash in the geometry management code. This has been fixed for Tk 8.5.7 and above. This patch avoids the problem by flushing outstanding geometry events before calling the readrefs procedure. See also http://code.google.com/p/msysgit/issues/detail?id=125 Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Handle external diff tool with spaces in the pathLibravatar Pat Thoyts1-3/+2
This fixes the launching of external diff to handle a diff tool that has spaces in the path. This ensures a correctly formed tcl list is passed to the open command with a single pipe character prefixing the list (as per the tcl manual page for open). The specific fault observed was that selecting WinMerge as the diff tool from the default installed location in Program Files failed to be launched from the context menu. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Remember and restore the window state with the geometryLibravatar Pat Thoyts1-0/+5
This records the window state in ~/.gitk. On startup, if the gitk window was previously maximized (zoomed), then we restore that state. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Map KP_Divide to focus the search boxLibravatar Michele Ballabio1-0/+1
Commit 97bed034 changed the behavior of the '/' key on the keyboard, but the '/' on the keypad was left unused. They now both do the same thing. Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Mark some more strings for translationLibravatar Michele Ballabio1-3/+3
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Mark forgotten string for translationLibravatar Christian Stimming1-1/+1
Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-17gitk: Make .gitk a hidden file under windowsLibravatar Paul Mackerras1-0/+3
This sets the hidden attribute on the ~/.gitk file so it doesn't appear in the windows user profile. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-09gitk: Add a command to compare two strings of commitsLibravatar Paul Mackerras1-0/+89
This adds a row context menu command to compare this commit and its descendants with the marked commit and its descendants. The results are shown in the bottom-left pane. Commits are compared by checking whether their headlines are the same and their patches have the same patch ID as generated by git patch-id. Merges are ignored and skipped over (as long as they have one descendant). If two commits have the same patch ID then the process will continue and compare their descendants, as long as they both have exactly one descendant. If either commit has 0 or 2 or more descendants, the comparison stops there. There is currently a limit of 100 comparisons. This can be useful for checking whether one string of commits is just a rebased version of another string of commits. Mark the end of one string (i.e. the oldest commit in the string) and invoke "Compare with marked commit" on the end of the other string. As this is implemented, the UI will be unresponsive while the results are being generated. This should be fixed. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-09gitk: Add a way to mark a commit, plus a "find descendant" commandLibravatar Paul Mackerras1-4/+87
This adds a context-menu command to put a mark on this commit. There is at most one marked commit at any time, and it is indicated by a box drawn around the headline. Once a commit is marked, two other context-menu commands become available: one to select the marked commit, and another to find the closest common descendant of this commit and the marked commit. The "find common descendant" command uses the displayed parent/child relationships (i.e. the rewritten parent pointers produced by git log), not the real parent/child relationships. Currently the UI will be unresponsive while gitk is working out the nearest common descendant; this should be improved in future. Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-03-23gitk: Fixes for Mac OS X TkAquaLibravatar Daniel A. Steffen1-12/+50
- middle button is B3 on TkAqua - add horizontal mousehweel scrolling - nicer default fonts - use OSX-specific extdifftool - remove quit menu item, call doquit on quit event - move about & preferences menu items into apple menu - don't set menu font Signed-off-by: Daniel A. Steffen <das@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-03-23gitk: Provide a 32x32 window icon based on the git logoLibravatar Stephen Boyd1-1/+4
This simply expands the 16x16 logo image to 32x32 and provides it as an alternative icon image. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-03-23gitk: Provide a window icon if possibleLibravatar Giuseppe Bilotta1-0/+20
Try to set up a 16x16 Tk photo image (based on the git logo) and use it as window icon. The code is wrapped in a catch because it may fail in earlier Tcl/Tk 8.4 releases that don't provide 'wm iconphoto'. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-03-23gitk: Handle blobs containing a DOS end-of-file markerLibravatar Pat Thoyts1-2/+3
If a patchset contains an EOF marker (Ctrl-Z) the blob diff terminates at that point. This permits gitk to ignore the eof and continue to display any subsequent blobs and also displays a sensible representation of the eof char. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-03-02gitk: Fix possible infinite loop and display corruptionLibravatar Paul Mackerras1-4/+6
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: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Force the focus to the main window on WindowsLibravatar Johannes Sixt1-0/+5
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: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Allow unbalanced quotes/braces in commit headersLibravatar Kevin Ballard1-2/+3
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: Kevin Ballard <kevin@sb.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Mark forgotten strings (header sentence parts in color chooser) for ↵Libravatar Christian Stimming1-6/+6
translation Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Ensure that "Reset branch" menu entry is enabledLibravatar Johannes Sixt1-1/+1
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: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Use check-buttons' -text property instead of separate labelsLibravatar Johannes Sixt1-20/+10
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: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-22gitk: Map / to focus the search boxLibravatar Giuseppe Bilotta1-2/+2
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: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-06gitk: Fix bugs in blaming codeLibravatar Paul Mackerras1-3/+29
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: Paul Mackerras <paulus@samba.org>
2008-12-02gitk: Add a menu option to start git guiLibravatar Alexander Gavrilov1-0/+3
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: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-02gitk: Make line origin search update the busy statusLibravatar Alexander Gavrilov1-0/+3
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: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-02gitk: Fix bug in accessing undefined "notflag" variableLibravatar Paul Mackerras1-5/+1
As pointed out by Johannes Sixt and Alexander Gavrilov, commit 2958228430b63f2e38c55519d1f98d8d6d9e23f3 ("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: Paul Mackerras <paulus@samba.org>
2008-12-02gitk: Highlight only when search type is "containing:".Libravatar Paul Mackerras1-3/+4
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: Paul Mackerras <paulus@samba.org>
2008-11-18gitk: Fix context menu items for generating diffs when in tree modeLibravatar Paul Mackerras1-1/+1
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: Paul Mackerras <paulus@samba.org>
2008-11-18gitk: Avoid handling the Return key twice in Add BranchLibravatar Alexander Gavrilov1-1/+0
This reverts commit 63767d5fb8fe236d8fdeba44297ac925701b27a0. A similar change was made as part of commit 76f15947af7, 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: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-11-18gitk: Show local changes properly when we have a path limitLibravatar Paul Mackerras1-22/+88
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: Paul Mackerras <paulus@samba.org>
2008-11-18gitk: Fix switch statement in parseviewargsLibravatar Paul Mackerras1-11/+11
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: Paul Mackerras <paulus@samba.org>