commit d80dfa5310446a06adaca10c05de7477df147b6e
Author: Kacper Kornet <[email protected]>
Date: Mon Sep 19 03:08:02 2011 +0100
Translate fnmatch patterns to regexps
It seems to be faster that way.
git_slug/refsdata.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/git_slug/refsdata.py b/git_slug/refsdata.py
index 41f45fe..b471722 100644
--- a/git_slug/refsdata.py
+++ b/git_slug/refsdata.py
@@ -2,6 +2,7 @@
import collections
import fnmatch
import os
+import re
from .gitconst import EMPTYSHA1, REFFILE, REFREPO, GITSERVER
from .gitrepo import GitRepo
@@ -12,12 +13,13 @@ class RemoteRefsError(Exception):
class RemoteRefsData:
def __init__(self, stream, pattern, dirpattern='*'):
self.heads = collections.defaultdict(lambda:
collections.defaultdict(lambda: EMPTYSHA1))
- refpatterns = list(os.path.join('refs/heads', p) for p in pattern)
+ pats =
re.compile('|'.join(fnmatch.translate(os.path.join('refs/heads', p)) for p in
pattern))
+ dirpat=re.compile(fnmatch.translate(dirpattern))
for line in stream.readlines():
if isinstance(line, bytes):
line = line.decode("utf-8")
(sha1, ref, repo) = line.split()
- if any(fnmatch.fnmatchcase(ref, p) for p in refpatterns) and
fnmatch.fnmatchcase(repo, dirpattern):
+ if pats.match(ref) and dirpat.match(repo):
self.heads[repo][ref] = sha1
def put(self, repo, data):
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/projects/git-slug.git/commitdiff/4ed64f73960519a2f4fd04c42950b2c96ae795c5
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit