Procházet zdrojové kódy

Update git diff mode extended header line

Update the git diff extended header line related to mode change to the more
modern version. According to
https://git-scm.com/docs/diff-format#_generating_patches_with_p, the old
versions are also supported, except `deleted mode`. CGit version 2.7.12 is
generating patch using the new version.
Boris Feld před 6 roky
rodič
revize
25988367ca
3 změnil soubory, kde provedl 15 přidání a 15 odebrání
  1. 3 3
      dulwich/patch.py
  2. 10 10
      dulwich/tests/test_patch.py
  3. 2 2
      dulwich/tests/test_porcelain.py

+ 3 - 3
dulwich/patch.py

@@ -229,10 +229,10 @@ def gen_diff_header(paths, modes, shas):
     if old_mode != new_mode:
     if old_mode != new_mode:
         if new_mode is not None:
         if new_mode is not None:
             if old_mode is not None:
             if old_mode is not None:
-                yield ("old mode %o\n" % old_mode).encode('ascii')
-            yield ("new mode %o\n" % new_mode).encode('ascii')
+                yield ("old file mode %o\n" % old_mode).encode('ascii')
+            yield ("new file mode %o\n" % new_mode).encode('ascii')
         else:
         else:
-            yield ("deleted mode %o\n" % old_mode).encode('ascii')
+            yield ("deleted file mode %o\n" % old_mode).encode('ascii')
     yield b"index " + shortid(old_sha) + b".." + shortid(new_sha)
     yield b"index " + shortid(old_sha) + b".." + shortid(new_sha)
     if new_mode is not None:
     if new_mode is not None:
         yield (" %o" % new_mode).encode('ascii')
         yield (" %o" % new_mode).encode('ascii')

+ 10 - 10
dulwich/tests/test_patch.py

