git/git.git
6 years agogitk: Enable mouse horizontal scrolling in diff pane
Gabriele Mazzotta [Sat, 15 Nov 2014 14:05:06 +0000 (15:05 +0100)]
gitk: Enable mouse horizontal scrolling in diff pane

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>
6 years agogitk: Default wrcomcmd to use --pretty=email
Chris Packham [Sun, 2 Nov 2014 08:37:50 +0000 (21:37 +1300)]
gitk: Default wrcomcmd to use --pretty=email

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>
6 years agogitk: Remove boilerplate for configuration variables
Max Kirillov [Sun, 14 Sep 2014 20:35:57 +0000 (23:35 +0300)]
gitk: Remove boilerplate for configuration variables

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agogitk: Show detached HEAD if --all is specified
Max Kirillov [Tue, 9 Sep 2014 07:29:16 +0000 (10:29 +0300)]
gitk: Show detached HEAD if --all is specified

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>
6 years agogitk: Do not depend on Cygwin's "kill" command on Windows
Sebastian Schuberth [Thu, 23 Oct 2014 19:30:54 +0000 (21:30 +0200)]
gitk: Do not depend on Cygwin's "kill" command on Windows

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>
6 years agogitk: Updated Bulgarian translation (302t,0f,0u)
Alexander Shopov [Sun, 3 Aug 2014 12:36:43 +0000 (15:36 +0300)]
gitk: Updated Bulgarian translation (302t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agogitk: Add keybinding to switch to parent commit
Max Kirillov [Tue, 8 Jul 2014 20:45:35 +0000 (23:45 +0300)]
gitk: Add keybinding to switch to parent commit

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agogitk: Add visiblerefs option, which lists always-shown branches
Max Kirillov [Tue, 24 Jun 2014 05:19:44 +0000 (08:19 +0300)]
gitk: Add visiblerefs option, which lists always-shown branches

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>
6 years agogitk: Catch mkdtemp errors
David Aguilar [Thu, 19 Jun 2014 02:53:14 +0000 (19:53 -0700)]
gitk: Catch mkdtemp errors

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>
6 years agogitk: Use mktemp -d to avoid predictable temporary directories
David Aguilar [Fri, 13 Jun 2014 21:43:48 +0000 (14:43 -0700)]
gitk: Use mktemp -d to avoid predictable temporary directories

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>
6 years agogitk: Honor TMPDIR when viewing external diffs
David Aguilar [Fri, 13 Jun 2014 21:13:37 +0000 (14:13 -0700)]
gitk: Honor TMPDIR when viewing external diffs

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>
6 years agogitk: Show staged submodules regardless of ignore config
Jens Lehmann [Tue, 8 Apr 2014 19:36:08 +0000 (21:36 +0200)]
gitk: Show staged submodules regardless of ignore config

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>
6 years agogitk: Allow displaying time zones from author and commit dates timestamps
Anders Kaseorg [Mon, 12 May 2014 11:25:58 +0000 (07:25 -0400)]
gitk: Allow displaying time zones from author and commit dates timestamps

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>
6 years agogitk: Switch to patch mode when searching for line origin
Max Kirillov [Sat, 5 Apr 2014 20:38:50 +0000 (23:38 +0300)]
gitk: Switch to patch mode when searching for line origin

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>
6 years agogitk: Replace SHA1 entry field on keyboard paste
Ilya Bobyr [Thu, 20 Mar 2014 08:58:51 +0000 (01:58 -0700)]
gitk: Replace SHA1 entry field on keyboard paste

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>
7 years agogitk: Merge branch 'new' of https://github.com/vnwildman/gitk
Paul Mackerras [Fri, 21 Feb 2014 01:08:41 +0000 (12:08 +1100)]
gitk: Merge branch 'new' of https://github.com/vnwildman/gitk

to get Vietnamese translations for gitk.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agogitk: Indent word-wrapped lines in commit display header
Paul Mackerras [Thu, 23 Jan 2014 11:06:22 +0000 (22:06 +1100)]
gitk: Indent word-wrapped lines in commit display header

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>
7 years agogitk: Comply with XDG base directory specification
Astril Hayato [Tue, 21 Jan 2014 19:10:16 +0000 (19:10 +0000)]
gitk: Comply with XDG base directory specification

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>
7 years agogitk: Replace "next" and "prev" buttons with down and up arrows
Marc Branchaud [Wed, 18 Dec 2013 16:04:13 +0000 (11:04 -0500)]
gitk: Replace "next" and "prev" buttons with down and up arrows

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>
7 years agogitk: chmod +x po2msg.sh
Jonathan Nieder [Mon, 25 Nov 2013 21:00:10 +0000 (13:00 -0800)]
gitk: chmod +x po2msg.sh

The Makefile only runs it using tclsh, but because the fallback po2msg
script has the usual tcl preamble starting with #!/bin/sh it can also
be run directly.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agogitk: Update copyright dates
Paul Mackerras [Tue, 21 Jan 2014 11:02:27 +0000 (22:02 +1100)]
gitk: Update copyright dates

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agogitk: Add Bulgarian translation (304t)
Alexander Shopov [Wed, 15 Jan 2014 11:27:29 +0000 (13:27 +0200)]
gitk: Add Bulgarian translation (304t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agogitk: Fix mistype
Max Kirillov [Sat, 18 Jan 2014 12:58:51 +0000 (14:58 +0200)]
gitk: Fix mistype

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agol10n: Init Vietnamese translation
Trần Ngọc Quân [Sat, 14 Dec 2013 07:43:04 +0000 (14:43 +0700)]
l10n: Init Vietnamese translation

Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
7 years agogitk: Recognize -L option
Thomas Rast [Sat, 16 Nov 2013 17:37:44 +0000 (18:37 +0100)]
gitk: Recognize -L option

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>
7 years agogitk: Support showing the gathered inline diffs
Thomas Rast [Sat, 16 Nov 2013 17:37:43 +0000 (18:37 +0100)]
gitk: Support showing the gathered inline diffs

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>
7 years agogitk: Split out diff part in $commitinfo
Thomas Rast [Sat, 16 Nov 2013 17:37:42 +0000 (18:37 +0100)]
gitk: Split out diff part in $commitinfo

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>
7 years agogitk: Refactor per-line part of getblobdiffline and its support
Thomas Rast [Sat, 16 Nov 2013 17:37:41 +0000 (18:37 +0100)]
gitk: Refactor per-line part of getblobdiffline and its support

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>
7 years agogitk: Support -G option from the command line
Thomas Rast [Sat, 16 Nov 2013 17:37:40 +0000 (18:37 +0100)]
gitk: Support -G option from the command line

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>
7 years agogitk: Tag display improvements
Paul Mackerras [Wed, 2 Jan 2013 23:10:31 +0000 (10:10 +1100)]
gitk: Tag display improvements

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>
8 years agogitk: Update Swedish translation (304t)
Peter Krefting [Thu, 16 May 2013 07:14:35 +0000 (08:14 +0100)]
gitk: Update Swedish translation (304t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: On OSX, bring the gitk window to front
Tair Sabirgaliev [Wed, 24 Apr 2013 09:48:27 +0000 (15:48 +0600)]
gitk: On OSX, bring the gitk window to front

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>
8 years agogitk: Add support for -G'regex' pickaxe variant
Martin Langhoff [Thu, 14 Jun 2012 18:34:11 +0000 (20:34 +0200)]
gitk: Add support for -G'regex' pickaxe variant

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>
8 years agogitk: Add menu item for reverting commits
Knut Franke [Sat, 27 Apr 2013 14:36:13 +0000 (16:36 +0200)]
gitk: Add menu item for reverting commits

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>
8 years agogitk: Simplify file filtering
Felipe Contreras [Sat, 27 Apr 2013 22:01:39 +0000 (17:01 -0500)]
gitk: Simplify file filtering

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>
8 years agogitk: Display the date of a tag in a human-friendly way
Anand Kumria [Mon, 29 Apr 2013 05:20:48 +0000 (06:20 +0100)]
gitk: Display the date of a tag in a human-friendly way

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>
8 years agogitk: Improve behaviour of drop-down lists
Paul Mackerras [Sat, 11 May 2013 07:08:41 +0000 (17:08 +1000)]
gitk: Improve behaviour of drop-down lists

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>
8 years agogitk: Move hard-coded colors to .gitk
Gauthier Östervall [Wed, 27 Mar 2013 13:40:51 +0000 (14:40 +0100)]
gitk: Move hard-coded colors to .gitk

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>
8 years agogitk: Ignore gitk-wish buildproduct
Christian Couder [Wed, 23 Jan 2013 20:00:35 +0000 (12:00 -0800)]
gitk: Ignore gitk-wish buildproduct

gitk, when bound into the git.git project tree, used to live at the
root level, but in 62ba514 (Move gitk to its own subdirectory,
2007-11-17) it was moved to a subdirectory.  The code used to track
changes to TCLTK_PATH (which should cause gitk to be rebuilt to
point at the new interpreter) was left in the main Makefile instead
of being moved to the new Makefile that was created for the gitk
project.

Also add .gitignore file to list build artifacts for the gitk
project.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Display important heads even when there are many
Paul Mackerras [Wed, 2 Jan 2013 04:25:29 +0000 (15:25 +1100)]
gitk: Display important heads even when there are many

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>
8 years agogitk: Improve display of list of nearby tags and heads
Paul Mackerras [Tue, 1 Jan 2013 12:08:12 +0000 (23:08 +1100)]
gitk: Improve display of list of nearby tags and heads

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>
8 years agogitk: Fix display of branch names on some commits
Paul Mackerras [Tue, 1 Jan 2013 05:51:03 +0000 (16:51 +1100)]
gitk: Fix display of branch names on some commits

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>
8 years agogitk: Update Swedish translation (296t)
Peter Krefting [Wed, 3 Oct 2012 07:16:03 +0000 (08:16 +0100)]
gitk: Update Swedish translation (296t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: When searching, only highlight files when in Patch mode
Stefan Haller [Thu, 4 Oct 2012 20:50:17 +0000 (22:50 +0200)]
gitk: When searching, only highlight files when in Patch mode

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>
8 years agogitk: Fix error message when clicking on a connecting line
Stefan Haller [Thu, 4 Oct 2012 20:50:16 +0000 (22:50 +0200)]
gitk: Fix error message when clicking on a connecting line

When clicking on the line that connects two commit nodes, gitk
would bring up an error dialog saying "can't read "cflist_top":
no such variable".

This fixes a regression that was introduced with b967135 ("gitk:
Synchronize highlighting in file view when scrolling diff").

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Fix crash when not using themed widgets
Marcus Karlsson [Sun, 7 Oct 2012 21:21:14 +0000 (23:21 +0200)]
gitk: Fix crash when not using themed widgets

When configured not to use themed widgets gitk may crash on launch with
a message that says that the image "bm-left disabled bm-left-gray"
doesn't exist. This happens when the left and right arrow buttons are
created.

The crash can be avoided by configuring the buttons differently
depending on whether or not themed widgets are used. If themed widgets
are not used then only set the images to bm-left and bm-right
respectively, and keep the old behavior when themed widgets are used.

The previous behaviour was added in f062e50f to work around a bug in Tk
on OS X where the disabled state did not display properly. The buttons
may still not display correctly, however the workaround added in
f062e50f will still apply if gitk is used with themed widgets.

Make gitk not crash on launch when not using themed widgets.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Use bindshiftfunctionkey to bind Shift-F5
Andrew Wong [Tue, 2 Oct 2012 15:04:45 +0000 (11:04 -0400)]
gitk: Use bindshiftfunctionkey to bind Shift-F5

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Refactor code for binding modified function keys
Andrew Wong [Tue, 2 Oct 2012 15:04:44 +0000 (11:04 -0400)]
gitk: Refactor code for binding modified function keys

The function includes a workaround for systems where F* keys are mapped
to XF86_Switch_VT_* when modifiers are used.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Work around empty back and forward images when buttons are disabled
Stefan Haller [Sat, 22 Sep 2012 07:46:48 +0000 (09:46 +0200)]
gitk: Work around empty back and forward images when buttons are disabled

On Mac, the back and forward buttons show an empty rectange instead of
a grayed-out arrow when they are disabled. The reason is a Tk bug on Mac
that causes disabled images not to draw correctly (not to draw at all,
that is); see
<https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.tcl/V-nW1JBq0eU>.

To work around this, we explicitly provide gray images for the disabled
state; I think this looks better than the default stipple effect that you
get on Windows as well, but that may be a matter of taste.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Highlight first search result immediately on incremental search
Stefan Haller [Sat, 22 Sep 2012 07:40:25 +0000 (09:40 +0200)]
gitk: Highlight first search result immediately on incremental search

When typing in the "Search" field, select the current search result (so
that it gets highlighted in orange). This makes it easier to understand
what will happen if you then type Ctrl-S.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Highlight current search hit in orange
Stefan Haller [Sat, 22 Sep 2012 07:40:24 +0000 (09:40 +0200)]
gitk: Highlight current search hit in orange

When searching for text in the diff, and there are multiple occurrences
of the search string, the current one is highlighted in orange, and the
other ones in yellow. This makes it much easier to understand what happens
when you then click the Search button or hit Ctrl-S repeatedly.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Synchronize highlighting in file view when scrolling diff
Stefan Haller [Wed, 19 Sep 2012 18:17:27 +0000 (20:17 +0200)]
gitk: Synchronize highlighting in file view when scrolling diff

Whenever the diff pane scrolls, highlight the corresponding file in the
file list on the right.  For a large commit with many files and long
per-file diffs, this makes it easier to keep track of what you're looking
at.

This allows simplifying the prevfile and nextfile functions, because
all they have to do is scroll the diff pane.

In some situations we want to suppress this mechanism, for example when
clicking on a file in the file list to select it, or when searching in the
diff, in which case we want to highlight based on the current search hit
and not the top line visible. In these cases it's not sufficient to set
a "suppress" flag before scrolling and reset it afterwards, because the
scrolltext notification is sent deferred from a timer or some such; so we
need to remember the scroll position for which we want to suppress the
auto-highlighting until the next call to scrolltext; a bit ugly, but does
the job.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agoMerge branch 'da/gitk-reload-tag-contents' of git://github.com/gitster/git
Paul Mackerras [Wed, 12 Sep 2012 12:34:24 +0000 (22:34 +1000)]
Merge branch 'da/gitk-reload-tag-contents' of git://github.com/gitster/git
to get two commits from David Aguilar.

8 years agogitk: Rename 'tagcontents' to 'cached_tagcontent'
David Aguilar [Sat, 8 Sep 2012 19:53:16 +0000 (12:53 -0700)]
gitk: Rename 'tagcontents' to 'cached_tagcontent'

Name the 'tagcontents' variable similarly to the rest of the
variables cleared in the changedrefs() function.

This makes the naming consistent and provides a hint that it
should be cleared when reloading gitk's cache.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogitk: Teach "Reread references" to reload tags
David Aguilar [Sat, 8 Sep 2012 19:03:13 +0000 (12:03 -0700)]
gitk: Teach "Reread references" to reload tags

Tag contents, once read, are forever cached in memory.
This makes gitk unable to notice when tag contents change.

Allow users to cause a reload of the tag contents by using
the "File->Reread references" action.

Reported-by: Tim McCormack <cortex@brainonfire.net>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogitk: Fix GIT_TRACE issues
Aske Olsson [Thu, 10 May 2012 10:13:43 +0000 (12:13 +0200)]
gitk: Fix GIT_TRACE issues

Check if GIT_TRACE env var is set and unset it if it is.

If the environment var GIT_TRACE=1 exists gitk will fail when trying
to find gitdir:
$ git rev-parse --git-dir
trace: built-in: git 'rev-parse' '--git-dir'
.git

Other git commands will also show debug output hence not work as
intended.

Signed-off-by: Aske Olsson <askeolsson@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Avoid Meta1-F5
Felipe Contreras [Sat, 7 Apr 2012 00:29:38 +0000 (03:29 +0300)]
gitk: Avoid Meta1-F5

Meta1-F5 is commonly mapped by window managers and what not.
Use Shift-F5 instead.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: fix setting font display with new tabbed dialog layout.
Pat Thoyts [Sun, 1 Apr 2012 22:00:52 +0000 (23:00 +0100)]
gitk: fix setting font display with new tabbed dialog layout.

The changes to the dialog window tree broke the preview of the selected
font on the button. This corrects that issue.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogitk: fix tabbed preferences construction when using tcl 8.4
Pat Thoyts [Sun, 1 Apr 2012 22:00:51 +0000 (23:00 +0100)]
gitk: fix tabbed preferences construction when using tcl 8.4

In 8.5 the incr command creates the target variable if it does not exist
but in 8.4 using incr on a non-existing variable raises an error. Ensure
we have created our counter variable when creating the tabbed dialog for
non-themed preferences.

Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogitk: Teach gitk to respect log.showroot
Marcus Karlsson [Tue, 4 Oct 2011 20:08:13 +0000 (22:08 +0200)]
gitk: Teach gitk to respect log.showroot

In early days, all projects managed by git (except for git itself) had the
product of a fairly mature development history in their first commit, and
it was deemed unnecessary clutter to show additions of these thousands of
paths as a patch.

"git log" learned to show the patch for the initial commit without requiring
--root command line option at 0f03ca9 (config option log.showroot to show
the diff of root commits, 2006-11-23).

Teach gitk to respect log.showroot.

[paulus@samba.org: Cleaned up the Tcl a bit, use --bool on the
 git config call]

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Add menu items for comparing a commit with the marked commit
Paul Mackerras [Fri, 23 Mar 2012 11:07:27 +0000 (22:07 +1100)]
gitk: Add menu items for comparing a commit with the marked commit

Sometimes one wants to see the different between two commits that are
a long distance apart in the graph display.  This is difficult to do
with the "Diff this -> selected" and "Diff selected -> this" menu
items because the need to maintain the selection means that one can't
use the find facilities or the reference list window to navigate from
one to the other.

This provides an alternative using the mark.  Having found one commit,
one marks it with the "Mark this commit" menu item, then navigates to
the other commit and uses the new "Diff this -> marked commit" and/or
"Diff marked commit -> this" menu items.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Speed up resolution of short SHA1 ids
Paul Mackerras [Mon, 19 Mar 2012 00:21:08 +0000 (11:21 +1100)]
gitk: Speed up resolution of short SHA1 ids

On large repositories such as the Linux kernel, it can take quite a
noticeable time (several seconds) for gitk to resolve short SHA1 IDs
to their long form.  This speeds up the process by maintaining lists
of IDs indexed by the first 4 characters of the SHA1 ID, speeding up
the search by a factor of 65536 on large repositories.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Use symbolic font names "sans" and "monospace" when available
Jonathan Nieder [Thu, 8 Mar 2012 12:30:11 +0000 (06:30 -0600)]
gitk: Use symbolic font names "sans" and "monospace" when available

The following only concerns systems using X and the client-side font
rendering framework from freedesktop.org.  Windows and Mac OS X are
not affected.

Starting with version 8.5, Tk uses freetype and fontconfig by default
to render fonts on platforms that support it.  Gitk currently defaults
to the font Helvetica for the interface and Courier for diffs, and
both unfortunately look rather bad on screen in the default
configuration on many Linux distros with anti-aliasing and poor
hinting.

It is better to default to "sans" and "monospace", which are mapped by
fontconfig to some appropriate font of the sysadmin and user's
choosing (typically Bitstream Vera Sans and Mono).  The result looks
more sensible and it makes gitk feel like a well-behaved software
citizen since its fonts match other native apps.

This patch does not change the appearance of gitk for users that have
already run it, since gitk uses the remembered UI and diff font names
from ~/.gitk.

Requested-by: Michael Biebl <biebl@debian.org>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Acked-by: Mark Hills <mark@pogo.org.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Skip over AUTHOR/COMMIT_DATE when searching all fields
Frédéric Brière [Sun, 14 Mar 2010 22:59:09 +0000 (18:59 -0400)]
gitk: Skip over AUTHOR/COMMIT_DATE when searching all fields

This prevents a search for a number like "105" on "All Fields" from
matching against the raw author and commit timestamps.  These
timestamps were already not searchable by themselves, and the
displayed format does not match the query string anyway.

Signed-off-by: Frédéric Brière <fbriere@fbriere.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Make "git describe" output clickable, too
Jim Meyering [Sat, 10 Dec 2011 15:08:57 +0000 (16:08 +0100)]
gitk: Make "git describe" output clickable, too

Automake's contribution guidelines suggest using "git describe" output
in commit logs to reference previous commits.  By contrast, in
coreutils, I had acquired the habit of using a bare SHA1 prefix (8 hex
digits), since gitk creates clickable links for that, and not for "git
describe" output.

I prefer the readability of the full "git describe" output, yet want
to retain the gitk links, so this renders as clickable not just
SHA1-like strings, but also an SHA1-like string that is prefixed by
"-g".

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Fix the display of files when filtered by path
Pat Thoyts [Tue, 13 Dec 2011 16:50:50 +0000 (16:50 +0000)]
gitk: Fix the display of files when filtered by path

Launching 'gitk -- .' or 'gitk -- ..\t' restricts the display to files
under the given directory but the file list is left empty. This is because
the path_filter function fails to match the filenames which are relative
to the working tree to the filter which is filessytem relative.
This solves the problem by making both names fully qualified filesystem
paths before performing the comparison.

Tested-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Use a tabbed dialog to edit preferences
Pat Thoyts [Tue, 13 Dec 2011 14:56:49 +0000 (14:56 +0000)]
gitk: Use a tabbed dialog to edit preferences

This commit converts the user preferences dialog into a tabbed property
sheet grouping general properties, colours and font selections onto
separate pages. The previous implementation was exceeding the screen
height on some systems and this avoids such problems and permits extension
using new pages in the future.

If themed Tk is unavailable or undesired a reasonable facsimile of the
tabbed notebook widget is used instead.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Use "gitk: repo-top-level-dir" as window title
Zbigniew Jędrzejewski-Szmek [Wed, 9 Nov 2011 16:28:28 +0000 (17:28 +0100)]
gitk: Use "gitk: repo-top-level-dir" as window title

Previously, when run in a subdirectory, gitk would show the name
of this subdirectory as title, which was misleading. When run with
GIT_DIR set, it would show the cwd, which is even more misleading.

In case of non-bare repos, the .git suffix in the path is skipped.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
9 years agogitk: Make vi-style keybindings more vi-like
Jonathan Nieder [Mon, 19 Sep 2011 16:49:50 +0000 (11:49 -0500)]
gitk: Make vi-style keybindings more vi-like

When commit 6e2dda35 (Add new keybindings, 2005-09-22) added vi-style
keybindings to gitk (an excellent idea!), instead of adopting the
usual "hjkl = left, down, up, right" bindings used by less, vi, rogue,
and many other programs, it used "ijkl = up, left, down, right" to
mimic the inverted-T formation of the arrow keys on a qwerty keyboard,
in the style of Lode runner.  So using 'j' and 'k' to scroll through
commits produces utterly confusing results to the vi user, as 'k'
moves down and 'j' moves to the previous commit.

Luckily most non-vi-users are probably using an alternate set of keys
(cursor keys or z/x + n/p) anyway.  Switch to the expected vi/nethack
convention.

Requested-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Make "touching paths" search support backslashes
Yggy King [Wed, 13 Jul 2011 08:30:26 +0000 (01:30 -0700)]
gitk: Make "touching paths" search support backslashes

Gitk can search for commits touching a specified path. The search text is
always treated as a regular expression, regardless of the matching option
selected (Exact, IgnCase, or Regexp). In particular, backslashes escape
the next character. This is inconvenient on Windows systems, where backslashes
are the norm for path specifiers, for example when copy/pasting from
Windows Explorer or a cmd shell -- these copy-pasted paths must be manually
modified in the gitk search text edit box before they will work.

This change uses the match option "Exact" to mean that a slash is a slash,
not part of a regular expression. Backslashes are converted to frontslashes
before searching, thus allowing easy copy/pasting of paths on Windows
systems. If the previous behaviour of "touching paths" search is desired,
simply select the "Regexp" search mode.

One potential drawback is that the default setting for the match option
($findtype in the code) is "Exact", and so this change alters the default
behaviour, which may confuse users and lead to bug reports.

Signed-off-by: Yggy King <yggy@zeroandone.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Show modified files with separate work tree
Martin von Zweigbergk [Tue, 24 May 2011 02:44:08 +0000 (22:44 -0400)]
gitk: Show modified files with separate work tree

"git rev-parse --is-inside-work-tree" is currently used to determine
whether to show modified files in gitk (the red and green fake
commits). This does not work if the current directory is not inside
the work tree, as can be the case e.g. if GIT_WORK_TREE is
set. Instead, check if the repository is not bare and that we are not
inside the .git directory.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Simplify calculation of gitdir
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:18 +0000 (22:14 -0400)]
gitk: Simplify calculation of gitdir

Since 5024baa ([PATCH] Make gitk work when launched in a subdirectory,
2007-01-09), gitk has used 'git rev-parse --git-dir' to find the .git
directory. However, gitk still first checks for the $GIT_DIR
environment variable and that the value returned from git-rev-parse
does not point to a file. Since git-rev-parse does both of these
checks already, the checks can safely be removed from gitk. This makes
the gitdir procedure small enough to inline.

This cleanup introduces a UI regression in that the error message will
now be "Cannot find a git repository here." even in the case where
GIT_DIR points to a file, for which the error message was previously
"Cannot find the git directory \"%s\".". It should be noted, though,
that even before this patch, 'gitk --git-dir=path/to/some/file' would
give the former error message.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Run 'git rev-parse --git-dir' only once
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:17 +0000 (22:14 -0400)]
gitk: Run 'git rev-parse --git-dir' only once

It seems like gitk has been setting the global variable 'gitdir' at
startup since aa81d97 (gitk: Fix Update menu item, 2006-02-28).  It
should therefore no longer be necessary to call the procedure with the
same name (more than once to set the global variable).  Remove the
other call sites and use the global variable instead.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Put temporary directory inside .git
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:16 +0000 (22:14 -0400)]
gitk: Put temporary directory inside .git

When running "External diff" from gitk, the "from" and "to" files will
first be copied into a directory that is currently
".git/../.gitk-tmp.$pid".  When gitk is closed, the directory is
deleted. When the work tree is not at ".git/.." (which is supported
since the previous commit), that directory may not even be git-related
and it does not seem unlikely that permissions may not allow the
temporary directory to be created there.  Move the directory inside
.git instead.

This introduces a regression in the case that the .git directory
is readonly, but .git/.. is writeable.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Fix "External diff" with separate work tree
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:15 +0000 (22:14 -0400)]
gitk: Fix "External diff" with separate work tree

Running "External diff" to compare the index and work tree currently
brings up an empty blame view when the work tree is not the parent of
the git directory.  This is because the file that is taken from the
work tree is assumed to be in
$GIT_DIR/../<repo-relative-file-name>.  Fix it by feeding the diff tool
a path under $GIT_WORK_TREE instead of "$GIT_DIR/..".

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Fix "blame parent commit" with separate work tree
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:14 +0000 (22:14 -0400)]
gitk: Fix "blame parent commit" with separate work tree

