Re: [RFC/PATCH] Configurable hyperlinking in gitk
- From
Chris Packham <judge.packham@gmail.com>
- Date
- Sep 17, 2011, 10:01 UTC
- Message-ID
- <4E746FE7.4060608@gmail.com>
- In-Reply-To
- <4E7467B7.1090201@gmail.com>
On 17/09/11 21:26, Chris Packham wrote:
Show 45 quoted lines
> Hi, > > On 17/09/11 14:29, Jeff Epler wrote: >> Some time ago I hardcoded this into gitk for $DAY_JOB and find it very >> useful. I made it configurable in the hopes that it might be adopted >> upstream. (unfortunately, the configurable version is radically >> different from the original hard-coded version, so I can't say this >> has had much testing yet) > > This is definitely something folks at my $dayjob would be interested in. > We've already done some customisation of gitweb to do something similar. > I'm not actually sure what the changes where or how configurable they > are. I'll see if I can dig them out on Monday someone else might want to > polish them into something suitable (I might do it myself if I get some > tuits). > >> The definition of the allowed regular expression in the docs >> probably needs some refinement. Basically, they have to also be REs >> that can be concatenated with the "|" character, which is not true >> of REs that begin with the *** flavor selector (which I had not >> heard of before rereading `man re_syntax` just now) or (?xyz) >> embedded options. Or maybe there's an efficient alternate approach >> to scanning for the next non-overlapping match among several >> patterns that doesn't involve concatenating the patterns. >> >> I'm not sure about the "one line" restriction; at first I thought >> that everything was fed to 'appendwithlinks' in arbitrary chunks, >> but not I see that they are mostly logical chunks (and probably only >> the comment, not the headers or commit descriptors, will have >> anything to linkify). The problem again seems to be how to succinctly >> describe what is permitted. > > For my use case the one line restriction is fine. We tend to put the bug > number in the headline anyway. > > Sometimes when a commit fixes multiple bugs we put all the bug numbers > in separated by commas. I don't know Tcl well enough to tell if your > code supports that or not. > >> There are probably better names for the configuration options, too. > > It'd be nice if the config variables weren't gitk specific. .re and .sub > could be applied to gitweb and maybe other git viewers outside of > gig.git might decide to use them. My bikeshedding suggestion would be to > just drop the gitk prefix and have linkify.re and linkify.sub.
That should be linkify.<name>.re and linkify.<name>.sub
>> Suggestions? Problems? Successes? > > Re-compiling now. I won't be able to actually test it properly until I'm > back in the office but I can at least check that the links are generated.
Slight complication. The URL of our bug tracker has an ampersand '&' in it. Tcl's substitution does what one might expect and puts the matched text where the '&' is. I've tried using url friendly %26 but something eats the %. I've also tried backslashes to no avail.
To answer my own question since I started writing this email I've found that using %% works (only the first one gets eaten). Not sure if that's expected behaviour or not (printf escaping maybe?).
Also since I've been playing around I've tried a commit with multiple bug numbers on one line and that works as expected.
Thanks Chris