summaryrefslogtreecommitdiff
path: root/patterns.py
diff options
context:
space:
mode:
Diffstat (limited to 'patterns.py')
-rw-r--r--patterns.py54
1 files changed, 33 insertions, 21 deletions
diff --git a/patterns.py b/patterns.py
index e63efb6..803e532 100644
--- a/patterns.py
+++ b/patterns.py
@@ -1,10 +1,12 @@
#
+# -*- 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.
@@ -16,24 +18,34 @@ import re
# expressions." Now they have two problems.
# -- Jamie Zawinski
#
-Pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name
-Pcommit = re.compile (r'^commit ([0-9a-f ]+)$')
-Pauthor = re.compile (r'^Author:' + Pemail + '$')
-Psob = re.compile (r'^\s+Signed-off-by:' + Pemail + '.*$')
-Pmerge = re.compile (r'^Merge:.*$')
-Padd = re.compile (r'^\+[^+].*$')
-Prem = re.compile (r'^-[^-].*$')
-Pdate = re.compile (r'^(Commit)?Date:\s+(.*)$')
-Pfilea = re.compile (r'^---\s+(.*)$')
-Pfileb = re.compile (r'^\+\+\+\s+(.*)$')
-Preview = re.compile (r'^\s+Reviewed-by:' + Pemail + '.*$')
-Ptest = re.compile (r'^\s+tested-by:' + Pemail + '.*$', re.I)
-Prep = re.compile (r'^\s+Reported-by:' + Pemail + '.*$')
-Preptest = re.compile (r'^\s+reported-and-tested-by:' + Pemail + '.*$', re.I)
-#
-# Merges are described with a variety of lines.
-#
-PExtMerge = re.compile(r'^ +Merge( branch .* of)? ([^ ]+:[^ ]+)\n$')
-PIntMerge = re.compile(r'^ +(Merge|Pull) .* into .*$')
-# PIntMerge2 = re.compile(r"^ +Merge branch(es)? '.*$")
-PIntMerge2 = re.compile(r"^ +Merge .*$")
+_pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name
+
+patterns = {
+ '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]+)$"),
+}