{"thread":{"id":"32253","subject":"[PATCH] gitk: add a checkbox to control the visibility of tags","startedAt":"2012-11-30T21:08:57Z","lastAt":"2013-01-02T17:08:32Z","messageCount":18,"participants":["Łukasz Stelmach","Junio C Hamano","Lukasz Stelmach","Felipe Contreras","Stefan Haller","Marc Branchaud","Paul Mackerras"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"204360","messageId":"1354309737-4280-1-git-send-email-stlman@poczta.fm","threadId":"32253","inReplyTo":null,"subject":"[PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Łukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-11-30T21:08:57Z","receivedAt":"2012-11-30T21:08:57Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"Enable hiding of tags displayed in the tree as yellow labels.\nIf a repository is used together with a system like Gerrit\nthere may be quite a lot of tags used to control building\nand there may be hardly any place left for commit subjects.\n\nSigned-off-by: Łukasz Stelmach <stlman@poczta.fm>\n---\n gitk-git/gitk |   23 +++++++++++++++--------\n 1 files changed, 15 insertions(+), 8 deletions(-)\n\ndiff --git a/gitk-git/gitk b/gitk-git/gitk\nindex d93bd99..274b46b 100755\n--- a/gitk-git/gitk\n+++ b/gitk-git/gitk\n@@ -1754,7 +1754,7 @@ proc readrefs {} {\n     global tagids idtags headids idheads tagobjid\n     global otherrefids idotherrefs mainhead mainheadid\n     global selecthead selectheadid\n-    global hideremotes\n+    global hideremotes hidetags\n \n     foreach v {tagids idtags headids idheads otherrefids idotherrefs} {\n \tcatch {unset $v}\n@@ -1776,6 +1776,7 @@ proc readrefs {} {\n \t    set headids($name) $id\n \t    lappend idheads($id) $name\n \t} elseif {[string match \"tags/*\" $name]} {\n+\t    if {$hidetags} continue\n \t    # this lets refs/tags/foo^{} overwrite refs/tags/foo,\n \t    # which is what we want since the former is the commit ID\n \t    set name [string range $name 5 end]\n@@ -2702,7 +2703,7 @@ proc savestuff {w} {\n     global cmitmode wrapcomment datetimeformat limitdiffs\n     global colors uicolor bgcolor fgcolor diffcolors diffcontext selectbgcolor\n     global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk\n-    global hideremotes want_ttk\n+    global hideremotes hidetags want_ttk\n \n     if {$stuffsaved} return\n     if {![winfo viewable .]} return\n@@ -2725,6 +2726,7 @@ proc savestuff {w} {\n \tputs $f [list set autosellen $autosellen]\n \tputs $f [list set showneartags $showneartags]\n \tputs $f [list set hideremotes $hideremotes]\n+\tputs $f [list set hidetags $hidetags]\n \tputs $f [list set showlocalchanges $showlocalchanges]\n \tputs $f [list set datetimeformat $datetimeformat]\n \tputs $f [list set limitdiffs $limitdiffs]\n@@ -10864,7 +10866,7 @@ proc create_prefs_page {w} {\n proc prefspage_general {notebook} {\n     global NS maxwidth maxgraphpct showneartags showlocalchanges\n     global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n-    global hideremotes want_ttk have_ttk\n+    global hideremotes hidetags want_ttk have_ttk\n \n     set page [create_prefs_page $notebook.general]\n \n@@ -10887,6 +10889,9 @@ proc prefspage_general {notebook} {\n     ${NS}::checkbutton $page.hideremotes -text [mc \"Hide remote refs\"] \\\n \t-variable hideremotes\n     grid x $page.hideremotes -sticky w\n+    ${NS}::checkbutton $page.hidetags -text [mc \"Hide tag labels\"] \\\n+\t-variable hidetags\n+    grid x $page.hidetags -sticky w\n \n     ${NS}::label $page.ddisp -text [mc \"Diff display options\"]\n     grid $page.ddisp - -sticky w -pady 10\n@@ -10988,7 +10993,7 @@ proc doprefs {} {\n     global oldprefs prefstop showneartags showlocalchanges\n     global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor\n     global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n-    global hideremotes want_ttk have_ttk\n+    global hideremotes hidetags want_ttk have_ttk\n \n     set top .gitkprefs\n     set prefstop $top\n@@ -10997,7 +11002,7 @@ proc doprefs {} {\n \treturn\n     }\n     foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n-\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n+\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n \tset oldprefs($v) [set $v]\n     }\n     ttk_toplevel $top\n@@ -11117,7 +11122,7 @@ proc prefscan {} {\n     global oldprefs prefstop\n \n     foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n-\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n+\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n \tglobal $v\n \tset $v $oldprefs($v)\n     }\n@@ -11131,7 +11136,7 @@ proc prefsok {} {\n     global oldprefs prefstop showneartags showlocalchanges\n     global fontpref mainfont textfont uifont\n     global limitdiffs treediffs perfile_attrs\n-    global hideremotes\n+    global hideremotes hidetags\n \n     catch {destroy $prefstop}\n     unset prefstop\n@@ -11177,7 +11182,8 @@ proc prefsok {} {\n \t  $limitdiffs != $oldprefs(limitdiffs)} {\n \treselectline\n     }\n-    if {$hideremotes != $oldprefs(hideremotes)} {\n+    if {$hideremotes != $oldprefs(hideremotes) ||\n+        $hidetags != $oldprefs(hidetags)} {\n \trereadrefs\n     }\n }\n@@ -11601,6 +11607,7 @@ set cmitmode \"patch\"\n set wrapcomment \"none\"\n set showneartags 1\n set hideremotes 0\n+set hidetags 0\n set maxrefs 20\n set maxlinelen 200\n set showlocalchanges 1\n-- \n1.7.8.6\n"},{"id":"204403","messageId":"7vlidhmc5i.fsf@alter.siamese.dyndns.org","threadId":"32253","inReplyTo":"1354309737-4280-1-git-send-email-stlman@poczta.fm","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-12-02T02:16:25Z","receivedAt":"2012-12-02T02:16:25Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Łukasz Stelmach <stlman@poczta.fm> writes:\n\n> Enable hiding of tags displayed in the tree as yellow labels.\n> If a repository is used together with a system like Gerrit\n> there may be quite a lot of tags used to control building\n> and there may be hardly any place left for commit subjects.\n>\n> Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n> ---\n\nPaul, this patch is not done against your tree (does not have gitk\nat the top-level), but other than that, the change mimics the way\nexisting hideremoes is implemented and looks reasonable to me.\n\nWe _may_ want to unify these two \"hidestuff\" into a list of patterns\nthat hides any ref that match one of the patterns in the list, e.g.\n\n\tset hidestuff {refs/heads/*/* refs/tags/* refs/remotes/*}\n\nmay hide all tags, all remote-tracking branches and local branches\nthat have a slash in their names.\n\nBut that is an independent change that can come later.\n\n>  gitk-git/gitk |   23 +++++++++++++++--------\n>  1 files changed, 15 insertions(+), 8 deletions(-)\n>\n> diff --git a/gitk-git/gitk b/gitk-git/gitk\n> index d93bd99..274b46b 100755\n> --- a/gitk-git/gitk\n> +++ b/gitk-git/gitk\n> @@ -1754,7 +1754,7 @@ proc readrefs {} {\n>      global tagids idtags headids idheads tagobjid\n>      global otherrefids idotherrefs mainhead mainheadid\n>      global selecthead selectheadid\n> -    global hideremotes\n> +    global hideremotes hidetags\n>  \n>      foreach v {tagids idtags headids idheads otherrefids idotherrefs} {\n>  \tcatch {unset $v}\n> @@ -1776,6 +1776,7 @@ proc readrefs {} {\n>  \t    set headids($name) $id\n>  \t    lappend idheads($id) $name\n>  \t} elseif {[string match \"tags/*\" $name]} {\n> +\t    if {$hidetags} continue\n>  \t    # this lets refs/tags/foo^{} overwrite refs/tags/foo,\n>  \t    # which is what we want since the former is the commit ID\n>  \t    set name [string range $name 5 end]\n> @@ -2702,7 +2703,7 @@ proc savestuff {w} {\n>      global cmitmode wrapcomment datetimeformat limitdiffs\n>      global colors uicolor bgcolor fgcolor diffcolors diffcontext selectbgcolor\n>      global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk\n> -    global hideremotes want_ttk\n> +    global hideremotes hidetags want_ttk\n>  \n>      if {$stuffsaved} return\n>      if {![winfo viewable .]} return\n> @@ -2725,6 +2726,7 @@ proc savestuff {w} {\n>  \tputs $f [list set autosellen $autosellen]\n>  \tputs $f [list set showneartags $showneartags]\n>  \tputs $f [list set hideremotes $hideremotes]\n> +\tputs $f [list set hidetags $hidetags]\n>  \tputs $f [list set showlocalchanges $showlocalchanges]\n>  \tputs $f [list set datetimeformat $datetimeformat]\n>  \tputs $f [list set limitdiffs $limitdiffs]\n> @@ -10864,7 +10866,7 @@ proc create_prefs_page {w} {\n>  proc prefspage_general {notebook} {\n>      global NS maxwidth maxgraphpct showneartags showlocalchanges\n>      global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n> -    global hideremotes want_ttk have_ttk\n> +    global hideremotes hidetags want_ttk have_ttk\n>  \n>      set page [create_prefs_page $notebook.general]\n>  \n> @@ -10887,6 +10889,9 @@ proc prefspage_general {notebook} {\n>      ${NS}::checkbutton $page.hideremotes -text [mc \"Hide remote refs\"] \\\n>  \t-variable hideremotes\n>      grid x $page.hideremotes -sticky w\n> +    ${NS}::checkbutton $page.hidetags -text [mc \"Hide tag labels\"] \\\n> +\t-variable hidetags\n> +    grid x $page.hidetags -sticky w\n>  \n>      ${NS}::label $page.ddisp -text [mc \"Diff display options\"]\n>      grid $page.ddisp - -sticky w -pady 10\n> @@ -10988,7 +10993,7 @@ proc doprefs {} {\n>      global oldprefs prefstop showneartags showlocalchanges\n>      global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor\n>      global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n> -    global hideremotes want_ttk have_ttk\n> +    global hideremotes hidetags want_ttk have_ttk\n>  \n>      set top .gitkprefs\n>      set prefstop $top\n> @@ -10997,7 +11002,7 @@ proc doprefs {} {\n>  \treturn\n>      }\n>      foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n> -\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n> +\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n>  \tset oldprefs($v) [set $v]\n>      }\n>      ttk_toplevel $top\n> @@ -11117,7 +11122,7 @@ proc prefscan {} {\n>      global oldprefs prefstop\n>  \n>      foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n> -\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n> +\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n>  \tglobal $v\n>  \tset $v $oldprefs($v)\n>      }\n> @@ -11131,7 +11136,7 @@ proc prefsok {} {\n>      global oldprefs prefstop showneartags showlocalchanges\n>      global fontpref mainfont textfont uifont\n>      global limitdiffs treediffs perfile_attrs\n> -    global hideremotes\n> +    global hideremotes hidetags\n>  \n>      catch {destroy $prefstop}\n>      unset prefstop\n> @@ -11177,7 +11182,8 @@ proc prefsok {} {\n>  \t  $limitdiffs != $oldprefs(limitdiffs)} {\n>  \treselectline\n>      }\n> -    if {$hideremotes != $oldprefs(hideremotes)} {\n> +    if {$hideremotes != $oldprefs(hideremotes) ||\n> +        $hidetags != $oldprefs(hidetags)} {\n>  \trereadrefs\n>      }\n>  }\n> @@ -11601,6 +11607,7 @@ set cmitmode \"patch\"\n>  set wrapcomment \"none\"\n>  set showneartags 1\n>  set hideremotes 0\n> +set hidetags 0\n>  set maxrefs 20\n>  set maxlinelen 200\n>  set showlocalchanges 1\n"},{"id":"204433","messageId":"50BBC760.7030208@poczta.fm","threadId":"32253","inReplyTo":"7vlidhmc5i.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Lukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-02T21:25:52Z","receivedAt":"2012-12-02T21:25:52Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"W dniu 02.12.2012 03:16, Junio C Hamano pisze:\n> Łukasz Stelmach <stlman@poczta.fm> writes:\n> \n>> Enable hiding of tags displayed in the tree as yellow labels.\n>> If a repository is used together with a system like Gerrit\n>> there may be quite a lot of tags used to control building\n>> and there may be hardly any place left for commit subjects.\n>>\n>> Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n>> ---\n> \n> Paul, this patch is not done against your tree (does not have gitk\n> at the top-level),\n\nI did it on the master from github. Should I rebase it onto something else?\n\n> but other than that, the change mimics the way\n> existing hideremoes is implemented and looks reasonable to me.\n> \n> We _may_ want to unify these two \"hidestuff\" into a list of patterns\n> that hides any ref that match one of the patterns in the list, e.g.\n> \n> \tset hidestuff {refs/heads/*/* refs/tags/* refs/remotes/*}\n> \n> may hide all tags, all remote-tracking branches and local branches\n> that have a slash in their names.\n> \n> But that is an independent change that can come later.\n\nThis would make much more sense with gitk being abel to read a\nper-repository configuration file, say from [file join $gitdir k] and\nthen save it there (but only if the file exists). I will send a separate\npatch in a moment.\n\n>>  gitk-git/gitk |   23 +++++++++++++++--------\n>>  1 files changed, 15 insertions(+), 8 deletions(-)\n>>\n>> diff --git a/gitk-git/gitk b/gitk-git/gitk\n>> index d93bd99..274b46b 100755\n>> --- a/gitk-git/gitk\n>> +++ b/gitk-git/gitk\n>> @@ -1754,7 +1754,7 @@ proc readrefs {} {\n>>      global tagids idtags headids idheads tagobjid\n>>      global otherrefids idotherrefs mainhead mainheadid\n>>      global selecthead selectheadid\n>> -    global hideremotes\n>> +    global hideremotes hidetags\n>>  \n>>      foreach v {tagids idtags headids idheads otherrefids idotherrefs} {\n>>  \tcatch {unset $v}\n>> @@ -1776,6 +1776,7 @@ proc readrefs {} {\n>>  \t    set headids($name) $id\n>>  \t    lappend idheads($id) $name\n>>  \t} elseif {[string match \"tags/*\" $name]} {\n>> +\t    if {$hidetags} continue\n>>  \t    # this lets refs/tags/foo^{} overwrite refs/tags/foo,\n>>  \t    # which is what we want since the former is the commit ID\n>>  \t    set name [string range $name 5 end]\n>> @@ -2702,7 +2703,7 @@ proc savestuff {w} {\n>>      global cmitmode wrapcomment datetimeformat limitdiffs\n>>      global colors uicolor bgcolor fgcolor diffcolors diffcontext selectbgcolor\n>>      global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk\n>> -    global hideremotes want_ttk\n>> +    global hideremotes hidetags want_ttk\n>>  \n>>      if {$stuffsaved} return\n>>      if {![winfo viewable .]} return\n>> @@ -2725,6 +2726,7 @@ proc savestuff {w} {\n>>  \tputs $f [list set autosellen $autosellen]\n>>  \tputs $f [list set showneartags $showneartags]\n>>  \tputs $f [list set hideremotes $hideremotes]\n>> +\tputs $f [list set hidetags $hidetags]\n>>  \tputs $f [list set showlocalchanges $showlocalchanges]\n>>  \tputs $f [list set datetimeformat $datetimeformat]\n>>  \tputs $f [list set limitdiffs $limitdiffs]\n>> @@ -10864,7 +10866,7 @@ proc create_prefs_page {w} {\n>>  proc prefspage_general {notebook} {\n>>      global NS maxwidth maxgraphpct showneartags showlocalchanges\n>>      global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n>> -    global hideremotes want_ttk have_ttk\n>> +    global hideremotes hidetags want_ttk have_ttk\n>>  \n>>      set page [create_prefs_page $notebook.general]\n>>  \n>> @@ -10887,6 +10889,9 @@ proc prefspage_general {notebook} {\n>>      ${NS}::checkbutton $page.hideremotes -text [mc \"Hide remote refs\"] \\\n>>  \t-variable hideremotes\n>>      grid x $page.hideremotes -sticky w\n>> +    ${NS}::checkbutton $page.hidetags -text [mc \"Hide tag labels\"] \\\n>> +\t-variable hidetags\n>> +    grid x $page.hidetags -sticky w\n>>  \n>>      ${NS}::label $page.ddisp -text [mc \"Diff display options\"]\n>>      grid $page.ddisp - -sticky w -pady 10\n>> @@ -10988,7 +10993,7 @@ proc doprefs {} {\n>>      global oldprefs prefstop showneartags showlocalchanges\n>>      global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor\n>>      global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs\n>> -    global hideremotes want_ttk have_ttk\n>> +    global hideremotes hidetags want_ttk have_ttk\n>>  \n>>      set top .gitkprefs\n>>      set prefstop $top\n>> @@ -10997,7 +11002,7 @@ proc doprefs {} {\n>>  \treturn\n>>      }\n>>      foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n>> -\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n>> +\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n>>  \tset oldprefs($v) [set $v]\n>>      }\n>>      ttk_toplevel $top\n>> @@ -11117,7 +11122,7 @@ proc prefscan {} {\n>>      global oldprefs prefstop\n>>  \n>>      foreach v {maxwidth maxgraphpct showneartags showlocalchanges \\\n>> -\t\t   limitdiffs tabstop perfile_attrs hideremotes want_ttk} {\n>> +\t\t   limitdiffs tabstop perfile_attrs hideremotes hidetags want_ttk} {\n>>  \tglobal $v\n>>  \tset $v $oldprefs($v)\n>>      }\n>> @@ -11131,7 +11136,7 @@ proc prefsok {} {\n>>      global oldprefs prefstop showneartags showlocalchanges\n>>      global fontpref mainfont textfont uifont\n>>      global limitdiffs treediffs perfile_attrs\n>> -    global hideremotes\n>> +    global hideremotes hidetags\n>>  \n>>      catch {destroy $prefstop}\n>>      unset prefstop\n>> @@ -11177,7 +11182,8 @@ proc prefsok {} {\n>>  \t  $limitdiffs != $oldprefs(limitdiffs)} {\n>>  \treselectline\n>>      }\n>> -    if {$hideremotes != $oldprefs(hideremotes)} {\n>> +    if {$hideremotes != $oldprefs(hideremotes) ||\n>> +        $hidetags != $oldprefs(hidetags)} {\n>>  \trereadrefs\n>>      }\n>>  }\n>> @@ -11601,6 +11607,7 @@ set cmitmode \"patch\"\n>>  set wrapcomment \"none\"\n>>  set showneartags 1\n>>  set hideremotes 0\n>> +set hidetags 0\n>>  set maxrefs 20\n>>  set maxlinelen 200\n>>  set showlocalchanges 1\n> \n\n\n-- \nByło mi bardzo miło.               Czwarta pospolita klęska, [...]\n>Łukasz<                 Już nie katolicka lecz złodziejska.  (c)PP\n"},{"id":"204434","messageId":"1354483766-13925-1-git-send-email-stlman@poczta.fm","threadId":"32253","inReplyTo":"50BBC760.7030208@poczta.fm","subject":"[PATCH] gitk: read and write a repository specific configuration file","fromName":"Łukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-02T21:29:26Z","receivedAt":"2012-12-02T21:29:26Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"Enable gitk read and write repository specific configuration\nfile: \".git/k\" if the file exists. To make gitk use the local\nfile simply create one, e.g. with the touch(1) command.\n\nThis is very useful if one uses different views for different\nrepositories. Now there is no need to store all of them in\n~/.gitk and make the views list needlesly long.\n\nSigned-off-by: Łukasz Stelmach <stlman@poczta.fm>\n---\n gitk-git/gitk |   25 ++++++++++++++-----------\n 1 files changed, 14 insertions(+), 11 deletions(-)\n\ndiff --git a/gitk-git/gitk b/gitk-git/gitk\nindex d93bd99..60cf4cd 100755\n--- a/gitk-git/gitk\n+++ b/gitk-git/gitk\n@@ -2696,7 +2696,7 @@ proc doprogupdate {} {\n \n proc savestuff {w} {\n     global canv canv2 canv3 mainfont textfont uifont tabstop\n-    global stuffsaved findmergefiles maxgraphpct\n+    global stuffsaved findmergefiles maxgraphpct gitdir\n     global maxwidth showneartags showlocalchanges\n     global viewname viewfiles viewargs viewargscmd viewperm nextviewnum\n     global cmitmode wrapcomment datetimeformat limitdiffs\n@@ -2707,10 +2707,12 @@ proc savestuff {w} {\n     if {$stuffsaved} return\n     if {![winfo viewable .]} return\n     catch {\n-\tif {[file exists ~/.gitk-new]} {file delete -force ~/.gitk-new}\n-\tset f [open \"~/.gitk-new\" w]\n+\tset fn [expr [file exists [file join $gitdir k]] ? \\\n+\t\t{[file join $gitdir k-new]} : {\"~/.gitk-new\"}]\n+\tif {[file exists $fn]} {file delete -force $fn}\n+\tset f [open $fn  w]\n \tif {$::tcl_platform(platform) eq {windows}} {\n-\t    file attributes \"~/.gitk-new\" -hidden true\n+\t    catch {file attributes \"~/.gitk-new\" -hidden true}\n \t}\n \tputs $f [list set mainfont $mainfont]\n \tputs $f [list set textfont $textfont]\n@@ -2762,7 +2764,7 @@ proc savestuff {w} {\n \t}\n \tputs $f \"}\"\n \tclose $f\n-\tfile rename -force \"~/.gitk-new\" \"~/.gitk\"\n+\tfile rename -force $fn [regsub {\\-new$} $fn {}]\n     }\n     set stuffsaved 1\n }\n@@ -11663,7 +11665,14 @@ namespace import ::msgcat::mc\n ## And eventually load the actual message catalog\n ::msgcat::mcload $gitk_msgsdir\n \n+# check that we can find a .git directory somewhere...\n+if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n+    show_error {} . [mc \"Cannot find a git repository here.\"]\n+    exit 1\n+}\n+\n catch {source ~/.gitk}\n+catch {source [file join $gitdir k]}\n \n parsefont mainfont $mainfont\n eval font create mainfont [fontflags mainfont]\n@@ -11680,12 +11689,6 @@ setui $uicolor\n \n setoptions\n \n-# check that we can find a .git directory somewhere...\n-if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n-    show_error {} . [mc \"Cannot find a git repository here.\"]\n-    exit 1\n-}\n-\n set selecthead {}\n set selectheadid {}\n \n-- \n1.7.8.6\n"},{"id":"204435","messageId":"CAMP44s1UeAqO_4ous1Bp-PgJ2OJ+=f=CmfbNOKD51whd_jEmsQ@mail.gmail.com","threadId":"32253","inReplyTo":"7vlidhmc5i.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2012-12-02T21:40:06Z","receivedAt":"2012-12-02T21:40:06Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Sat, Dec 1, 2012 at 8:16 PM, Junio C Hamano <gitster@pobox.com> wrote:\n\n> We _may_ want to unify these two \"hidestuff\" into a list of patterns\n> that hides any ref that match one of the patterns in the list, e.g.\n>\n>         set hidestuff {refs/heads/*/* refs/tags/* refs/remotes/*}\n>\n> may hide all tags, all remote-tracking branches and local branches\n> that have a slash in their names.\n\nAnd hide the rest. Currently gitk shows all other refs (e.g. refs/hg/*).\n\n-- \nFelipe Contreras\n"},{"id":"204468","messageId":"1kujrnc.1r4khfkkpdoo1M%lists@haller-berlin.de","threadId":"32253","inReplyTo":"1354483766-13925-1-git-send-email-stlman@poczta.fm","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Stefan Haller","fromEmail":"lists@haller-berlin.de","sentAt":"2012-12-03T21:15:08Z","receivedAt":"2012-12-03T21:15:08Z","isPatch":true,"sender":{"key":"lists@haller-berlin.de","avatar":null},"body":"Lukasz Stelmach <stlman@poczta.fm> wrote:\n\n> Enable gitk read and write repository specific configuration\n> file: \".git/k\" if the file exists. To make gitk use the local\n> file simply create one, e.g. with the touch(1) command.\n\nI'm not sure I like this proposal. While it may be desirable to have\n*some* settings stored per repository, for most settings I want them to\nbe remembered globally.\n\nGit-gui tries to solve this by presenting two panes in the preferences\ndialog, so that I can choose the scope of every setting I change. This\nstill doesn't help for things that are remembered implicitly, like the\nwindow size.\n\nI don't have good suggestions how to solve this; just pointing out\nproblems.\n\n\n-- \nStefan Haller\nBerlin, Germany\nhttp://www.haller-berlin.de/\n"},{"id":"204500","messageId":"50BE5935.4040809@poczta.fm","threadId":"32253","inReplyTo":"1kujrnc.1r4khfkkpdoo1M%lists@haller-berlin.de","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Lukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-04T20:12:37Z","receivedAt":"2012-12-04T20:12:37Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"W dniu 03.12.2012 22:15, Stefan Haller pisze:\n> Lukasz Stelmach <stlman@poczta.fm> wrote:\n> \n>> Enable gitk read and write repository specific configuration\n>> file: \".git/k\" if the file exists. To make gitk use the local\n>> file simply create one, e.g. with the touch(1) command.\n> \n> I'm not sure I like this proposal. While it may be desirable to have\n> *some* settings stored per repository, for most settings I want them to\n> be remembered globally.\n\nThe way it works with my patch, gitk reads global settings from ~/.gitk.\nSo you can treat it as a template. Then, when you exit it saves to local\nfile if it exists. This of course means you can't override settings from\n./.git/k with something from ~/.gitk by simply choosing to on GUI.\nHowever, it takes no more than removing appropriate line from .git/k to\nget the value from ~/.gitk.\n\nIMHO this is a reasonable compromise which is available at no cost as\nfar as data structure complexity is concerned. Choosing where to save\nwhat would require a bit of information per configuration variable. With\na mask saved locally surprises may come when you change a variable,\nforget to localise it and it pops in a different repository. My\napproach, however simplistic, avoids this particular pitfall.\n\n\n> Git-gui tries to solve this by presenting two panes in the preferences\n> dialog, so that I can choose the scope of every setting I change. This\n> still doesn't help for things that are remembered implicitly, like the\n> window size.\n> \n> I don't have good suggestions how to solve this; just pointing out\n> problems.\n> \n> \n\n\n-- \nByło mi bardzo miło.               Czwarta pospolita klęska, [...]\n>Łukasz<                 Już nie katolicka lecz złodziejska.  (c)PP\n"},{"id":"204506","messageId":"1354668583-4893-1-git-send-email-stlman@poczta.fm","threadId":"32253","inReplyTo":"1354483766-13925-1-git-send-email-stlman@poczta.fm","subject":"[PATCH v2] gitk: read and write a repository specific configuration file","fromName":"Łukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-05T00:49:43Z","receivedAt":"2012-12-05T00:49:43Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"Enable gitk read and write repository specific configuration\nfile: \".git/k\" if the file exists. To make gitk use the local\nfile simply create one, e.g. with the touch(1) command.\n\nThis is very useful if one uses different views for different\nrepositories. Now there is no need to store all of them in\n~/.gitk and make the views list needlesly long.\n\nSigned-off-by: Łukasz Stelmach <stlman@poczta.fm>\n---\n\nSame as before but rebased onto Paul's repository.\n\n gitk |   25 ++++++++++++++-----------\n 1 files changed, 14 insertions(+), 11 deletions(-)\n\ndiff --git a/gitk b/gitk\nindex 379582a..c6b7dc3 100755\n--- a/gitk\n+++ b/gitk\n@@ -2703,7 +2703,7 @@ proc doprogupdate {} {\n \n proc savestuff {w} {\n     global canv canv2 canv3 mainfont textfont uifont tabstop\n-    global stuffsaved findmergefiles maxgraphpct\n+    global stuffsaved findmergefiles maxgraphpct gitdir\n     global maxwidth showneartags showlocalchanges\n     global viewname viewfiles viewargs viewargscmd viewperm nextviewnum\n     global cmitmode wrapcomment datetimeformat limitdiffs\n@@ -2714,10 +2714,12 @@ proc savestuff {w} {\n     if {$stuffsaved} return\n     if {![winfo viewable .]} return\n     catch {\n-\tif {[file exists ~/.gitk-new]} {file delete -force ~/.gitk-new}\n-\tset f [open \"~/.gitk-new\" w]\n+\tset fn [expr [file exists [file join $gitdir k]] ? \\\n+\t\t{[file join $gitdir k-new]} : {\"~/.gitk-new\"}]\n+\tif {[file exists $fn]} {file delete -force $fn}\n+\tset f [open $fn  w]\n \tif {$::tcl_platform(platform) eq {windows}} {\n-\t    file attributes \"~/.gitk-new\" -hidden true\n+\t    catch {file attributes \"~/.gitk-new\" -hidden true}\n \t}\n \tputs $f [list set mainfont $mainfont]\n \tputs $f [list set textfont $textfont]\n@@ -2769,7 +2771,7 @@ proc savestuff {w} {\n \t}\n \tputs $f \"}\"\n \tclose $f\n-\tfile rename -force \"~/.gitk-new\" \"~/.gitk\"\n+\tfile rename -force $fn [regsub {\\-new$} $fn {}]\n     }\n     set stuffsaved 1\n }\n@@ -11723,7 +11725,14 @@ namespace import ::msgcat::mc\n ## And eventually load the actual message catalog\n ::msgcat::mcload $gitk_msgsdir\n \n+# check that we can find a .git directory somewhere...\n+if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n+    show_error {} . [mc \"Cannot find a git repository here.\"]\n+    exit 1\n+}\n+\n catch {source ~/.gitk}\n+catch {source [file join $gitdir k]}\n \n parsefont mainfont $mainfont\n eval font create mainfont [fontflags mainfont]\n@@ -11740,12 +11749,6 @@ setui $uicolor\n \n setoptions\n \n-# check that we can find a .git directory somewhere...\n-if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n-    show_error {} . [mc \"Cannot find a git repository here.\"]\n-    exit 1\n-}\n-\n set selecthead {}\n set selectheadid {}\n \n-- \n1.7.8.6\n"},{"id":"204526","messageId":"50BF6629.8050806@xiplink.com","threadId":"32253","inReplyTo":"1354668583-4893-1-git-send-email-stlman@poczta.fm","subject":"Re: [PATCH v2] gitk: read and write a repository specific configuration file","fromName":"Marc Branchaud","fromEmail":"mbranchaud@xiplink.com","sentAt":"2012-12-05T15:20:09Z","receivedAt":"2012-12-05T15:20:09Z","isPatch":true,"sender":{"key":"mbranchaud@xiplink.com","avatar":null},"body":"On 12-12-04 07:49 PM, Łukasz Stelmach wrote:\n> Enable gitk read and write repository specific configuration\n> file: \".git/k\" if the file exists. To make gitk use the local\n> file simply create one, e.g. with the touch(1) command.\n> \n> This is very useful if one uses different views for different\n> repositories. Now there is no need to store all of them in\n> ~/.gitk and make the views list needlesly long.\n\ns/needlesly/needlessly/\n\n\t\tM.\n"},{"id":"204605","messageId":"1354966067-2865-1-git-send-email-stlman@poczta.fm","threadId":"32253","inReplyTo":"50BF6629.8050806@xiplink.com","subject":"[PATCH] gitk: read and write a repository specific configuration file","fromName":"Łukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-08T11:27:47Z","receivedAt":"2012-12-08T11:27:47Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"Enable gitk read and write repository specific configuration\nfile: \".git/k\" if the file exists. To make gitk use the local\nfile simply create one, e.g. with the touch(1) command.\n\nThis is very useful if one uses different views for different\nrepositories. Now there is no need to store all of them in\n~/.gitk and make the views list needlessly long.\n\nSigned-off-by: Łukasz Stelmach <stlman@poczta.fm>\n---\n gitk |   25 ++++++++++++++-----------\n 1 files changed, 14 insertions(+), 11 deletions(-)\n\ndiff --git a/gitk b/gitk\nindex 379582a..c6b7dc3 100755\n--- a/gitk\n+++ b/gitk\n@@ -2703,7 +2703,7 @@ proc doprogupdate {} {\n \n proc savestuff {w} {\n     global canv canv2 canv3 mainfont textfont uifont tabstop\n-    global stuffsaved findmergefiles maxgraphpct\n+    global stuffsaved findmergefiles maxgraphpct gitdir\n     global maxwidth showneartags showlocalchanges\n     global viewname viewfiles viewargs viewargscmd viewperm nextviewnum\n     global cmitmode wrapcomment datetimeformat limitdiffs\n@@ -2714,10 +2714,12 @@ proc savestuff {w} {\n     if {$stuffsaved} return\n     if {![winfo viewable .]} return\n     catch {\n-\tif {[file exists ~/.gitk-new]} {file delete -force ~/.gitk-new}\n-\tset f [open \"~/.gitk-new\" w]\n+\tset fn [expr [file exists [file join $gitdir k]] ? \\\n+\t\t{[file join $gitdir k-new]} : {\"~/.gitk-new\"}]\n+\tif {[file exists $fn]} {file delete -force $fn}\n+\tset f [open $fn  w]\n \tif {$::tcl_platform(platform) eq {windows}} {\n-\t    file attributes \"~/.gitk-new\" -hidden true\n+\t    catch {file attributes \"~/.gitk-new\" -hidden true}\n \t}\n \tputs $f [list set mainfont $mainfont]\n \tputs $f [list set textfont $textfont]\n@@ -2769,7 +2771,7 @@ proc savestuff {w} {\n \t}\n \tputs $f \"}\"\n \tclose $f\n-\tfile rename -force \"~/.gitk-new\" \"~/.gitk\"\n+\tfile rename -force $fn [regsub {\\-new$} $fn {}]\n     }\n     set stuffsaved 1\n }\n@@ -11723,7 +11725,14 @@ namespace import ::msgcat::mc\n ## And eventually load the actual message catalog\n ::msgcat::mcload $gitk_msgsdir\n \n+# check that we can find a .git directory somewhere...\n+if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n+    show_error {} . [mc \"Cannot find a git repository here.\"]\n+    exit 1\n+}\n+\n catch {source ~/.gitk}\n+catch {source [file join $gitdir k]}\n \n parsefont mainfont $mainfont\n eval font create mainfont [fontflags mainfont]\n@@ -11740,12 +11749,6 @@ setui $uicolor\n \n setoptions\n \n-# check that we can find a .git directory somewhere...\n-if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {\n-    show_error {} . [mc \"Cannot find a git repository here.\"]\n-    exit 1\n-}\n-\n set selecthead {}\n set selectheadid {}\n \n-- \n1.7.8.6\n"},{"id":"204621","messageId":"7vd2yjeg8f.fsf@alter.siamese.dyndns.org","threadId":"32253","inReplyTo":"1354966067-2865-1-git-send-email-stlman@poczta.fm","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-12-09T09:18:08Z","receivedAt":"2012-12-09T09:18:08Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Łukasz Stelmach <stlman@poczta.fm> writes:\n\n> Enable gitk read and write repository specific configuration\n> file: \".git/k\" if the file exists. To make gitk use the local\n> file simply create one, e.g. with the touch(1) command.\n>\n> This is very useful if one uses different views for different\n> repositories. Now there is no need to store all of them in\n> ~/.gitk and make the views list needlessly long.\n\nI do not use gitk heavily myself, but I have a mixed feeling about\nthis patch.\n\nForking the configuration from the one true ~/.gitk is easy; it is\njust the matter of copying it to repository specific location.  Once\nforked, however, it is very hard to merge these configuration files\nsprinkled across repositories back, or more importantly, change the\nsettings globally.  Imagine you just got a new monitor that is a lot\nfiner grained than the one you have been usingq, and your choice of\nfont size has been specified in terms of pixels; you would want to\nshow all gitk windows in larger font now, regardless of the\nrepository, but you now have to go to 47 different configuration\nfiles and update them.\n\nSo I suspect that this may introduce more trouble than it is worth\nfor users and should not be sold with a \"This is very useful\" label.\nAt best, it is \"This may be useful\"; otherwise the feature may end\nup harming our users.  I'd phrase it without judging if it is good\nor bad for the users, perhaps like this:\n\n    This allows one to specify different views for different\n    repositories.\n\nIn any case, the filename .git/k may be _cute_, but I do not think\nwe would want to see:\n\n    $ ls .git\n    branches        config       HEAD   index  k     objects\n    COMMIT_EDITMSG  description  hooks  info   logs  refs\n\nIt is too cryptic, unless the user _knows_ 'k' is for gitk.  I'd\ncall it $GIT_DIR/gitkconfig or something, if I were supportive for\nthis feature (which I am not enthusiastic, yet).\n\nThanks.\n"},{"id":"204626","messageId":"20121209104426.GA20818@bloggs.ozlabs.ibm.com","threadId":"32253","inReplyTo":"7vd2yjeg8f.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Paul Mackerras","fromEmail":"paulus@samba.org","sentAt":"2012-12-09T10:44:26Z","receivedAt":"2012-12-09T10:44:26Z","isPatch":true,"sender":{"key":"paulus@samba.org","avatar":"https://avatars.githubusercontent.com/u/1606439?v=4"},"body":"On Sun, Dec 09, 2012 at 01:18:08AM -0800, Junio C Hamano wrote:\n> Łukasz Stelmach <stlman@poczta.fm> writes:\n> \n> > Enable gitk read and write repository specific configuration\n> > file: \".git/k\" if the file exists. To make gitk use the local\n> > file simply create one, e.g. with the touch(1) command.\n> >\n> > This is very useful if one uses different views for different\n> > repositories. Now there is no need to store all of them in\n> > ~/.gitk and make the views list needlessly long.\n> \n> I do not use gitk heavily myself, but I have a mixed feeling about\n> this patch.\n\nI agree, I think this would be surprising to people who are used to\nthe way gitk works now.\n\nI could imagine having a checkbox in the Edit->Preferences dialog to\nsay \"Save configuration settings locally\", and if you check that box,\nthen it writes the configuration to .git/gitkconfig or whatever\n(having first saved that setting in the global ~/.gitk).  But I think\nit should be an opt-in thing.\n\n> In any case, the filename .git/k may be _cute_, but I do not think\n> we would want to see:\n> \n>     $ ls .git\n>     branches        config       HEAD   index  k     objects\n>     COMMIT_EDITMSG  description  hooks  info   logs  refs\n> \n> It is too cryptic, unless the user _knows_ 'k' is for gitk.  I'd\n> call it $GIT_DIR/gitkconfig or something, if I were supportive for\n> this feature (which I am not enthusiastic, yet).\n\nI agree with this too.\n\nPaul.\n"},{"id":"204629","messageId":"50C48E6A.5020609@poczta.fm","threadId":"32253","inReplyTo":"7vd2yjeg8f.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Lukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-09T13:13:14Z","receivedAt":"2012-12-09T13:13:14Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"W dniu 09.12.2012 10:18, Junio C Hamano pisze:\n> Łukasz Stelmach <stlman@poczta.fm> writes:\n> \n>> Enable gitk read and write repository specific configuration\n>> file: \".git/k\" if the file exists. To make gitk use the local\n>> file simply create one, e.g. with the touch(1) command.\n>>\n>> This is very useful if one uses different views for different\n>> repositories. Now there is no need to store all of them in\n>> ~/.gitk and make the views list needlessly long.\n> \n> I do not use gitk heavily myself, but I have a mixed feeling about\n> this patch.\n> \n> Forking the configuration from the one true ~/.gitk is easy; it is\n> just the matter of copying it to repository specific location.  Once\n> forked, however, it is very hard to merge these configuration files\n> sprinkled across repositories back, or more importantly, change the\n> settings globally.\n\nFor the record, I assumed someone using git is capable of doing some\nsimple tricks with find, sed and the like.\n\n\nMerging configuration from the global file (~/.gitk) is quite easy as\nthe file is sourced just before the local file. If any option is not set\nin the local file the global value is effective.\n\nTo handle the case you describe below...\n\n> Imagine you just got a new monitor that is a lot\n> finer grained than the one you have been usingq, and your choice of\n> font size has been specified in terms of pixels; you would want to\n> show all gitk windows in larger font now, regardless of the\n> repository, but you now have to go to 47 different configuration\n> files and update them.\n\n\nyou need to (assume one keeps git repositoris below $HOME)\n\n1. Enter a random repository\n2. mv .git/gitk .git/gitk-local (see below)\n3. Run gitk, configure fonts to your taste, save config (it will be\nsaved  globally)\n4. mv .git/gitk-local .git/gitk\n4 Do a trick\n$ find ../ -name gitk -type f -path '*/.git/gitk' -print0 | \\\n  xargs -0 sed -i -e '/^set [a-z]\\+font /d'\n\nNow the font settings from ~/.gitk will be applied (and saved locally\nwhen gitk exits) in every repository find(1) found.\n\n> So I suspect that this may introduce more trouble than it is worth\n> for users and should not be sold with a \"This is very useful\" label.\n> At best, it is \"This may be useful\";\n\nI work with more than two dozen different repositories and saving the\nlist of branches I want to see upon startup is quite important for me.\n\n> otherwise the feature may end\n> up harming our users.  I'd phrase it without judging if it is good\n> or bad for the users, perhaps like this:\n> \n>     This allows one to specify different views for different\n>     repositories.\n\nAt present the code won't harm anyone not willing to get harmed. To make\ngitk save the configuration locally user needs to create the\nconfiguration file manually, outside of gitk, for example with touch(1)\n(yes it may be empty).\n\n> In any case, the filename .git/k may be _cute_, but I do not think\n> we would want to see:\n> \n>     $ ls .git\n>     branches        config       HEAD   index  k     objects\n>     COMMIT_EDITMSG  description  hooks  info   logs  refs\n\nI agree this was just to draw your attention ;-)\n\n> It is too cryptic, unless the user _knows_ 'k' is for gitk.  I'd\n> call it $GIT_DIR/gitkconfig or something, if I were supportive for\n> this feature (which I am not enthusiastic, yet).\n\nI think simply $GIT_DIR/gitk as in ~/.gitk is going to be fine.\n\n\n-- \nByło mi bardzo miło.               Czwarta pospolita klęska, [...]\n>Łukasz<                 Już nie katolicka lecz złodziejska.  (c)PP\n"},{"id":"204630","messageId":"50C4915A.4040102@poczta.fm","threadId":"32253","inReplyTo":"20121209104426.GA20818@bloggs.ozlabs.ibm.com","subject":"Re: [PATCH] gitk: read and write a repository specific configuration file","fromName":"Lukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2012-12-09T13:25:46Z","receivedAt":"2012-12-09T13:25:46Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"W dniu 09.12.2012 11:44, Paul Mackerras pisze:\n> On Sun, Dec 09, 2012 at 01:18:08AM -0800, Junio C Hamano wrote:\n>> Łukasz Stelmach <stlman@poczta.fm> writes:\n>>\n>>> Enable gitk read and write repository specific configuration\n>>> file: \".git/k\" if the file exists. To make gitk use the local\n>>> file simply create one, e.g. with the touch(1) command.\n>>>\n>>> This is very useful if one uses different views for different\n>>> repositories. Now there is no need to store all of them in\n>>> ~/.gitk and make the views list needlessly long.\n>>\n>> I do not use gitk heavily myself, but I have a mixed feeling about\n>> this patch.\n> \n> I agree, I think this would be surprising to people who are used to\n> the way gitk works now.\n>\n> I could imagine having a checkbox in the Edit->Preferences dialog to\n> say \"Save configuration settings locally\", and if you check that box,\n> then it writes the configuration to .git/gitkconfig or whatever\n> (having first saved that setting in the global ~/.gitk). \n\nNo this isn't a good idea. When you choose to save configuration locally\nit means you've alredy changed it to match your local needs and making\nit global does not seem reasonable.\n\n> But I think it should be an opt-in thing.\n\nIt is opt-in now definitely. One needs to create the local config file,\neven an empty one, for gitk to choose it upon doquit/savestuff. I agree\na checkbox may be more convenient but is it \"opty\" (as in opt-in) enough?\n\nThen, the checkbox should be added to both \"Preferences\" and \"Edit View\"\ndialogs, anything more?\n\n>> In any case, the filename .git/k may be _cute_, but I do not think\n>> we would want to see:\n>>\n>>     $ ls .git\n>>     branches        config       HEAD   index  k     objects\n>>     COMMIT_EDITMSG  description  hooks  info   logs  refs\n>>\n>> It is too cryptic, unless the user _knows_ 'k' is for gitk.  I'd\n>> call it $GIT_DIR/gitkconfig or something, if I were supportive for\n>> this feature (which I am not enthusiastic, yet).\n> \n> I agree with this too.\n\nSure, let's vote:\n\na) .git/gitk\nb) .git/gitkconfig\nc) .git/gitkrc\n\n-- \nByło mi bardzo miło.               Czwarta pospolita klęska, [...]\n>Łukasz<                 Już nie katolicka lecz złodziejska.  (c)PP\n"},{"id":"205836","messageId":"20130102071701.GG20724@iris.ozlabs.ibm.com","threadId":"32253","inReplyTo":"7vlidhmc5i.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Paul Mackerras","fromEmail":"paulus@samba.org","sentAt":"2013-01-02T07:17:01Z","receivedAt":"2013-01-02T07:17:01Z","isPatch":true,"sender":{"key":"paulus@samba.org","avatar":"https://avatars.githubusercontent.com/u/1606439?v=4"},"body":"On Sat, Dec 01, 2012 at 06:16:25PM -0800, Junio C Hamano wrote:\n> Łukasz Stelmach <stlman@poczta.fm> writes:\n> \n> > Enable hiding of tags displayed in the tree as yellow labels.\n> > If a repository is used together with a system like Gerrit\n> > there may be quite a lot of tags used to control building\n> > and there may be hardly any place left for commit subjects.\n> >\n> > Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n> > ---\n> \n> Paul, this patch is not done against your tree (does not have gitk\n> at the top-level), but other than that, the change mimics the way\n> existing hideremoes is implemented and looks reasonable to me.\n> \n> We _may_ want to unify these two \"hidestuff\" into a list of patterns\n> that hides any ref that match one of the patterns in the list, e.g.\n> \n> \tset hidestuff {refs/heads/*/* refs/tags/* refs/remotes/*}\n> \n> may hide all tags, all remote-tracking branches and local branches\n> that have a slash in their names.\n\nIf the concern is the amount of screen real-estate that the tags take\nup when there are many of them (which is a reasonable concern), I'd\nrather just put a single tag icon with \"tags...\" inside it and arrange\nto list all the tags in the diff display pane when the user clicks on\nit.  I think that would be better than not showing the tags at all.\n\nPaul.\n"},{"id":"205839","messageId":"7vwqvw3v3o.fsf@alter.siamese.dyndns.org","threadId":"32253","inReplyTo":"20130102071701.GG20724@iris.ozlabs.ibm.com","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-02T07:24:59Z","receivedAt":"2013-01-02T07:24:59Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Paul Mackerras <paulus@samba.org> writes:\n\n> On Sat, Dec 01, 2012 at 06:16:25PM -0800, Junio C Hamano wrote:\n>> Łukasz Stelmach <stlman@poczta.fm> writes:\n>> \n>> > Enable hiding of tags displayed in the tree as yellow labels.\n>> > If a repository is used together with a system like Gerrit\n>> > there may be quite a lot of tags used to control building\n>> > and there may be hardly any place left for commit subjects.\n>> >\n>> > Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n>> > ---\n>> ... \n> If the concern is the amount of screen real-estate that the tags take\n> up when there are many of them (which is a reasonable concern), I'd\n> rather just put a single tag icon with \"tags...\" inside it and arrange\n> to list all the tags in the diff display pane when the user clicks on\n> it.  I think that would be better than not showing the tags at all.\n\nYeah, sounds very sensible.  Thanks.\n\nŁukasz, what do you think?\n"},{"id":"205842","messageId":"50E3E9C2.5040901@poczta.fm","threadId":"32253","inReplyTo":"7vwqvw3v3o.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Lukasz Stelmach","fromEmail":"stlman@poczta.fm","sentAt":"2013-01-02T08:03:14Z","receivedAt":"2013-01-02T08:03:14Z","isPatch":true,"sender":{"key":"stlman@poczta.fm","avatar":"https://gravatar.com/avatar/f935fa2cd53deb6667c2c9d2d7fa70569dc64b87bfbb914d1bd1b01765d93a38?d=mp&s=160"},"body":"W dniu 02.01.2013 08:24, Junio C Hamano pisze:\n> Paul Mackerras <paulus@samba.org> writes:\n> \n>> On Sat, Dec 01, 2012 at 06:16:25PM -0800, Junio C Hamano wrote:\n>>> Łukasz Stelmach <stlman@poczta.fm> writes:\n>>>\n>>>> Enable hiding of tags displayed in the tree as yellow labels.\n>>>> If a repository is used together with a system like Gerrit\n>>>> there may be quite a lot of tags used to control building\n>>>> and there may be hardly any place left for commit subjects.\n>>>>\n>>>> Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n>>>> ---\n>>> ... \n>> If the concern is the amount of screen real-estate that the tags take\n>> up when there are many of them (which is a reasonable concern), I'd\n>> rather just put a single tag icon with \"tags...\" inside it and arrange\n>> to list all the tags in the diff display pane when the user clicks on\n>> it.  I think that would be better than not showing the tags at all.\n> \n> Yeah, sounds very sensible.  Thanks.\n\nI am afraid I don't really understand why tags should be listed in the\ndiff pane only after clicking the \"tags\" tag (if this is what Junio has\nsuggested)? How about just putting there another line saying: Tags, next\nto Parent and Chindren and all the stuff?\n\nIf something should happen upon user interaction with the tag label a\ntoolpit would be a better choince FWIW.\n\n-- \nByło mi bardzo miło.               Czwarta pospolita klęska, [...]\n>Łukasz<                 Już nie katolicka lecz złodziejska.  (c)PP\n"},{"id":"205869","messageId":"7v623f4inj.fsf@alter.siamese.dyndns.org","threadId":"32253","inReplyTo":"50E3E9C2.5040901@poczta.fm","subject":"Re: [PATCH] gitk: add a checkbox to control the visibility of tags","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-02T17:08:32Z","receivedAt":"2013-01-02T17:08:32Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Lukasz Stelmach <stlman@poczta.fm> writes:\n\n> W dniu 02.01.2013 08:24, Junio C Hamano pisze:\n>> Paul Mackerras <paulus@samba.org> writes:\n>> \n>>> On Sat, Dec 01, 2012 at 06:16:25PM -0800, Junio C Hamano wrote:\n>>>> Łukasz Stelmach <stlman@poczta.fm> writes:\n>>>>\n>>>>> Enable hiding of tags displayed in the tree as yellow labels.\n>>>>> If a repository is used together with a system like Gerrit\n>>>>> there may be quite a lot of tags used to control building\n>>>>> and there may be hardly any place left for commit subjects.\n>>>>>\n>>>>> Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>\n>>>>> ---\n>>>> ... \n>>> If the concern is the amount of screen real-estate that the tags take\n>>> up when there are many of them (which is a reasonable concern), I'd\n>>> rather just put a single tag icon with \"tags...\" inside it and arrange\n>>> to list all the tags in the diff display pane when the user clicks on\n>>> it.  I think that would be better than not showing the tags at all.\n>> \n>> Yeah, sounds very sensible.  Thanks.\n>\n> I am afraid I don't really understand why tags should be listed in the\n> diff pane only after clicking the \"tags\" tag (if this is what Junio has\n> suggested)? How about just putting there another line saying: Tags, next\n> to Parent and Chindren and all the stuff?\n>\n> If something should happen upon user interaction with the tag label a\n> toolpit would be a better choince FWIW.\n\nIf you meant tooltip that shows extra information in a pop-up when\nthe user hovers the pointer, I think that would be a workable\nsolution, too, and probably is a better one, compared to showing it\nin another pane that may or may not be selected.\n"}]}