Running "blame parent commit" currently brings up an empty blame view
when the the work tree is not the parent of the git directory.  Fix it
by feeding git-blame paths relative to $GIT_WORK_TREE instead of
"$GIT_DIR/..".

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Fix "show origin of this line" with separate work tree
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:13 +0000 (22:14 -0400)]
gitk: Fix "show origin of this line" with separate work tree

Running "show origin of this line" currently fails when the the work
tree is not the parent of the git directory.  Fix it by feeding
git-blame paths relative to $GIT_WORK_TREE instead of "$GIT_DIR/..".

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Fix file highlight when run in subdirectory
Martin von Zweigbergk [Tue, 5 Apr 2011 02:14:12 +0000 (22:14 -0400)]
gitk: Fix file highlight when run in subdirectory

The "highlight this only" and "highlight this too" commands in gitk
add the path relative to $GIT_WORK_TREE to the "Find" input box. When
the search (using git-diff-tree) is run, the paths are used
unmodified, except for some shell escaping. Since the search is run
from gitk's working directory, no commits matching the paths will be
found if gitk was started in a subdirectory.

Make the paths passed to git-diff-tree relative to gitk's working
directory instead of being relative to $GIT_WORK_TREE. If, however,
gitk is run outside of the working directory (e.g. with $GIT_WORK_TREE
set), we still need to use the path relative to $GIT_WORK_TREE.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Update copyright
Paul Mackerras [Sun, 24 Jul 2011 05:34:48 +0000 (15:34 +1000)]
gitk: Update copyright

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: When a commit contains a note, mark it with a yellow box
Raphael Zimmerer [Tue, 19 Apr 2011 20:37:09 +0000 (22:37 +0200)]
gitk: When a commit contains a note, mark it with a yellow box

