Re: [PATCH 00/13] gitk: tweak rendering of remote-tracking references
- From
Marc Branchaud <marcnarc@xiplink.com>
- Date
- Dec 20, 2016, 15:01 UTC
- Message-ID
- <97d97bc6-54f1-2ef2-fe04-7e7f144d7e51@xiplink.com>
- In-Reply-To
- <cover.1482164633.git.mhagger@alum.mit.edu>
On 2016-12-19 11:44 AM, Michael Haggerty wrote:
> This patch series changes a bunch of details about how remote-tracking > references are rendered in the commit list of gitk:
Thanks for this! I like the new, compact look very much!
That said, I remember when I was a new git user and I leaned heavily on gitk to understand how references worked. It was particularly illuminating to see the remote references distinctly labeled, and the fact that they were "remotes/origin/foo" gave me an Aha! moment where I came to understand that the refs hierarchy is more flexible than just the conventions coded into git itself. I eventually felt free to create my own, private ref hierarchies.
I am in no way opposed to this series. I just wanted to point out that there was some utility in those labels. It makes me think that it might be worthwhile for gitk to have a "raw-refs" mode, that shows the full "refs/foo/bar/baz" paths of all the heads, tags, and whatever else. It could be a useful teaching tool for git.
> * Omit the "remote/" prefix on normal remote-tracking references. They
If you re-roll, s:remote/:remotes/:.
Show 20 quoted lines
> are already distinguished via their two-tone rendering and (usually) > longer names, and this change saves a lot of visual clutter and > horizontal space. > > * Render remote-tracking references that have more than the usual > three slashes like > > origin/foo/bar > ^^^^^^^ > > rather than > > origin/foo/bar (formerly remotes/origin/foo/bar) > ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ > > , where the indicated part is the prefix that is rendered in a > different color. Usually, such a reference represents a remote > branch that contains a slash in its name, so the new split more > accurately portrays the separation between remote name and remote > branch name.
*Love* this change! :)
Show 8 quoted lines
> * Introduce a separate constant to specify the background color used > for the branch name part of remote-tracking references, to allow it > to differ from the color used for local branches (which by default > is bright green). > > * Change the default background colors for remote-tracking branches to > light brown and brown (formerly they were pale orange and bright > green).
Please don't change the remotebgcolor default.
Also, perhaps the default remoterefbgcolor should be set remoterefbgcolor $headbgcolor ?
I say this because when I applied the series, without the last patch, I was miffed that the remote/ref colour had changed.
Plus I think there's utility in having local and remote branch names in the same colour, again especially for new users. It helps emphasize their similarities, and demystify some of git's internal magic.
M.
Show 39 quoted lines
> I understand that the colors of pixels on computer screens is an even > more emotional topic that that of bikesheds, so I implemented the last > change as a separate commit, the last one in the series. Feel free to > drop it if you don't want the default color change. > > Along the way, I did a bunch of refactoring in the area to make these > changes easier, and introduced a constant for the background color of > "other" references so that it can also be adjusted by users. > > (Unfortunately, these colors can only be adjusted by editing the > configuration file. Someday it would be nice to allow them to be > configured via the preferences dialog.) > > It's been a while since I've written any Tcl code, so I apologize in > advance for any howlers :-) > > This branch applies against the `master` branch in > git://ozlabs.org/~paulus/gitk. > > Michael > > Michael Haggerty (13): > gitk: when processing tag labels, don't use `marks` as scratch space > gitk: keep track of tag types in a separate `types` array > gitk: use a type "tags" to indicate abbreviated tags > gitk: use a type "mainhead" to indicate the main HEAD branch > gitk: fill in `wvals` as the tags are first processed > gitk: simplify regexp > gitk: extract a method `remotereftext` > gitk: only change the color of the "remote" part of remote refs > gitk: shorten labels displayed for modern remote-tracking refs > gitk: use type "remote" for remote-tracking references > gitk: introduce a constant otherrefbgcolor > gitk: add a configuration setting `remoterefbgcolor` > gitk: change the default colors for remote-tracking references > > gitk | 114 ++++++++++++++++++++++++++++++++++++++++++++----------------------- > 1 file changed, 76 insertions(+), 38 deletions(-) >