git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH GITK 4/6] gitk: Provide for config to specify tags not to abbreviate

From
IJIan Jackson <ijackson@chiark.greenend.org.uk>
Date
Nov 8, 2016, 00:52 UTC
Message-ID
<20161108005241.19888-5-ijackson@chiark.greenend.org.uk>
In-Reply-To
<20161108005241.19888-1-ijackson@chiark.greenend.org.uk>

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@chiark.greenend.org.uk>
---
 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
Previous: Ian JacksonNext: Ian Jackson
Message 5 of 18 in “Provide for config to specify tags not to abbreviate”
  1. 0/6 Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  2. 3/6 gitk: drawtags: Introduce concept of unabbreviated marksIan Jackson, Nov 8, 2016
  3. 2/6 gitk: Internal: drawtags: Idempotently reset "ntags"Ian Jackson, Nov 8, 2016
  4. 1/6 gitk: Internal: drawtags: Abolish "singletag" variableIan Jackson, Nov 8, 2016
  5. 4/6 gitk: Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  6. 5/6 config docs: Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  7. Jacob KellerNov 8, 2016
  8. Ian JacksonNov 8, 2016
  9. Jeff KingNov 8, 2016
  10. Ian JacksonNov 9, 2016
  11. Junio C HamanoNov 9, 2016
  12. Ian JacksonNov 9, 2016
  13. Junio C HamanoNov 9, 2016
  14. Ian JacksonNov 9, 2016
  15. Markus HitterNov 10, 2016
  16. Ian JacksonNov 8, 2016
  17. Markus HitterNov 8, 2016
  18. Ian JacksonNov 8, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.