Show More
@@ -40,7 +40,7 b' from dulwich.repo import Repo as Dulwich' | |||
|
40 | 40 | |
|
41 | 41 | import rhodecode |
|
42 | 42 | from vcsserver import exceptions, settings, subprocessio |
|
43 | from vcsserver.str_utils import safe_str, safe_int, safe_bytes, ascii_bytes, convert_to_str | |
|
43 | from vcsserver.str_utils import safe_str, safe_int, safe_bytes, ascii_bytes, convert_to_str, splitnewlines | |
|
44 | 44 | from vcsserver.base import RepoFactory, obfuscate_qs, ArchiveNode, store_archive_in_cache, BytesEnvelope, BinaryEnvelope |
|
45 | 45 | from vcsserver.hgcompat import ( |
|
46 | 46 | hg_url as url_parser, httpbasicauthhandler, httpdigestauthhandler) |
@@ -1347,7 +1347,8 b' class GitRemote(RemoteBase):' | |||
|
1347 | 1347 | with repo_init as repo: |
|
1348 | 1348 | commit = repo[commit_id] |
|
1349 | 1349 | blame_obj = repo.blame(path, newest_commit=commit_id) |
|
1350 |
f |
|
|
1350 | file_content = commit.tree[path].data | |
|
1351 | for i, line in enumerate(splitnewlines(file_content)): | |
|
1351 | 1352 | line_no = i + 1 |
|
1352 | 1353 | hunk = blame_obj.for_line(line_no) |
|
1353 | 1354 | blame_commit_id = hunk.final_commit_id.hex |
@@ -142,3 +142,17 b' def convert_to_str(data):' | |||
|
142 | 142 | return list(convert_to_str(item) for item in data) |
|
143 | 143 | else: |
|
144 | 144 | return data |
|
145 | ||
|
146 | ||
|
147 | def splitnewlines(text: bytes): | |
|
148 | """ | |
|
149 | like splitlines, but only split on newlines. | |
|
150 | """ | |
|
151 | ||
|
152 | lines = [_l + b'\n' for _l in text.split(b'\n')] | |
|
153 | if lines: | |
|
154 | if lines[-1] == b'\n': | |
|
155 | lines.pop() | |
|
156 | else: | |
|
157 | lines[-1] = lines[-1][:-1] | |
|
158 | return lines |
General Comments 0
You need to be logged in to leave comments.
Login now