It is desirable to see at a glance which commits do contain notes.
Therefore mark them with a yellow rectangle.

That can be suppressed with `gitk --no-notes`.

Signed-off-by: Raphael Zimmerer <killekulla@rdrz.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Remember time zones from author and commit timestamps
Anders Kaseorg [Wed, 19 Jan 2011 19:47:25 +0000 (14:47 -0500)]
gitk: Remember time zones from author and commit timestamps

When resolving a conflicted cherry-pick, this lets us pass
GIT_AUTHOR_DATE to git citool with the correct timezone.
It does this by making elements 2 and 4 of the commitinfo array
entries, which store the author and committer dates of the commit,
be 2-element lists storing the numerical date and timezone offset,
rather than just the numerical date.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agogitk: Remove unused $cdate array
Anders Kaseorg [Wed, 19 Jan 2011 19:46:59 +0000 (14:46 -0500)]
gitk: Remove unused $cdate array

It was unused since commit 9f1afe05c3 ("gitk: New improved gitk").

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Update cherry-pick error message parsing
Anders Kaseorg [Wed, 19 Jan 2011 19:45:00 +0000 (14:45 -0500)]
gitk: Update cherry-pick error message parsing

Commit 981ff5c37ae20687c98d98c8689d5e89016026d2 changed the error
message from git cherry-pick from
    Automatic cherry-pick failed.  [...advice...]
