| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent c8fd910 commit 29aa1b8
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -165,8 +165,9 @@ class DiffIndex(list): | |||
| 165 | 165 | # A = Added | |
| 166 | 166 | # D = Deleted | |
| 167 | 167 | # R = Renamed | |
| 168 | - # M = modified | ||
| 169 | - change_type = ("A", "D", "R", "M") | ||
| 168 | + # M = Modified | ||
| 169 | + # T = Changed in the type | ||
| 170 | + change_type = ("A", "D", "R", "M", "T") | ||
| 170 | 171 | ||
| 171 | 172 | def iter_change_type(self, change_type): | |
| 172 | 173 | """ | |
@@ -179,7 +180,9 @@ def iter_change_type(self, change_type): | |||
| 179 | 180 | * 'A' for added paths | |
| 180 | 181 | * 'D' for deleted paths | |
| 181 | 182 | * 'R' for renamed paths | |
| 182 | - * 'M' for paths with modified data""" | ||
| 183 | + * 'M' for paths with modified data | ||
| 184 | + * 'T' for changed in the type paths | ||
| 185 | + """ | ||
| 183 | 186 | if change_type not in self.change_type: | |
| 184 | 187 | raise ValueError("Invalid change type: %s" % change_type) | |
| 185 | 188 | ||
@@ -499,6 +502,9 @@ def handle_diff_line(line): | |||
| 499 | 502 | a_path = a_path.encode(defenc) | |
| 500 | 503 | b_path = b_path.encode(defenc) | |
| 501 | 504 | rename_from, rename_to = a_path, b_path | |
| 505 | + elif change_type == 'T': | ||
| 506 | + # Nothing to do | ||
| 507 | + pass | ||
| 502 | 508 | # END add/remove handling | |
| 503 | 509 | ||
| 504 | 510 | diff = Diff(repo, a_path, b_path, a_blob_id, b_blob_id, old_mode, new_mode, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,10 @@ | |||
| 1 | + diff --git a/this b/this | ||
| 2 | + deleted file mode 100644 | ||
| 3 | + index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 | ||
| 4 | + diff --git a/this b/this | ||
| 5 | + new file mode 120000 | ||
| 6 | + index 0000000000000000000000000000000000000000..42061c01a1c70097d1e4579f29a5adf40abdec95 | ||
| 7 | + --- /dev/null | ||
| 8 | + +++ b/this | ||
| 9 | + @@ -0,0 +1 @@ | ||
| 10 | + +that | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1 @@ | |||
| 1 | + :100644 120000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 42061c01a1c70097d1e4579f29a5adf40abdec95 T this | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -112,6 +112,33 @@ def test_diff_with_rename(self): | |||
| 112 | 112 | self.assertEqual(diff.score, 100) | |
| 113 | 113 | self.assertEqual(len(list(diffs.iter_change_type('R'))), 1) | |
| 114 | 114 | ||
| 115 | + def test_diff_with_change_in_type(self): | ||
| 116 | + output = StringProcessAdapter(fixture('diff_change_in_type')) | ||
| 117 | + diffs = Diff._index_from_patch_format(self.rorepo, output) | ||
| 118 | + self._assert_diff_format(diffs) | ||
| 119 | + assert_equal(2, len(diffs)) | ||
| 120 | + | ||
| 121 | + diff = diffs[0] | ||
| 122 | + self.assertIsNotNone(diff.deleted_file) | ||
| 123 | + assert_equal(diff.a_path, 'this') | ||
| 124 | + assert_equal(diff.b_path, 'this') | ||
| 125 | + assert isinstance(str(diff), str) | ||
| 126 | + | ||
| 127 | + diff = diffs[1] | ||
| 128 | + assert_equal(diff.a_path, None) | ||
| 129 | + assert_equal(diff.b_path, 'this') | ||
| 130 | + self.assertIsNotNone(diff.new_file) | ||
| 131 | + assert isinstance(str(diff), str) | ||
| 132 | + | ||
| 133 | + output = StringProcessAdapter(fixture('diff_change_in_type_raw')) | ||
| 134 | + diffs = Diff._index_from_raw_format(self.rorepo, output) | ||
| 135 | + self.assertEqual(len(diffs), 1) | ||
| 136 | + diff = diffs[0] | ||
| 137 | + self.assertEqual(diff.rename_from, None) | ||
| 138 | + self.assertEqual(diff.rename_to, None) | ||
| 139 | + self.assertEqual(diff.change_type, 'T') | ||
| 140 | + self.assertEqual(len(list(diffs.iter_change_type('T'))), 1) | ||
| 141 | + | ||
| 115 | 142 | def test_diff_of_modified_files_not_added_to_the_index(self): | |
| 116 | 143 | output = StringProcessAdapter(fixture('diff_abbrev-40_full-index_M_raw_no-color')) | |
| 117 | 144 | diffs = Diff._index_from_raw_format(self.rorepo, output) | |
| Back | FazBrowse Home | New Git URL |
0 commit comments