Tags matching a new multi-valued config option log.noAbbrevTags are not abbreviated. The config setting is in git config logs.* rather than gitk's own configuration, because: - Tools which manage git trees may want to set this, depending on their knowledge of the nature of the tags likely to be present; - Whether this property ought to be set is mostly a property of the contents of the tag namespaces in the tree, not a user preference. (Although of course user preferences are supported.) - Other git utilities (or out of tree utilities) may want to reference this setting for their own display purposes. There will be another, separate, patch to the `git' tree to document this config option. Background motivation: Debian's dgit archive gateway tool generates and uses tags called archive/debian/VERSION. If such a tag refers to a Debian source tree, it is probably very interesting because it refers to a version actually uploaded to Debian by the Debian package maintainer. We would therefore like a way to specify that such tags should be displayed in full. dgit will be able to set an appropriate config setting in the trees it deals with. Signed-off-by: Ian Jackson <ijackson@xxxxxxxxxxxxxxxxxxxxxx> --- gitk | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gitk b/gitk index d76f1e3..515d7b0 100755 --- a/gitk +++ b/gitk @@ -6547,6 +6547,14 @@ proc totalwidth {l font extra} { } proc tag_want_unabbrev {tag} { + global noabbrevtags + # noabbrevtags was reversed when we read config, so take first match + foreach pat $noabbrevtags { + set inverted [regsub {^\^} $pat {} pat] + if {[string match $pat $tag]} { + return [expr {!$inverted}] + } + } return 0 } @@ -12138,6 +12146,11 @@ set tclencoding [tcl_encoding $gitencoding] if {$tclencoding == {}} { puts stderr "Warning: encoding $gitencoding is not supported by Tcl/Tk" } +set noabbrevtags {} +catch { + set noabbrevtags [exec git config --get-all log.noAbbrevTags] +} +set noabbrevtags [lreverse [split $noabbrevtags "\n"]] set gui_encoding [encoding system] catch { -- 2.10.1