to
    error: could not apply 7ab78c9... Do something neat.
    [...advice...]

Update gitk’s regex to match this, restoring the ability to launch git
citool to resolve conflicted cherry-picks.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Quote tag names in event bindings to avoid problems with % chars
Pat Thoyts [Tue, 1 Mar 2011 23:50:50 +0000 (23:50 +0000)]
gitk: Quote tag names in event bindings to avoid problems with % chars

Tag names that contain a % character require quoting when used in event
bindings or the name may be mis-recognised for percent substitution in
the event script.

Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Allow user to control how much of the SHA1 ID gets auto-selected
Paul Mackerras [Wed, 9 Mar 2011 09:52:38 +0000 (20:52 +1100)]
gitk: Allow user to control how much of the SHA1 ID gets auto-selected

This adds a new spinbox on the Edit Preferences pane to allow the user
to control how many characters of the SHA1 ID get autoselected.

Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: spelling fixes in Russian translation
Skip [Mon, 17 Jan 2011 21:23:12 +0000 (22:23 +0100)]
gitk: spelling fixes in Russian translation

Signed-off-by: Skip <bsvskip@rambler.ru>
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Take only numeric version components when computing $git_version
Anders Kaseorg [Fri, 7 Jan 2011 00:42:33 +0000 (17:42 -0700)]
gitk: Take only numeric version components when computing $git_version

