Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc8fd910

Browse files
LeResKPByron
authored andcommitted
Get correcly rename change_type.
Also store the rename score
1 parent7be3486 commitc8fd910

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

‎git/diff.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -251,11 +251,11 @@ class Diff(object):
251251

252252
__slots__= ("a_blob","b_blob","a_mode","b_mode","a_rawpath","b_rawpath",
253253
"new_file","deleted_file","raw_rename_from","raw_rename_to",
254-
"diff","change_type")
254+
"diff","change_type","score")
255255

256256
def__init__(self,repo,a_rawpath,b_rawpath,a_blob_id,b_blob_id,a_mode,
257257
b_mode,new_file,deleted_file,raw_rename_from,
258-
raw_rename_to,diff,change_type):
258+
raw_rename_to,diff,change_type,score):
259259

260260
self.a_mode=a_mode
261261
self.b_mode=b_mode
@@ -291,6 +291,7 @@ def __init__(self, repo, a_rawpath, b_rawpath, a_blob_id, b_blob_id, a_mode,
291291

292292
self.diff=diff
293293
self.change_type=change_type
294+
self.score=score
294295

295296
def__eq__(self,other):
296297
fornameinself.__slots__:
@@ -445,7 +446,7 @@ def _index_from_patch_format(cls, repo, proc):
445446
new_file,deleted_file,
446447
rename_from,
447448
rename_to,
448-
None,None))
449+
None,None,None))
449450

450451
previous_header=header
451452
# end for each header we parse
@@ -470,7 +471,13 @@ def handle_diff_line(line):
470471
return
471472

472473
meta,_,path=line[1:].partition('\t')
473-
old_mode,new_mode,a_blob_id,b_blob_id,change_type=meta.split(None,4)
474+
old_mode,new_mode,a_blob_id,b_blob_id,_change_type=meta.split(None,4)
475+
# Change type can be R100
476+
# R: status letter
477+
# 100: score (in case of copy and rename)
478+
change_type=_change_type[0]
479+
score_str=''.join(_change_type[1:])
480+
score=int(score_str)ifscore_str.isdigit()elseNone
474481
path=path.strip()
475482
a_path=path.encode(defenc)
476483
b_path=path.encode(defenc)
@@ -487,15 +494,16 @@ def handle_diff_line(line):
487494
elifchange_type=='A':
488495
a_blob_id=None
489496
new_file=True
490-
elifchange_type[0]=='R':# parses RXXX, where XXX is a confidence value
497+
elifchange_type=='R':
491498
a_path,b_path=path.split('\t',1)
492499
a_path=a_path.encode(defenc)
493500
b_path=b_path.encode(defenc)
494501
rename_from,rename_to=a_path,b_path
495502
# END add/remove handling
496503

497504
diff=Diff(repo,a_path,b_path,a_blob_id,b_blob_id,old_mode,new_mode,
498-
new_file,deleted_file,rename_from,rename_to,'',change_type)
505+
new_file,deleted_file,rename_from,rename_to,'',
506+
change_type,score)
499507
index.append(diff)
500508

501509
handle_process_output(proc,handle_diff_line,None,finalize_process,decode_streams=False)

‎git/test/test_diff.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ def test_diff_with_rename(self):
108108
self.assertIsNotNone(diff.renamed)
109109
self.assertEqual(diff.rename_from,'this')
110110
self.assertEqual(diff.rename_to,'that')
111+
self.assertEqual(diff.change_type,'R')
112+
self.assertEqual(diff.score,100)
111113
self.assertEqual(len(list(diffs.iter_change_type('R'))),1)
112114

113115
deftest_diff_of_modified_files_not_added_to_the_index(self):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp