我需要带有上下文的hunks(添加和删除的行),所以我使用git diff -u来获得一个差异。我可以做 线路.is_added 以获得 加行 但这些行将不包括上下文的行。我如何解析这个差异,得到 加行 和 删减行数 以及一些行文的背景。现在我有
Line 1
......
Line 5
- Line 6
+ Line 7
......
Line n
基本上我想
lines_deleted = context lines, Line 6, more context lines and
lines_added = context lines , Line 7, more context lines
lines_added = []
for hunk in patched_file:
for line in hunk:
if line.is_added or line .is_context and line.value.strip() != '':
lines_added.append(line.value)
同样地,对于 lines_deleted。这将返回。
Line 1
......
Line 5
+ Line 7
......
Line n
假设除了第7行以外的所有行都是上下文行。