This fixes errors running with release candidate versions of Git:
  Error in startup script: expected version number but got "1.7.4-rc0"

Also, $git_version is no longer artificially limited to three
components.  That limitation was added by commit 194bbf6cc8c2
("gitk: Handle msysGit version during version comparisons") to deal
with msysGit version strings like “1.6.4.msysgit.0”, and we don’t need
it now.  Hence as another side effect, this enables showing notes with
git version 1.6.6.2 or 1.6.6.3, as originally intended by commit
7defefb13427 ("gitk: Show notes by default (like git log does").

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Reported-by: Mathias Lafeldt <misfire@debugon.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Add Brazilian Portuguese (pt-BR) translation
Alexandre Erwin Ittner [Tue, 7 Dec 2010 22:56:06 +0000 (20:56 -0200)]
gitk: Add Brazilian Portuguese (pt-BR) translation

Translating a SCM is tricky due to amount of jargon, so, I tried to
keep the wording consistent with both the German and Italian git
translations and the pt-BR translation of other SCMs.

Signed-off-by: Alexandre Erwin Ittner <alexandre@ittner.com.br>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Make text selectable on Mac
Stefan Haller [Sun, 14 Nov 2010 12:22:56 +0000 (13:22 +0100)]
gitk: Make text selectable on Mac

