Files @ 440fab755fa9
Branch filter:

Location: kallithea/rhodecode/lib/vcs/backends/hg/workdir.py - annotation

Dennis Brakhane
switch to branch: handle slashes in branch names

In git, having slashes in branch names are not uncommon.

We cannot use a branch name with slashes in the url, so in that case, we
use the changeset id instead like we already do for tags and bookmarks.

Fixes #654
from rhodecode.lib.vcs.backends.base import BaseWorkdir
from rhodecode.lib.vcs.exceptions import BranchDoesNotExistError

from rhodecode.lib.vcs.utils.hgcompat import hg_merge


class MercurialWorkdir(BaseWorkdir):

    def get_branch(self):
        return self.repository._repo.dirstate.branch()

    def get_changeset(self):
        return self.repository.get_changeset()

    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

        hg_merge.update(self.repository._repo, branch, False, False, None)