changeset 5606:2bf5e8731154 stable

git: fix parsing of git mode change + rename diffs Assume mode lines come first, like for hg diffs.
author Mads Kiilerich <madski@unity3d.com>
date Fri, 25 Dec 2015 12:33:13 +0100
parents 20699dd652ff
children efce61aac33d
files kallithea/lib/diffs.py kallithea/tests/fixtures/git_diff_rename_file.diff kallithea/tests/models/test_diff_parsers.py
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/diffs.py	Fri Dec 25 12:32:47 2015 +0100
+++ b/kallithea/lib/diffs.py	Fri Dec 25 12:33:13 2015 +0100
@@ -160,11 +160,11 @@
         # has already been split on this:
         # ^diff[ ]--git
             [ ]a/(?P<a_path>.+?)[ ]b/(?P<b_path>.+?)\n
+        (?:^old[ ]mode[ ](?P<old_mode>\d+)\n
+           ^new[ ]mode[ ](?P<new_mode>\d+)(?:\n|$))?
         (?:^similarity[ ]index[ ](?P<similarity_index>\d+)%\n
            ^rename[ ]from[ ](?P<rename_from>.+)\n
            ^rename[ ]to[ ](?P<rename_to>.+)(?:\n|$))?
-        (?:^old[ ]mode[ ](?P<old_mode>\d+)\n
-           ^new[ ]mode[ ](?P<new_mode>\d+)(?:\n|$))?
         (?:^new[ ]file[ ]mode[ ](?P<new_file_mode>.+)(?:\n|$))?
         (?:^deleted[ ]file[ ]mode[ ](?P<deleted_file_mode>.+)(?:\n|$))?
         (?:^index[ ](?P<a_blob_id>[0-9A-Fa-f]+)
--- a/kallithea/tests/fixtures/git_diff_rename_file.diff	Fri Dec 25 12:32:47 2015 +0100
+++ b/kallithea/tests/fixtures/git_diff_rename_file.diff	Fri Dec 25 12:33:13 2015 +0100
@@ -2,3 +2,9 @@
 similarity index 100%
 rename from work-horus.xls
 rename to file.xls
+diff --git a/files/var/www/favicon.ico b/files/var/www/favicon.ico/DEFAULT
+old mode 100644
+new mode 100755
+similarity index 100%
+rename from files/var/www/favicon.ico
+rename to files/var/www/favicon.ico/DEFAULT
--- a/kallithea/tests/models/test_diff_parsers.py	Fri Dec 25 12:32:47 2015 +0100
+++ b/kallithea/tests/models/test_diff_parsers.py	Fri Dec 25 12:33:13 2015 +0100
@@ -133,7 +133,14 @@
          {'added': 0,
           'deleted': 0,
           'binary': True,
-          'ops': {RENAMED_FILENODE: 'file renamed from work-horus.xls to file.xls'}})
+          'ops': {RENAMED_FILENODE: 'file renamed from work-horus.xls to file.xls'}}),
+        ('files/var/www/favicon.ico/DEFAULT',
+         'R',
+         {'added': 0,
+          'binary': True,
+          'deleted': 0,
+          'ops': {4: 'file renamed from files/var/www/favicon.ico to files/var/www/favicon.ico/DEFAULT',
+                  6: 'modified file chmod 100644 => 100755'}})
     ],
     'git_diff_mod_single_binary_file.diff': [
         ('US Warszawa.jpg', 'M',