Stolen from git-gui, 23effa79f7 (original log message by
Shawn O. Pearce <spearce@spearce.org> follows):

    git-gui: Force focus to the diff viewer on mouse click.

    Apparently a "feature" of Tcl/Tk on Mac OS X is that a disabled text
    widget cannot receive focus or receive a selection within it.  This
    makes the diff viewer almost useless on that platform as you cannot
    select individual parts of the buffer.

    Now we force focus into the diff viewer when its clicked on with
    button 1.  This works around the feature and allows selection to
    work within the viewer just like it does on other less sane systems,
    like Microsoft Windows.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Prevent the text pane from becoming editable
Stefan Haller [Sun, 14 Nov 2010 12:21:50 +0000 (13:21 +0100)]
gitk: Prevent the text pane from becoming editable

When setting the "Patch/Tree" radio buttons to "Tree" and
clicking on a file to display it, the text pane would
accidentally become editable (because of the early return
in getblobline).

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Add the equivalent of diff --color-words
Thomas Rast [Sat, 16 Oct 2010 10:15:10 +0000 (12:15 +0200)]
gitk: Add the equivalent of diff --color-words

Use the newly added 'diff --word-diff=porcelain' to teach gitk a
color-words mode, with two different modes analogous to the
--word-diff=plain and --word-diff=color settings.  These are selected
by a dropdown box.

