summaryrefslogtreecommitdiff
path: root/gitk
AgeCommit message (Collapse)AuthorFilesLines
2015-05-17gitk: Use translated version of "Command line" in getcommitlinesLibravatar Marc Branchaud1-1/+1
This is needed for getcommitlines to work properly when a language translation is being used. Signed-off-by: Marc Branchaud <marcnarc@xiplink.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-17gitk: Make it easier to go quickly to a specific commitLibravatar Ismael Luceno1-0/+2
Binds "g" to focus and clear the sha1 entry box. Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-17gitk: Show the current view's name in the window titleLibravatar Marc Branchaud1-1/+16
If the current view is the "Command line" view, show the command line arguments instead of the view name. Signed-off-by: Marc Branchaud <marcnarc@xiplink.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-17gitk: Add mouse right-click options to copy path and branch nameLibravatar Michael Rappazzo1-0/+2
This adds menu entries to two of the right-click menus: - 'Copy path' in the file list - 'Copy branch name' on a branch in the commit list Signed-off-by: Michael Rappazzo <rappazzo@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-17gitk: Remove mc parameter from proc show_errorLibravatar Alex Henrie1-23/+23
This is a better fix for 8d849957d81fc0480a52570d66cc3c2a688ecb1b. This new fix makes the strings "Sorry, gitk cannot run..." and "OK" translatable and the string "mc" not translatable. It will take effect the next time `make update-po` is run. msgcat is now imported before the Tcl/Tk version check so that the mc function is available even if the version check fails. This should not be a problem because msgcat and ::msgcat::mc were officially added in Tcl 8.1 (released April 29, 1999) and we are not trying to support versions of Tcl older than that. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-03gitk: Fix error when changing colors after closing "List references" windowLibravatar Paul Mackerras1-5/+13
This fixes an error that manifests itself if the user opens the "List references" window and the closes it, and subsequently opens the Preferences window and changes one of the colors. When the user clicks OK, and error popup appears with the message: Error: invalid command name ".showrefs.list" This is because .showrefs.list was added to the list of windows to be notified on foreground/background color changes, but the window no longer exists. We fix the bug by checking whether the window exists before trying to change its colors. As an optimization, we also avoid adding the .showrefs.list window to the list a second time. Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-05-02gitk: Replace catch {unset foo} with unset -nocomplain fooLibravatar Paul Mackerras1-56/+56
This generates better bytecode in Tcl 8.6 according to http://wiki.tcl.tk/1506. Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-04-06gitk: Rearrange window title to be more conventionalLibravatar Marc Branchaud1-1/+1
Signed-off-by: Marc Branchaud <marcnarc@xiplink.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-04-06gitk: Fix bad English grammar "Matches none Commit Info"Libravatar Alex Henrie1-1/+1
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-15gitk: Remove tcl-format flag from a message that shouldn't have itLibravatar Alex Henrie1-0/+1
xgettext sees "% o" and interprets it as a placeholder for an octal number preceded by a space. However, in this case it's not actually a placeholder, and most translations will replace the "% o" sequence with something else. Removing the tcl-format flag from this string prevents tools like Poedit from freaking out when "% o" doesn't appear in the translated string. The corrected flag will appear in each translation's po file the next time the translation is updated with `make update-po`. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-15gitk: Pass --invert-grep option down to "git log"Libravatar Christoph Junghans1-0/+1
"git log --grep=<string>" shows only commits with messages that match the given string, but sometimes it is useful to be able to show only commits that do *not* have certain messages (e.g. "show me ones that are not FIXUP commits"). Now the underlying "git log" learned the "--invert-grep" option. The option syntactically behaves similar to "--all-match" that requires that all of the grep strings to match and semantically behaves the opposite---it requires that none of the grep strings to match. Teach "gitk" to allow users to pass it down to underlying "git log" command by adding it to the known_view_options array. Signed-off-by: Christoph Junghans <ottxor@gentoo.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-15gitk: Synchronize config file writesLibravatar Max Kirillov1-3/+28
If several gitk instances are closed simultaneously, the savestuff procedure can run at the same time, resulting in a conflict which may cause losing of some of the instance's changes, failing the saving operation or even corrupting the configuration file. This can happen, for example, at user session closing, or at group closing of all instances of an application which is possible in some desktop environments. To avoid this, make sure that only one saving operation is in progress. It is guarded by existence of the $config_file_tmp file. Creating the file and moving it to $config_file are both atomic operations, so it should be reliable. Reading does not need to be syncronized, because moving is an atomic operation, and the $config_file always refers to a full and correct file. But, if there is a stale $config_file_tmp file, report it at gitk start. If such file is detected when saving, just report it abort the save, as for other errors in saving. Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-15gitk: Report errors in saving config fileLibravatar Max Kirillov1-1/+3
Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-15gitk: Only write changed configuration variablesLibravatar Max Kirillov1-10/+76
When gitk contains some changed parameter, and there is an existing instance of gitk where the parameter is still old, it is reverted to that old value when that instance exits. Instead, store a parameter in config only if it has been modified in the exiting instance. Otherwise, preserve the value which currently is in file. This allows editing the configuration when several instances are running, without rollback of the modification if some other instance where the configuration was not edited is closed last. For scalar variables, use trace(3tcl) to detect their change. Since `trace` can send bogus events, doublecheck if the value has really been changed, but once it is marked as changed, do not reset it back to unchanged ever, because if user has restored the original value, it's the decision which should be stored as well as modified value. Treat view list especially: instead of rewriting the whole list, merge individual views. Place old and updated views in their old places, add new ones to the end of list. Collect modified views explicitly, in newviewok{} and delview{}. Do not merge geometry values. They are almost always changing because user moves and resises windows, and there is no way to find which one of the geometries is most desired. Just overwrite them unconditionally, like earlier. Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-02gitk: Enable mouse horizontal scrolling in diff paneLibravatar Gabriele Mazzotta1-0/+7
Currently it's required to hold Shift and scroll up and down to move horizontally. Listen to Button-6 and Button-7 events too to make horizontal scrolling handier with touchpads and some mice. Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-03-02gitk: Default wrcomcmd to use --pretty=emailLibravatar Chris Packham1-1/+1
This makes the "Write commit to file" context menu option generate a file that is consumable by 'git am'. Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-10-30gitk: Remove boilerplate for configuration variablesLibravatar Max Kirillov1-68/+20
Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-10-30gitk: Show detached HEAD if --all is specifiedLibravatar Max Kirillov1-0/+2
If HEAD is detached, 'gitk --all' does not show it. This is inconvenient for frontend program, and for example git log does show the detached HEAD. gitk uses git rev-parse to find a list of branches to show. Apparently, the command does not include detached HEAD to output if --all argument is specified. This has been discussed in [1] and stated as expected behavior. So rev-parse's parameters should be tuned in gitk. [1] http://thread.gmane.org/gmane.comp.version-control.git/255996 Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-10-30gitk: Do not depend on Cygwin's "kill" command on WindowsLibravatar Sebastian Schuberth1-1/+1
Windows does not necessarily mean Cygwin, it could also be MSYS. The latter ships with a version of "kill" that does not understand "-f". In msysgit this was addressed by shipping Cygwin's version of kill. Properly fix this by using the stock Windows "taskkill" command instead, which is available since Windows XP Professional. Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-08-08gitk: Add keybinding to switch to parent commitLibravatar Max Kirillov1-0/+12
Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-27gitk: Add visiblerefs option, which lists always-shown branchesLibravatar Max Kirillov1-4/+6
When many branches contain a commit, the branches used to be shown in the form "A, B and many more", where A, B can be master of current HEAD. But there are more which might be interesting to always know about. For example, "origin/master". The new option, visiblerefs, is stored in ~/.gitk. It contains a list of references which are always shown before "and many more" if they contain the commit. By default it is `{"master"}', which is compatible with previous behavior. Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-27gitk: Catch mkdtemp errorsLibravatar David Aguilar1-1/+3
105b5d3f ("gitk: Use mktemp -d to avoid predictable temporary directories") introduced a dependency on mkdtemp, which is not available on Windows. Use the original temporary directory behavior when mkdtemp fails. This makes the code use mkdtemp when available and gracefully fallback to the existing behavior when it is not available. Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Use mktemp -d to avoid predictable temporary directoriesLibravatar David Aguilar1-1/+2
gitk uses a predictable ".gitk-tmp.$PID" pattern when generating a temporary directory. Use "mktemp -d .gitk-tmp.XXXXXX" to harden gitk against someone seeding /tmp with files matching the pid pattern. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Honor TMPDIR when viewing external diffsLibravatar David Aguilar1-2/+9
gitk fails to show diffs when browsing a read-only repository. This is due to gitk's assumption that the current directory is always writable. Teach gitk to honor either the GITK_TMPDIR or TMPDIR environment variables. This allows users to override the default location used when writing temporary files. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Show staged submodules regardless of ignore configLibravatar Jens Lehmann1-3/+10
Currently setting submodule.<name>.ignore and/or diff.ignoreSubmodules to "all" suppresses all output of submodule changes for gitk. This is really confusing, as even when the user chooses to record a new commit for an ignored submodule by adding it manually this change won't show up under "Local changes checked in to index but not committed". Fix that by using the '--ignore-submodules=dirty' option for both callers of "git diff-index --cached" when the underlying git version supports that option. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Allow displaying time zones from author and commit dates timestampsLibravatar Anders Kaseorg1-1/+23
Now gitk can be configured to display author and commit dates in their original timezone, by putting %z into datetimeformat in ~/.gitk. Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Switch to patch mode when searching for line originLibravatar Max Kirillov1-2/+6
If the "Show origin of this line" is started from tree mode, it still shows the result in tree mode, which I suppose not what user expects to see. Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-06-15gitk: Replace SHA1 entry field on keyboard pasteLibravatar Ilya Bobyr1-0/+1
We already replace old SHA with the clipboard content for the mouse paste event. It seems reasonable to do the same when pasting from keyboard. Signed-off-by: Ilya Bobyr <ilya.bobyr@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-01-23gitk: Indent word-wrapped lines in commit display headerLibravatar Paul Mackerras1-1/+1
In the cases where the lines starting with Precedes:, Follows: and Branches: in the commit display are long enough to be word-wrapped, this adds a 1cm margin on the left of the wrapped lines, to make the display more readable. Suggested by Stephen Rothwell. Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-01-22gitk: Comply with XDG base directory specificationLibravatar Astril Hayato1-5/+30
Write the gitk config data to $XDG_CONFIG_HOME/git/gitk ($HOME/.config/git/gitk by default) in line with the XDG specification. This makes it consistent with git which also follows the spec. If $HOME/.gitk already exists use that for backward compatibility, so only new installations are affected. Signed-off-by: Astril Hayato <astrilhayato@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-01-21gitk: Replace "next" and "prev" buttons with down and up arrowsLibravatar Marc Branchaud1-2/+28
Users often find that "next" and "prev" do the opposite of what they expect. For example, "next" moves to the next match down the list, but that is almost always backwards in time. Replacing the text with arrows makes it clear where the buttons will take the user. Signed-off-by: Marc Branchaud <marcnarc@xiplink.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-01-21gitk: Update copyright datesLibravatar Paul Mackerras1-2/+2
Signed-off-by: Paul Mackerras <paulus@samba.org>
2014-01-21gitk: Fix mistypeLibravatar Max Kirillov1-1/+1
Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-12-02gitk: Recognize -L optionLibravatar Thomas Rast1-0/+8
This gives line-log support to gitk, by exploiting the new support for processing and showing "inline" diffs straight from the git-log output. Note that we 'set allknown 0', which is a bit counterintuitive since this is a "known" option. But that flag prevents gitk from thinking it can optimize the view by running rev-list to see the topology; in the -L case that doesn't work. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-12-02gitk: Support showing the gathered inline diffsLibravatar Thomas Rast1-0/+38
The previous commit split the diffs into a separate field. Now we actually want to show them. To that end we use the stored diff, and - process it once to build a fake "tree diff", i.e., a list of all changed files; - feed it through parseblobdiffline to actually format it into the $ctext field, like the existing diff machinery would. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-12-02gitk: Split out diff part in $commitinfoLibravatar Thomas Rast1-1/+10
So far we just parsed everything after the headers into the "comment" bit of $commitinfo, including notes and -- if you gave weird options -- the diff. Split out the diff, if any, into a separate field. It's easy to recognize, since it always starts with /^diff/ and is preceded by an empty line. We take care to snip away said empty line. The display code already properly spaces the end of the message from the first diff, and leaving another empty line at the end looks ugly. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-12-02gitk: Refactor per-line part of getblobdiffline and its supportLibravatar Thomas Rast1-195/+213
For later use with data sources other than a pipe, refactor the big worker part of getblobdiffline to a separate function parseblobdiffline. Also refactor its initialization and wrap-up to separate routines. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-12-02gitk: Support -G option from the command lineLibravatar Thomas Rast1-1/+1
The -G option's usage is exactly analogous to that of -S, so supporting it is easy. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-10-31gitk: Tag display improvementsLibravatar Paul Mackerras1-13/+83
When a commit has many tags, the tag icons in the graph display can easily become so wide as to push the commit message off the right-hand edge of the graph display pane. This changes the display so that if there are more than 3 tags or they would take up more than a quarter of the width of the pane, we instead display a single tag icon with a legend inside it like "4 tags...". If the user clicks on the tag icon, gitk then displays all the tags in the diff display pane. Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-13gitk: On OSX, bring the gitk window to frontLibravatar Tair Sabirgaliev1-0/+9
On OSX, Tcl/Tk application windows are created behind all the applications down the stack of windows. This is very annoying, because once a gitk window appears, it's the downmost window and switching to it is pain. The patch is: if we are on OSX, use osascript to bring the current Wish process window to front. Signed-off-by: Tair Sabirgaliev <tair.sabirgaliev@gmail.com> Thanks-to: Stefan Haller <lists@haller-berlin.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-13gitk: Add support for -G'regex' pickaxe variantLibravatar Martin Langhoff1-1/+4
git log -G'regex' is a very useful alternative to the classic pickaxe. Minimal patch to make it usable from gitk. [zj: reword message] [paulus@samba.org: reword droplist item] Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-11gitk: Add menu item for reverting commitsLibravatar Knut Franke1-0/+62
Sometimes it's helpful (at least psychologically) to have this feature easily accessible. Code borrows heavily from cherrypick. Signed-off-by: Knut Franke <Knut.Franke@gmx.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-11gitk: Simplify file filteringLibravatar Felipe Contreras1-13/+7
git diff is perfectly able to do this with '-- files', no need for manual filtering. This makes gettreediffs consistent with getblobdiffs. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-11gitk: Display the date of a tag in a human-friendly wayLibravatar Anand Kumria1-1/+1
By selecting a tag within gitk you can display information about it. This information is output by using the command 'git cat-file tag <tagid>' This outputs the *raw* information from the tag, amongst which is the time - in seconds since the epoch. As useful as that value is, I find it a lot easier to read and process time which it is something like: "Mon Dec 31 14:26:11 2012 -0800" This change will modify the display of tags in gitk like so: @@ -1,7 +1,7 @@ object 5d417842efeafb6e109db7574196901c4e95d273 type commit tag v1.8.1 -tagger Junio C Hamano <gitster@pobox.com> 1356992771 -0800 +tagger Junio C Hamano <gitster@pobox.com> Mon Dec 31 14:26:11 2012 -0800 Git 1.8.1 -----BEGIN PGP SIGNATURE----- Signed-off-by: Anand Kumria <wildfire@progsoc.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-05-11gitk: Improve behaviour of drop-down listsLibravatar Paul Mackerras1-1/+6
The drop-down lists used for things like the criteria for finding commits (containing/touching paths/etc.) use a combobox if we are using the ttk widgets. By default the combobox exports its value as the selection when it is changed, which is unnecessary, and sometimes the combobox wouldn't release the selection, which is annoying. To fix this, we make these comboboxes not export their selection, and also clear their selection whenever they are changed. This makes them more like a simple selection of alternatives, improving the look and feel of gitk. Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-04-01gitk: Move hard-coded colors to .gitkLibravatar Gauthier Östervall1-39/+110
The Preferences dialog gives control of the colors of some elements of the gitk user interface, but many are hard-coded in the gitk script. In order to allow these to be customized through the gitk config file, these other colors are stored in variables which can be set in the config file, thus providing a way for color schemes to be stored and shared. For win32, this makes the default foreground color that of window text rather than button text. Signed-off-by: Gauthier Östervall <gauthier@ostervall.se> [paulus@samba.org: Reworded commit message to be clearer, changed filesepfgcolor to black] Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-01-02gitk: Display important heads even when there are manyLibravatar Paul Mackerras1-15/+44
When there are more than $maxrefs descendant heads to display in the Branches field of the commit display, we currently just display "many", which is not very informative. To make the display more informative, we now look for "master" and whichever head is currently checked out, and display them even if there are too many heads to display them all. The display then looks like "Branches: master and many more (33)" for instance. Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-01-01gitk: Improve display of list of nearby tags and headsLibravatar Paul Mackerras1-3/+9
This provides a control in the preferences pane for the limit on how many tags or heads are displayed with the commit details under the Branch(es), Precedes and Follows headings. This limit is now saved in ~/.gitk so that changes are persistent. This also applies word-wrapping to the list of tags or heads under the Branch, Precedes and Follows headings, so that long lists are more readable. Signed-off-by: Paul Mackerras <paulus@samba.org>
2013-01-01gitk: Fix display of branch names on some commitsLibravatar Paul Mackerras1-2/+2
Sometimes the code that divides commits up into arcs creates two successive arcs, but the commit between them (the commit at the end of the first arc and the beginning of the second arc) has only one parent and one child. If that commit is also the head of one or more branches, those branches get omitted from the "Branches" field in the commit display. The omission occurs because the commit gets erroneously identified as a commit which is part-way along an arc in [descheads]. This fixes it by changing the test to look at the arcouts array, which only contains elements for the commits at the start or end of an arc. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2012-10-22gitk: When searching, only highlight files when in Patch modeLibravatar Stefan Haller1-7/+6
This fixes another regression that was introduced in b967135 ("gitk: Synchronize highlighting in file view when scrolling diff"): when searching for a string in tree mode, jumping to the next search hit would highlight the "Comments" entry in the file list. Signed-off-by: Stefan Haller <stefan@haller-berlin.de> Signed-off-by: Paul Mackerras <paulus@samba.org>