Re: git web--browse error handling URL with & in it (Was Re: [RFC/PATCH] Configurable hyperlinking in gitk)
From: Chris Packham <hidden>
Date: 2016-06-15 22:52:03
On 18/09/11 12:30, Chris Packham wrote:
On 18/09/11 11:33, Chris Packham wrote:quoted
On 18/09/11 01:45, Jeff Epler wrote:quoted
quoted
quoted
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.This seems like a reasonable idea, though since the implementation languages of gitk and gitweb are different it means some REs might get different interpretations in the different programs.quoted
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.Multiple matches per line are OK, but they must be non-overlapping. Looking at the actual practice in Debian changelogs, I see that they do this: evince/changelog.Debian.gz: (Closes: #388368, #396467, #405130) so my original example would only linkify "Closes: #388638". But a revised pattern of #(\d+) would linkify "#388368", "#396467" and "#405130". (but risk a few more "false positive" links). I should revise my example accordingly. As for the problems with your substitutions, "&" is special in a tcl regsub (it stands for the whole matched string, like \0), so you'd want to use a substitution like git config gitk.linkify.debian-bts.sub \ 'http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=\1\&foo=bar'Hmm no joy with \&. Seems to upset the invocation of git web-browse git config gitk.linkify.bugtracker.sub \ 'https://internalhost/code\&stuff/bugs.php?id=\1' gitk /home/chrisp/libexec/git-core/git-web--browse: line 167: stuff/bugs.php?id=bug123: No such file or directory fatal: 'web--browse' appears to be a git command, but we were not able to execute it. Maybe git-web--browse is broken?This is probably a issue with git web--browse and nothing to do with your changes. Sure enough this works fine git web--browse --browser=firefox \ https://internalhost/code\&stuff/bugs.php?id=foo While this doesn't git web--browse https://internalhost/code\&stuff/bugs.php?id=foo /home/chrisp/libexec/git-core/git-web--browse: line 167: stuff/bugs.php?id=foo: No such file or directory fatal: 'web--browse' appears to be a git command, but we were not able to execute it. Maybe git-web--browse is broken? Neither does this git web--browse --browser=konqueror \ https://internalhost/code\&stuff/bugs.php?id=foo A little bit more info that might help diagnose the issue - I'm running openSUSE 11.4 (kde 4.6) which ships with firefox set as the default web browser so 'kfmclient newTab http://www.example.com' actually opens firefox. However trying kfmclient with my funny URL still works kfmclient newTab https://internalhost/code\&stuff/bugs.php?id=foo I'm a little stumped as to what is going wrong in git web--browse.
Update: it's the call to eval that causes the problem eval kfmclient newTab https://internalhost/code\&stuff/bugs.php?id=foo [1] 14728 bash: stuff/bugs.php?id=foo: No such file or directory