Files @ d46d9d93305a
Branch filter:

Location: kallithea/rhodecode/lib/vcs/backends/git/workdir.py

Mads Kiilerich
diff: drop "confirm to show potentially huge diff" click-through

It is obvious from the context that the diff was cut off to use resources efficiently.
The user clicked "Show full diff" because he wanted the diff anyway. Asking
twice is just annoying and serves no purpose.
import re
from rhodecode.lib.vcs.backends.base import BaseWorkdir
from rhodecode.lib.vcs.exceptions import RepositoryError
from rhodecode.lib.vcs.exceptions import BranchDoesNotExistError


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])