Files
@ ce4b7023a492
Branch filter:
Location: kallithea/rhodecode/lib/vcs/backends/git/workdir.py - annotation
ce4b7023a492
1.1 KiB
text/x-python
diff parser: redefined operations stats for changes
- don't loose info about multiple operations like rename + chmod
- new Binary flag when dealing with binary file operations
- fixed diffs after mercurial 2.6 when GIT binary diffs were fixed
- added more tests for multiple operations
- refactored the way diffprocessor returns data. It's
now easier to extract type of operation on binary files
- diffprocessor doesn't append that information into the diff itself
- don't loose info about multiple operations like rename + chmod
- new Binary flag when dealing with binary file operations
- fixed diffs after mercurial 2.6 when GIT binary diffs were fixed
- added more tests for multiple operations
- refactored the way diffprocessor returns data. It's
now easier to extract type of operation on binary files
- diffprocessor doesn't append that information into the diff itself
324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 2b5f94fc3b7a 2b5f94fc3b7a 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da 324ac367a4da | 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])
|