Merge pull request #153 from gazpachoking/fix_unicode_username_commits
Ensure git repo remains valid with unicode committer names. fix #152
This commit is contained in:
commit
0b931d1a05
|
@ -40,6 +40,27 @@ class Wiki(HookMixin):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "Wiki: %s" % self.path
|
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'):
|
def get_page(self, name, sha='HEAD'):
|
||||||
"""Get page data, partials, commit info.
|
"""Get page data, partials, commit info.
|
||||||
|
|
||||||
|
@ -193,10 +214,10 @@ class WikiPage(HookMixin):
|
||||||
# gittle.rm won't actually remove the file, have to do it ourselves
|
# gittle.rm won't actually remove the file, have to do it ourselves
|
||||||
os.remove(os.path.join(self.wiki.path, self.filename))
|
os.remove(os.path.join(self.wiki.path, self.filename))
|
||||||
self.wiki.gittle.rm(self.filename)
|
self.wiki.gittle.rm(self.filename)
|
||||||
commit = self.wiki.gittle.commit(name=username,
|
commit = self.wiki.commit(name=username,
|
||||||
email=email,
|
email=email,
|
||||||
message=message,
|
message=message,
|
||||||
files=[self.filename])
|
files=[self.filename])
|
||||||
self._clear_cache()
|
self._clear_cache()
|
||||||
return commit
|
return commit
|
||||||
|
|
||||||
|
@ -230,10 +251,10 @@ class WikiPage(HookMixin):
|
||||||
self.wiki.gittle.add(new_filename)
|
self.wiki.gittle.add(new_filename)
|
||||||
self.wiki.gittle.rm(old_filename)
|
self.wiki.gittle.rm(old_filename)
|
||||||
|
|
||||||
commit = self.wiki.gittle.commit(name=username,
|
commit = self.wiki.commit(name=username,
|
||||||
email=email,
|
email=email,
|
||||||
message=message,
|
message=message,
|
||||||
files=[old_filename, new_filename])
|
files=[old_filename, new_filename])
|
||||||
|
|
||||||
self._clear_cache()
|
self._clear_cache()
|
||||||
self.name = new_name
|
self.name = new_name
|
||||||
|
@ -270,10 +291,10 @@ class WikiPage(HookMixin):
|
||||||
|
|
||||||
username, email = self._get_user(username, email)
|
username, email = self._get_user(username, email)
|
||||||
|
|
||||||
ret = self.wiki.gittle.commit(name=username,
|
ret = self.wiki.commit(name=username,
|
||||||
email=email,
|
email=email,
|
||||||
message=message,
|
message=message,
|
||||||
files=[self.filename])
|
files=[self.filename])
|
||||||
|
|
||||||
self._clear_cache()
|
self._clear_cache()
|
||||||
return ret
|
return ret
|
||||||
|
|
Loading…
Reference in a new issue