 1e293bc90a
			
		
	
	1e293bc90a
	
	
	
		
			
			Version tracking was used to see who had contributed to the most kernel releases; not sure it's a long-term-useful feature. The unknown hackers report helps when trying to improve the database. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
		
			
				
	
	
		
			53 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| # -*- coding:utf-8 -*-
 | |
| # Pull together regular expressions used in multiple places.
 | |
| #
 | |
| # This code is part of the LWN git data miner.
 | |
| #
 | |
| # Copyright 2007-11 Eklektix, Inc.
 | |
| # Copyright 2007-11 Jonathan Corbet <corbet@lwn.net>
 | |
| # Copyright 2011 Germán Póo-Caamaño <gpoo@gnome.org>
 | |
| #
 | |
| # This file may be distributed under the terms of the GNU General
 | |
| # Public License, version 2.
 | |
| #
 | |
| import re
 | |
| 
 | |
| #
 | |
| # Some people, when confronted with a problem, think "I know, I'll use regular
 | |
| # expressions." Now they have two problems.
 | |
| #    -- Jamie Zawinski
 | |
| #
 | |
| _pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name
 | |
| 
 | |
| patterns = {
 | |
|     'tagcommit': re.compile (r'^commit ([\da-f]+) .*tag: (v[23]\.\d(\.\d\d?)?)'),
 | |
|     'commit': re.compile (r'^commit ([0-9a-f ]+)'),
 | |
|     'author': re.compile (r'^Author:' + _pemail + '$'),
 | |
|     'signed-off-by': re.compile (r'^\s+Signed-off-by:' + _pemail + '.*$'),
 | |
|     'merge': re.compile (r'^Merge:.*$'),
 | |
|     'add': re.compile (r'^\+[^+].*$'),
 | |
|     'rem': re.compile (r'^-[^-].*$'),
 | |
|     'date': re.compile (r'^(Commit)?Date:\s+(.*)$'),
 | |
|     # filea, fileb are used only in 'parche mode' (-p)
 | |
|     'filea': re.compile (r'^---\s+(.*)$'),
 | |
|     'fileb': re.compile (r'^\+\+\+\s+(.*)$'),
 | |
|     'reviewed-by': re.compile (r'^\s+Reviewed-by:' + _pemail+ '.*$'),
 | |
|     'tested-by': re.compile (r'^\s+tested-by:' + _pemail + '.*$', re.I),
 | |
|     'reported-by': re.compile (r'^\s+Reported-by:' + _pemail + '.*$'),
 | |
|     'reported-and-tested-by': re.compile (r'^\s+reported-and-tested-by:' + _pemail + '.*$', re.I),
 | |
|     #
 | |
|     # Merges are described with a variety of lines.
 | |
|     #
 | |
|     'ExtMerge': re.compile(r'^ +Merge( branch .* of)? ([^ ]+:[^ ]+)\n$'),
 | |
|     'IntMerge': re.compile(r'^ +(Merge|Pull) .* into .*$'),
 | |
|     # PIntMerge2 = re.compile(r"^ +Merge branch(es)? '.*$"),
 | |
|     'IntMerge2': re.compile(r"^ +Merge .*$"),
 | |
|     # Another way to get the statistics (per file).
 | |
|     # It implies --numstat
 | |
|     'numstat': re.compile('^(\d+|-)\s+(\d+|-)\s+(.*)$'),
 | |
|     'rename' : re.compile('(.*)\{(.*) => (.*)\}(.*)'),
 | |
|     # Detect errors on svn conversions
 | |
|     'svn-tag': re.compile("^svn path=/tags/(.*)/?; revision=([0-9]+)$"),
 | |
| }
 |