Merge branch 'master' into history_optimization

This commit is contained in:
Chase Sterling 2016-07-09 19:33:56 -04:00
commit fcb23466dd
4 changed files with 54 additions and 28 deletions

View file

@ -42,6 +42,27 @@ class Wiki(HookMixin):
def __repr__(self):
return "Wiki: %s" % self.path
def commit(self, name, email, message, files):
"""Commit to the underlying git repo.
:param name: Committer name
:param email: Committer email
:param message: Commit message
:param files: list of file names that should be committed
:return:
"""
# Dulwich and gittle seem to want us to encode ourselves at the moment. see #152
if isinstance(name, unicode):
name = name.encode('utf-8')
if isinstance(email, unicode):
email = email.encode('utf-8')
if isinstance(message, unicode):
message = message.encode('utf-8')
return self.gittle.commit(name=name,
email=email,
message=message,
files=files)
def get_page(self, name, sha='HEAD'):
"""Get page data, partials, commit info.
@ -71,7 +92,7 @@ class Wiki(HookMixin):
return rv
class WikiPage(object):
class WikiPage(HookMixin):
def __init__(self, name, wiki, sha='HEAD'):
self.name = name
self.filename = cname_to_filename(name)
@ -202,7 +223,7 @@ class WikiPage(object):
return username, email
def _clear_cache(self):
cache.delete_many(self._cache_key(p) for p in ['data', 'info'])
cache.delete_many(*(self._cache_key(p) for p in ['data', 'info']))
def delete(self, username=None, email=None, message=None):
"""Delete page.
@ -219,10 +240,10 @@ class WikiPage(object):
# gittle.rm won't actually remove the file, have to do it ourselves
os.remove(os.path.join(self.wiki.path, self.filename))
self.wiki.gittle.rm(self.filename)
commit = self.wiki.gittle.commit(name=username,
email=email,
message=message,
files=[self.filename])
commit = self.wiki.commit(name=username,
email=email,
message=message,
files=[self.filename])
self._clear_cache()
return commit
@ -256,10 +277,10 @@ class WikiPage(object):
self.wiki.gittle.add(new_filename)
self.wiki.gittle.rm(old_filename)
commit = self.wiki.gittle.commit(name=username,
email=email,
message=message,
files=[old_filename, new_filename])
commit = self.wiki.commit(name=username,
email=email,
message=message,
files=[old_filename, new_filename])
self._clear_cache()
self.name = new_name
@ -296,10 +317,10 @@ class WikiPage(object):
username, email = self._get_user(username, email)
ret = self.wiki.gittle.commit(name=username,
email=email,
message=message,
files=[self.filename])
ret = self.wiki.commit(name=username,
email=email,
message=message,
files=[self.filename])
self._clear_cache()
return ret