git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: "Toralf Förster" <toralf.foerster@gmx.de>, git@vger.kernel.org
Subject: [PATCH] gitweb: Better regexp for SHA-1 committag match
Date: Fri, 6 Feb 2009 10:12:41 +0100	[thread overview]
Message-ID: <200902061012.42943.jnareb@gmail.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0902031327340.6573@intel-tinevez-2-302>

On Tue, 3 Feb 2009, Johannes Schindelin wrote:
> On Tue, 3 Feb 2009, Toralf Förster wrote:
>> At Monday 02 February 2009 23:54:20 Jakub Narebski wrote :
>>> Toralf Förster <toralf.foerster@gmx.de> writes:

>>>> As seen here
>>>> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=commit;h=8ca2918f99b5861359de1805f27b08023c82abd2 the strings [<c043d0f3>]
>>>> and firends shouldn't be recognized as git hashes, isn't it ?
>>>
>>> Gitweb, not webgit.  And gitweb considers ([0-9a-fA-F]{8,40}) i.e.
>>> from 8 to 40 hexadecimal characters to be (shortened) SHA-1.  It
>>> simply cannot afford checking if such object exists when displaying
>>> commit message (for example in 'log' view).
>> 
>> Ah - ok, what's about expecting spaces around such SHA-1 keys ?
> 
> Won't fly: there was a recommendation at some point that you should refer 
> to commits in such a form:
> 
> 	2819075(Merge branch 'maint-1.6.0' into maint)
> 
> However, gitweb being written in Perl, I think a lookbehind like (?<!0x), 
> i.e. that a 0x in front of the hexadecimal characters means it is no 
> SHA-1.
> 
> Even better would be using word boundaries, I guess, but all that fails 
> when you have a hexdump in the commit message.

Here you have it: anchoring SHA-1 regexp to word boundary. It would
help eliminate _some_ of false matches.

-- >8 --
Subject: [PATCH] gitweb: Better regexp for SHA-1 committag match

Make SHA-1 regexp to be turned into hyperlink (the SHA-1 committag)
to match word boundary at the beginning and the end.  This way we
reduce number of false matches, for example we now don't match
0x74a5cd01 which is hex decimal (for example memory address),
but is not SHA-1.

Suggested-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
 gitweb/gitweb.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index f27dbb6..bec1af6 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1364,7 +1364,7 @@ sub format_log_line_html {
 	my $line = shift;
 
 	$line = esc_html($line, -nbsp=>1);
-	if ($line =~ m/([0-9a-fA-F]{8,40})/) {
+	if ($line =~ m/\b([0-9a-fA-F]{8,40})\b/) {
 		my $hash_text = $1;
 		my $link =
 			$cgi->a({-href => href(action=>"object", hash=>$hash_text),
-- 
1.6.1

  reply	other threads:[~2009-02-06  9:14 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-02 21:04 webgit highlightes mem adresses as git versions Toralf Förster
2009-02-02 22:54 ` Jakub Narebski
2009-02-03 11:04   ` Toralf Förster
2009-02-03 12:31     ` Johannes Schindelin
2009-02-06  9:12       ` Jakub Narebski [this message]
2009-02-06  9:49         ` [PATCH] gitweb: Better regexp for SHA-1 committag match Rafael Garcia-Suarez
2009-02-06 10:26           ` Jakub Narebski
2009-02-06 10:31             ` Rafael Garcia-Suarez
2009-02-06 10:49               ` [PATCHv2] " Jakub Narebski
2009-02-06 13:03                 ` Johannes Schindelin
2009-02-06 21:47                   ` Jay Soffian
2009-02-06 22:00                     ` Jakub Narebski
2009-02-07  7:48                 ` Junio C Hamano
2009-02-07  8:34                   ` Jakub Narebski
2009-02-07  8:48                     ` Junio C Hamano
2009-02-07  9:25                       ` Jakub Narebski
2009-02-07  9:32                         ` demerphq
2009-02-07 10:09                           ` Jakub Narebski
2009-02-07 14:01                 ` Jakub Narebski
2009-02-07  9:22             ` [PATCH] " demerphq
2009-02-07 10:07               ` Jakub Narebski
2009-02-07 13:30                 ` demerphq

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200902061012.42943.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=toralf.foerster@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).