@@ -277,7 +277,7 @@ class DiffTests(TestCase):
             (b"bar.txt", 0o644, Blob.from_string(b"new\nsame\n")))
             (b"bar.txt", 0o644, Blob.from_string(b"new\nsame\n")))
         self.assertEqual([
         self.assertEqual([
              b'diff --git /dev/null b/bar.txt',
              b'diff --git /dev/null b/bar.txt',
-             b'new mode 644',
+             b'new file mode 644',
              b'index 0000000..a116b51 644',
              b'index 0000000..a116b51 644',
              b'--- /dev/null',
              b'--- /dev/null',
              b'+++ b/bar.txt',
              b'+++ b/bar.txt',
@@ -293,7 +293,7 @@ class DiffTests(TestCase):
             (None, None, None))
             (None, None, None))
         self.assertEqual([
         self.assertEqual([
             b'diff --git a/bar.txt /dev/null',
             b'diff --git a/bar.txt /dev/null',
-            b'deleted mode 644',
+            b'deleted file mode 644',
             b'index a116b51..0000000',
             b'index a116b51..0000000',
             b'--- a/bar.txt',
             b'--- a/bar.txt',
             b'+++ /dev/null',
             b'+++ /dev/null',
@@ -323,7 +323,7 @@ class DiffTests(TestCase):
         write_tree_diff(f, store, tree1.id, tree2.id)
         write_tree_diff(f, store, tree1.id, tree2.id)
         self.assertEqual([
         self.assertEqual([
             b'diff --git /dev/null b/added.txt',
             b'diff --git /dev/null b/added.txt',
-            b'new mode 644',
+            b'new file mode 644',
             b'index 0000000..76d4bb8 644',
             b'index 0000000..76d4bb8 644',
             b'--- /dev/null',
             b'--- /dev/null',
             b'+++ b/added.txt',
             b'+++ b/added.txt',
@@ -338,7 +338,7 @@ class DiffTests(TestCase):
             b'-removed',
             b'-removed',
             b'+added',
             b'+added',
             b'diff --git a/removed.txt /dev/null',
             b'diff --git a/removed.txt /dev/null',
-            b'deleted mode 644',
+            b'deleted file mode 644',
             b'index 2c3f0b3..0000000',
             b'index 2c3f0b3..0000000',
             b'--- a/removed.txt',
             b'--- a/removed.txt',
             b'+++ /dev/null',
             b'+++ /dev/null',
@@ -395,7 +395,7 @@ class DiffTests(TestCase):
                                     (b"bar.txt", 0o644, b2.id))
                                     (b"bar.txt", 0o644, b2.id))
         self.assertEqual([
         self.assertEqual([
              b'diff --git /dev/null b/bar.txt',
              b'diff --git /dev/null b/bar.txt',
-             b'new mode 644',
+             b'new file mode 644',
              b'index 0000000..a116b51 644',
              b'index 0000000..a116b51 644',
              b'--- /dev/null',
              b'--- /dev/null',
              b'+++ b/bar.txt',
              b'+++ b/bar.txt',
@@ -413,7 +413,7 @@ class DiffTests(TestCase):
                                     (None, None, None))
                                     (None, None, None))
         self.assertEqual([
         self.assertEqual([
             b'diff --git a/bar.txt /dev/null',
             b'diff --git a/bar.txt /dev/null',
-            b'deleted mode 644',
+            b'deleted file mode 644',
             b'index a116b51..0000000',
             b'index a116b51..0000000',
             b'--- a/bar.txt',
             b'--- a/bar.txt',
             b'+++ /dev/null',
             b'+++ /dev/null',
@@ -493,7 +493,7 @@ class DiffTests(TestCase):
                                     (b'bar.png', 0o644, b2.id))
                                     (b'bar.png', 0o644, b2.id))
         self.assertEqual([
         self.assertEqual([
             b'diff --git /dev/null b/bar.png',
             b'diff --git /dev/null b/bar.png',
-            b'new mode 644',
+            b'new file mode 644',
             b'index 0000000..06364b7 644',
             b'index 0000000..06364b7 644',
             b'Binary files /dev/null and b/bar.png differ'
             b'Binary files /dev/null and b/bar.png differ'
             ], f.getvalue().splitlines())
             ], f.getvalue().splitlines())
@@ -511,7 +511,7 @@ class DiffTests(TestCase):
                                     (None, None, None))
                                     (None, None, None))
         self.assertEqual([
         self.assertEqual([
             b'diff --git a/foo.png /dev/null',
             b'diff --git a/foo.png /dev/null',
-            b'deleted mode 644',
+            b'deleted file mode 644',
             b'index f73e47d..0000000',
             b'index f73e47d..0000000',
             b'Binary files a/foo.png and /dev/null differ'
             b'Binary files a/foo.png and /dev/null differ'
             ], f.getvalue().splitlines())
             ], f.getvalue().splitlines())
@@ -527,8 +527,8 @@ class DiffTests(TestCase):
                 b"06d0bdd9e2e20377b3180e4986b14c8549b393e4"))
                 b"06d0bdd9e2e20377b3180e4986b14c8549b393e4"))
         self.assertEqual([
         self.assertEqual([
             b'diff --git a/bar.txt b/bar.txt',
             b'diff --git a/bar.txt b/bar.txt',
-            b'old mode 644',
-            b'new mode 160000',
+            b'old file mode 644',
+            b'new file mode 160000',
             b'index a116b51..06d0bdd 160000',
             b'index a116b51..06d0bdd 160000',
             b'--- a/bar.txt',
             b'--- a/bar.txt',
             b'+++ b/bar.txt',
             b'+++ b/bar.txt',

+ 2 - 2
dulwich/tests/test_porcelain.py

@@ -573,7 +573,7 @@ Date:   Fri Jan 01 2010 00:00:00 +0000
 Test message.
 Test message.
 
 
 diff --git /dev/null b/somename
 diff --git /dev/null b/somename
-new mode 100644
+new file mode 100644
 index 0000000..ea5c7bf 100644
 index 0000000..ea5c7bf 100644
 --- /dev/null
 --- /dev/null
 +++ b/somename
 +++ b/somename
@@ -610,7 +610,7 @@ Date:   Fri Jan 01 2010 00:00:00 +0000
 Test message.
 Test message.
 
 
 diff --git /dev/null b/somename
 diff --git /dev/null b/somename
-new mode 100644
+new file mode 100644
 index 0000000..ea5c7bf 100644
 index 0000000..ea5c7bf 100644
 --- /dev/null
 --- /dev/null
 +++ b/somename
 +++ b/somename