|
@@ -45,6 +45,7 @@ from dulwich.objects import (
|
|
|
format_timezone,
|
|
|
hex_to_filename,
|
|
|
hex_to_sha,
|
|
|
+ key_entry,
|
|
|
object_class,
|
|
|
parse_timezone,
|
|
|
pretty_format_tree_entry,
|
|
@@ -816,27 +817,31 @@ nHxksHfeNln9RKseIDcy4b2ATjhDNIJZARHNfr6oy4u3XPW4svRqtBsLoMiIeuI=
|
|
|
|
|
|
|
|
|
_TREE_ITEMS = {
|
|
|
+ b"a-c": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
b"a.c": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
+ b"aoc": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
b"a": (stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
b"a/c": (stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
}
|
|
|
|
|
|
_SORTED_TREE_ITEMS = [
|
|
|
+ TreeEntry(b"a-c", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
TreeEntry(b"a.c", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
TreeEntry(b"a", stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
TreeEntry(b"a/c", stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
+ TreeEntry(b"aoc", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
|
|
|
]
|
|
|
|
|
|
|
|
|
_TREE_ITEMS_BUG_1325 = {
|
|
|
- b'gamma': (0o100755, b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
|
|
|
- b'gamma-new': (0o100644, b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
|
|
|
+ b'dir': (stat.S_IFDIR | 0o644, b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
|
|
|
+ b'dira': (0o100644, b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
|
|
|
}
|
|
|
|
|
|
|
|
|
_SORTED_TREE_ITEMS_BUG_1325 = [
|
|
|
- TreeEntry(path=b'gamma', mode=0o100755, sha=b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
|
|
|
- TreeEntry(path=b'gamma-new', mode=0o100644, sha=b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
|
|
|
+ TreeEntry(path=b'dir', mode=stat.S_IFDIR | 0o644, sha=b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
|
|
|
+ TreeEntry(path=b'dira', mode=0o100644, sha=b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
|
|
|
]
|
|
|
|
|
|
|
|
@@ -903,7 +908,8 @@ class TreeTests(ShaFileCheckTests):
|
|
|
self.assertEqual(_SORTED_TREE_ITEMS, actual)
|
|
|
self.assertIsInstance(actual[0], TreeEntry)
|
|
|
|
|
|
- actual = do_sort(_TREE_ITEMS_BUG_1325, True)
|
|
|
+ actual = do_sort(_TREE_ITEMS_BUG_1325, False)
|
|
|
+ self.assertEqual(key_entry((b"a", (0o40644, b"cf7a729ca69bfabd0995fc9b083e86a18215bd91"))), b"a/")
|
|
|
self.assertEqual(_SORTED_TREE_ITEMS_BUG_1325, actual)
|
|
|
self.assertIsInstance(actual[0], TreeEntry)
|
|
|
|
|
@@ -924,6 +930,7 @@ class TreeTests(ShaFileCheckTests):
|
|
|
_do_test_sorted_tree_items, _sorted_tree_items_py
|
|
|
)
|
|
|
if _sorted_tree_items_rs is not None:
|
|
|
+ assert _sorted_tree_items_rs != _sorted_tree_items_py
|
|
|
test_sorted_tree_items_extension = ext_functest_builder(
|
|
|
_do_test_sorted_tree_items, _sorted_tree_items_rs
|
|
|
)
|
|
@@ -936,6 +943,11 @@ class TreeTests(ShaFileCheckTests):
|
|
|
stat.S_IFDIR,
|
|
|
b"d80c186a03f423a81b39df39dc87fd269736ca86",
|
|
|
),
|
|
|
+ TreeEntry(
|
|
|
+ b"a-c",
|
|
|
+ 0o100755,
|
|
|
+ b"d80c186a03f423a81b39df39dc87fd269736ca86",
|
|
|
+ ),
|
|
|
TreeEntry(
|
|
|
b"a.c",
|
|
|
0o100755,
|
|
@@ -946,6 +958,13 @@ class TreeTests(ShaFileCheckTests):
|
|
|
stat.S_IFDIR,
|
|
|
b"d80c186a03f423a81b39df39dc87fd269736ca86",
|
|
|
),
|
|
|
+ TreeEntry(
|
|
|
+ b"aoc",
|
|
|
+ 0o100755,
|
|
|
+ b"d80c186a03f423a81b39df39dc87fd269736ca86",
|
|
|
+ ),
|
|
|
+
|
|
|
+
|
|
|
],
|
|
|
list(sorted_tree_items(_TREE_ITEMS, True)),
|
|
|
)
|