03_cleanup_mode 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. === modified file 'dulwich/index.py'
  2. --- old/dulwich/index.py 2019-11-09 03:25:15 +0000
  3. +++ new/dulwich/index.py 2019-12-15 13:30:23 +0000
  4. @@ -207,7 +207,8 @@
  5. elif S_ISGITLINK(mode):
  6. return S_IFGITLINK
  7. ret = stat.S_IFREG | 0o644
  8. - ret |= (mode & 0o111)
  9. + if mode & 0o100:
  10. + ret |= 0o111
  11. return ret
  12. @@ -326,7 +327,7 @@
  13. """
  14. def lookup_entry(path):
  15. entry = self[path]
  16. - return entry.sha, entry.mode
  17. + return entry.sha, cleanup_mode(entry.mode)
  18. for (name, mode, sha) in changes_from_tree(
  19. self._byname.keys(), lookup_entry, object_store, tree,
  20. want_unchanged=want_unchanged):
  21. === modified file 'dulwich/tests/test_index.py'
  22. --- old/dulwich/tests/test_index.py 2019-02-14 01:21:20 +0000
  23. +++ new/dulwich/tests/test_index.py 2019-12-15 13:30:23 +0000
  24. @@ -229,20 +229,24 @@
  25. class CleanupModeTests(TestCase):
  26. + def assertModeEqual(self, expected, got):
  27. + self.assertEqual(expected, got, '%o != %o' % (expected, got))
  28. +
  29. def test_file(self):
  30. - self.assertEqual(0o100644, cleanup_mode(0o100000))
  31. + self.assertModeEqual(0o100644, cleanup_mode(0o100000))
  32. def test_executable(self):
  33. - self.assertEqual(0o100755, cleanup_mode(0o100711))
  34. + self.assertModeEqual(0o100755, cleanup_mode(0o100711))
  35. + self.assertModeEqual(0o100755, cleanup_mode(0o100700))
  36. def test_symlink(self):
  37. - self.assertEqual(0o120000, cleanup_mode(0o120711))
  38. + self.assertModeEqual(0o120000, cleanup_mode(0o120711))
  39. def test_dir(self):
  40. - self.assertEqual(0o040000, cleanup_mode(0o40531))
  41. + self.assertModeEqual(0o040000, cleanup_mode(0o40531))
  42. def test_submodule(self):
  43. - self.assertEqual(0o160000, cleanup_mode(0o160744))
  44. + self.assertModeEqual(0o160000, cleanup_mode(0o160744))
  45. class WriteCacheTimeTests(TestCase):