As an extra twist, automatically enable this word-diff support when
the user mentions a word-diff related option on the command line.
These options were previously ignored because they would break diff
parsing.

Both of these features are only enabled if we have a version of git
that supports --word-diff=porcelain, meaning at least 1.7.2.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Update Swedish translation (290t)
Peter Krefting [Sun, 12 Sep 2010 20:17:05 +0000 (21:17 +0100)]
gitk: Update Swedish translation (290t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agogitk: Show notes by default (like git log does)
Kirill Smelkov [Thu, 20 May 2010 09:50:41 +0000 (13:50 +0400)]
gitk: Show notes by default (like git log does)

Starting from ~ git-1.6.6, log, show & whatchanged show notes by default.

On the other hand, gitk does not show notes by default, because under
the hood it calls 'git log --pretty=raw ...' to get the log, and in
'git log' notes are turned off when user specifies format or pretty
settings.

Yes, it is possible to invoke 'gitk --show-notes' explicitly, but since
from user's perspective, gitk is gui enabled git log, it would be
logical for gitk to show notes by default too for consistency.

In git, --show-notes was introduced in 66b2ed (Fix "log" family not to
be too agressive about showing notes) which predates 1.6.6.2.

Notes can still be supressed with 'gitk --no-notes'.

Cc: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Display dirty submodules correctly
Jens Lehmann [Fri, 9 Apr 2010 20:16:42 +0000 (22:16 +0200)]
gitk: Display dirty submodules correctly

Since recently "git diff --submodule" prints out extra lines when the
submodule contains untracked or modified files. Show all those lines of
one submodule under the same header.

Also for newly added or removed submodules the submodule name contained
trailing garbage because the extraction of the name was not done right.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Fix display of copyright symbol
Pat Thoyts [Fri, 12 Mar 2010 18:31:49 +0000 (18:31 +0000)]
gitk: Fix display of copyright symbol

The script file uses utf-8 encoding but when sourced it will be read
using the default system encoding which is never utf8 on windows.
This causes the copyright symbol to display incorrectly in the about
dialog.  Using the unicode escape sequence avoids incorrect decoding
but does require a double escape in the .po files.

Also adjusted the year range.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Add emacs editor variable block
Pat Thoyts [Fri, 12 Mar 2010 18:31:48 +0000 (18:31 +0000)]
gitk: Add emacs editor variable block

Help contributors use the correct indentation style.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Avoid calling tk_setPalette on Windows
Pat Thoyts [Fri, 12 Mar 2010 18:31:47 +0000 (18:31 +0000)]
gitk: Avoid calling tk_setPalette on Windows

This just messes up the system colors.  Leave them alone.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Don't clobber "Remember this view" setting
Jonathan Nieder [Sat, 6 Mar 2010 22:58:42 +0000 (16:58 -0600)]
gitk: Don't clobber "Remember this view" setting

In the View → Edit View... dialog, the "Remember this view" option
always starts out unset.  Using the dialog to change an existing view
and ignoring the parts of the dialog that aren’t relevant results in
both the old and new versions of the view being lost.

The cause: right after newviewopts($curview,perm) is set to an
appropriate value, decode_view_opts is clobbering it with the default
value.  If that call is moved a little earlier, the "Remember this
view" option gets properly set to its previous value, fixing the
problem.

Reported-by: Steve Cotton <steve0001@s.cotton.clara.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Add comments to explain encode_view_opts and decode_view_opts
Jonathan Nieder [Sat, 6 Mar 2010 22:48:38 +0000 (16:48 -0600)]
gitk: Add comments to explain encode_view_opts and decode_view_opts

Summarize these functions to save the reader some time.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agogitk: Use consistent font for all text input fields
Mark Hills [Wed, 13 Jan 2010 20:40:22 +0000 (20:40 +0000)]
gitk: Use consistent font for all text input fields

Instead of setting the font for specific widgets, set the font for the
widget type. If themed widgets are not available, this is via the X
resources. If themed widgets are available, the theme font is used.

The exception is the SHA1 ID which is forced to use the fixed-width
font, even where themed widgets are used.

Signed-off-by: Mark Hills <mark@pogo.org.uk>
Signed-off-by: Paul Mackerras <paulus@samba.org>