diff --git a/tests_with_gitaly/test_blob_tree.py b/tests_with_gitaly/test_blob_tree.py
index 40ba766d6ba3b9a42c67075c523860e6141326f9_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9ibG9iX3RyZWUucHk=..9c5438399d6a3d1ac7272e2e75101b42dfc94c61_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9ibG9iX3RyZWUucHk= 100644
--- a/tests_with_gitaly/test_blob_tree.py
+++ b/tests_with_gitaly/test_blob_tree.py
@@ -212,9 +212,10 @@
     sub.mkdir()
     rel_paths = []
     # Chunk size with Gitaly is big
-    for x in range(10000):
-        path = sub / ('bar%d' % x)
-        path.write_text('bar%d content' % x)
+    for x in range(2900):
+        # max file name length is 255 on most filesystems
+        path = sub / ('very-' * 46 + '-long-filename-bar%04d' % x)
+        path.write_text(str(x))
         rel_paths.append(path)
     # TODO OS indep for paths (actually TODO make wrapper.commit easier to
     # use, e.g., check how to make it accept patterns)
@@ -227,6 +228,8 @@
         assert len(distinct_amounts) == 1
         return next(iter(distinct_amounts))
 
+    # asking more than the expected Gitaly first chunk size (2888 entries)
+    # but still less than the total
     git_resps, hg_resps = [
         list(fixture.get_tree_entries_raw(vcs, b'sub',
                                           recursive=True,
@@ -230,7 +233,7 @@
     git_resps, hg_resps = [
         list(fixture.get_tree_entries_raw(vcs, b'sub',
                                           recursive=True,
-                                          limit=9000))
+                                          limit=2890))
         for vcs in ('git', 'hg')
     ]