##// END OF EJS Templates
py3: drop __unicode__ ... and generally move towards just providing a good __repr__...
py3: drop __unicode__ ... and generally move towards just providing a good __repr__ We should never show str() (or similar) to end users.

File last commit:

r7718:0a277465 default
r7957:effd0912 default
Show More
workdir.py
31 lines | 1.1 KiB | text/x-python | PythonLexer
import re
from kallithea.lib.vcs.backends.base import BaseWorkdir
from kallithea.lib.vcs.exceptions import BranchDoesNotExistError, RepositoryError
class GitWorkdir(BaseWorkdir):
def get_branch(self):
headpath = self.repository._repo.refs.refpath('HEAD')
try:
content = open(headpath).read()
match = re.match(r'^ref: refs/heads/(?P<branch>.+)\n$', content)
if match:
return match.groupdict()['branch']
else:
raise RepositoryError("Couldn't compute workdir's branch")
except IOError:
# Try naive way...
raise RepositoryError("Couldn't compute workdir's branch")
def get_changeset(self):
wk_dir_id = self.repository._repo.refs.as_dict().get('HEAD')
return self.repository.get_changeset(wk_dir_id)
def checkout_branch(self, branch=None):
if branch is None:
branch = self.repository.DEFAULT_BRANCH_NAME
if branch not in self.repository.branches:
raise BranchDoesNotExistError
self.repository.run_git_command(['checkout', branch])