From 5da34fddda2ea6de19ecf04efd75e323c4bb41e4 Mon Sep 17 00:00:00 2001 From: Paul Sowden Date: Fri, 21 Nov 2008 23:06:19 -0800 Subject: add support for parsing rename info to the diff parser Currently the parsed headers are just ignored but I'll add them to the Diff object in a future commit (cherry picked from commit 711b655f29b42821c51be8e592143c7db31ed140) --- lib/git/diff.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/git/diff.py') diff --git a/lib/git/diff.py b/lib/git/diff.py index 28ebda01..626c4df9 100644 --- a/lib/git/diff.py +++ b/lib/git/diff.py @@ -39,8 +39,11 @@ class Diff(object): diff_header = re.compile(r""" #^diff[ ]--git [ ]a/(?P\S+)[ ]b/(?P\S+)\n - (?:^old[ ]mode[ ](?P\d+)(?:\n|$))? - (?:^new[ ]mode[ ](?P\d+)(?:\n|$))? + (?:^similarity[ ]index[ ](?P\d+)%\n + ^rename[ ]from[ ](?P\S+)\n + ^rename[ ]to[ ](?P\S+)(?:\n|$))? + (?:^old[ ]mode[ ](?P\d+)\n + ^new[ ]mode[ ](?P\d+)(?:\n|$))? (?:^new[ ]file[ ]mode[ ](?P.+)(?:\n|$))? (?:^deleted[ ]file[ ]mode[ ](?P.+)(?:\n|$))? (?:^index[ ](?P[0-9A-Fa-f]+) @@ -50,7 +53,8 @@ class Diff(object): for diff in ('\n' + text).split('\ndiff --git')[1:]: header = diff_header(diff) - a_path, b_path, old_mode, new_mode, new_file_mode, deleted_file_mode, \ + a_path, b_path, similarity_index, rename_from, rename_to, \ + old_mode, new_mode, new_file_mode, deleted_file_mode, \ a_commit, b_commit, b_mode = header.groups() new_file, deleted_file = bool(new_file_mode), bool(deleted_file_mode) -- cgit v1.2.1