hgitaly 17.11.1__tar.gz → 18.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. {hgitaly-17.11.1/hgitaly.egg-info → hgitaly-18.0.0}/PKG-INFO +1 -1
  2. hgitaly-18.0.0/hgitaly/VERSION +1 -0
  3. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/license_detector/__init__.py +1 -1
  4. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/repository.py +11 -4
  5. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_repository_service.py +22 -0
  6. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/servicer.py +7 -1
  7. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/diff_pb2.py +36 -36
  8. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_aux_git_pb2.py +3 -4
  9. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/repository_pb2.py +37 -37
  10. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/ssh.py +1 -0
  11. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_servicer.py +18 -0
  12. {hgitaly-17.11.1 → hgitaly-18.0.0/hgitaly.egg-info}/PKG-INFO +1 -1
  13. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_ref.py +6 -2
  14. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_remote.py +37 -0
  15. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_repository_service.py +48 -8
  16. hgitaly-17.11.1/hgitaly/VERSION +0 -1
  17. {hgitaly-17.11.1 → hgitaly-18.0.0}/LICENSE +0 -0
  18. {hgitaly-17.11.1 → hgitaly-18.0.0}/MANIFEST.in +0 -0
  19. {hgitaly-17.11.1 → hgitaly-18.0.0}/README.md +0 -0
  20. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/__init__.py +0 -0
  21. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/hgitaly/__init__.py +0 -0
  22. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/hgitaly/revset.py +0 -0
  23. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/hgitaly/tests/__init__.py +0 -0
  24. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/hgitaly/tests/test_revset.py +0 -0
  25. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgext3rd/hgitaly/tests/test_serve.py +0 -0
  26. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/__init__.py +0 -0
  27. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/branch.py +0 -0
  28. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/changelog.py +0 -0
  29. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/diff.py +0 -0
  30. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/errors.py +0 -0
  31. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/feature.py +0 -0
  32. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/file_content.py +0 -0
  33. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/file_context.py +0 -0
  34. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/git.py +0 -0
  35. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/gitlab_ref.py +0 -0
  36. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/identification.py +0 -0
  37. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/license_detector/spdx-licenses.json +0 -0
  38. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/linguist/__init__.py +0 -0
  39. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/linguist/languages.json +0 -0
  40. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/logging.py +0 -0
  41. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/manifest.py +0 -0
  42. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/message.py +0 -0
  43. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/oid.py +0 -0
  44. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/pagination.py +0 -0
  45. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/path.py +0 -0
  46. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/peer.py +0 -0
  47. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/procutil.py +0 -0
  48. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/repository.py +0 -0
  49. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/revision.py +0 -0
  50. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/revset.py +0 -0
  51. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/scripts.py +0 -0
  52. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/__init__.py +0 -0
  53. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/address.py +0 -0
  54. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/mono.py +0 -0
  55. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/prefork.py +0 -0
  56. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/tests/__init__.py +0 -0
  57. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/tests/test_address.py +0 -0
  58. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/tests/test_mono.py +0 -0
  59. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/tests/test_prefork.py +0 -0
  60. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/tests/test_worker.py +0 -0
  61. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/server/worker.py +0 -0
  62. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/__init__.py +0 -0
  63. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/analysis.py +0 -0
  64. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/blob.py +0 -0
  65. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/commit.py +0 -0
  66. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/diff.py +0 -0
  67. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/interceptors.py +0 -0
  68. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/mercurial_changeset.py +0 -0
  69. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/mercurial_operations.py +0 -0
  70. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/mercurial_repository.py +0 -0
  71. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/operations.py +0 -0
  72. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/ref.py +0 -0
  73. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/server.py +0 -0
  74. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/__init__.py +0 -0
  75. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/fixture.py +0 -0
  76. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_analysis.py +0 -0
  77. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_blob.py +0 -0
  78. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_commit.py +0 -0
  79. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_default_branch.py +0 -0
  80. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_diff.py +0 -0
  81. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_mercurial_changeset.py +0 -0
  82. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_mercurial_operations.py +0 -0
  83. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_mercurial_repository.py +0 -0
  84. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_operations.py +0 -0
  85. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_ref.py +0 -0
  86. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/service/tests/test_server.py +0 -0
  87. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/ssh.py +0 -0
  88. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stream.py +0 -0
  89. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/__init__.py +0 -0
  90. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/analysis_pb2.py +0 -0
  91. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/analysis_pb2_grpc.py +0 -0
  92. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/blob_pb2.py +0 -0
  93. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/blob_pb2_grpc.py +0 -0
  94. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/commit_pb2.py +0 -0
  95. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/commit_pb2_grpc.py +0 -0
  96. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/diff_pb2_grpc.py +0 -0
  97. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/errors_pb2.py +0 -0
  98. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/errors_pb2_grpc.py +0 -0
  99. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/lint_pb2.py +0 -0
  100. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/lint_pb2_grpc.py +0 -0
  101. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_aux_git_pb2_grpc.py +0 -0
  102. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_changeset_pb2.py +0 -0
  103. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_changeset_pb2_grpc.py +0 -0
  104. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_operations_pb2.py +0 -0
  105. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_operations_pb2_grpc.py +0 -0
  106. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_repository_pb2.py +0 -0
  107. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/mercurial_repository_pb2_grpc.py +0 -0
  108. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/operations_pb2.py +0 -0
  109. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/operations_pb2_grpc.py +0 -0
  110. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/ref_pb2.py +0 -0
  111. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/ref_pb2_grpc.py +0 -0
  112. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/remote_pb2.py +0 -0
  113. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/remote_pb2_grpc.py +0 -0
  114. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/repository_pb2_grpc.py +0 -0
  115. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/server_pb2.py +0 -0
  116. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/server_pb2_grpc.py +0 -0
  117. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/shared_pb2.py +0 -0
  118. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/stub/shared_pb2_grpc.py +0 -0
  119. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tag.py +0 -0
  120. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/__init__.py +0 -0
  121. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/bundle.py +0 -0
  122. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/context.py +0 -0
  123. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/grpc.py +0 -0
  124. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/multiprocessing.py +0 -0
  125. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/sshd.py +0 -0
  126. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/storage.py +0 -0
  127. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/tests/__init__.py +0 -0
  128. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/testing/tests/test_sshd.py +0 -0
  129. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/__init__.py +0 -0
  130. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/common.py +0 -0
  131. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_branch.py +0 -0
  132. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_diff.py +0 -0
  133. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_errors.py +0 -0
  134. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_feature.py +0 -0
  135. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_file_context.py +0 -0
  136. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_gitlab_ref.py +0 -0
  137. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_identification.py +0 -0
  138. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_license_detector.py +0 -0
  139. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_linguist.py +0 -0
  140. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_manifest.py +0 -0
  141. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_messages.py +0 -0
  142. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_oid.py +0 -0
  143. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_peer.py +0 -0
  144. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_repository.py +0 -0
  145. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_revision.py +0 -0
  146. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_revset.py +0 -0
  147. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_stream.py +0 -0
  148. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_tag.py +0 -0
  149. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/tests/test_workdir.py +0 -0
  150. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/util.py +0 -0
  151. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly/workdir.py +0 -0
  152. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly.egg-info/SOURCES.txt +0 -0
  153. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly.egg-info/dependency_links.txt +0 -0
  154. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly.egg-info/entry_points.txt +0 -0
  155. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly.egg-info/requires.txt +0 -0
  156. {hgitaly-17.11.1 → hgitaly-18.0.0}/hgitaly.egg-info/top_level.txt +0 -0
  157. {hgitaly-17.11.1 → hgitaly-18.0.0}/install-requirements.txt +0 -0
  158. {hgitaly-17.11.1 → hgitaly-18.0.0}/setup.cfg +0 -0
  159. {hgitaly-17.11.1 → hgitaly-18.0.0}/setup.py +0 -0
  160. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/__init__.py +0 -0
  161. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/comparison.py +0 -0
  162. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/conftest.py +0 -0
  163. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/gitaly.py +0 -0
  164. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/hgitaly_rhgitaly_comparison.py +0 -0
  165. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/rhgitaly.py +0 -0
  166. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_blob_tree.py +0 -0
  167. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_commit.py +0 -0
  168. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_comparison.py +0 -0
  169. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_diff.py +0 -0
  170. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_gitaly_server.py +0 -0
  171. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_mercurial_aux_git.py +0 -0
  172. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_mercurial_operations.py +0 -0
  173. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_mercurial_repository.py +0 -0
  174. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_operations.py +0 -0
  175. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_rhgitaly_server.py +0 -0
  176. {hgitaly-17.11.1 → hgitaly-18.0.0}/tests_with_gitaly/test_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hgitaly
3
- Version: 17.11.1
3
+ Version: 18.0.0
4
4
  Summary: Server-side implementation of Gitaly protocol for Mercurial
5
5
  Home-page: https://foss.heptapod.net/heptapod/hgitaly
6
6
  Author: Georges Racinet
@@ -0,0 +1 @@
1
+ 18.0.0
@@ -54,7 +54,7 @@ COMMON_LICENSE_FILES = ('LICENSE', 'COPYING')
54
54
  def license_content(name):
55
55
  """Return the full test content of one of the licenses we ship.
56
56
 
57
- Intendend for gRPC tests and Gitaly comparison tests.
57
+ Intended for gRPC tests and Gitaly comparison tests.
58
58
  """
59
59
  return (DATA_DIR / (name + '.sample')).read_text()
60
60
 
@@ -501,13 +501,20 @@ class RepositoryServicer(RepositoryServiceServicer, HGitalyServicer):
501
501
  match_data.seek(0)
502
502
 
503
503
  def set_custom_hooks(self, request, context):
504
- def load_repo(req, context):
505
- return self.load_repo(req.repository, context)
504
+ logger = LoggerAdapter(base_logger, context)
506
505
 
507
506
  with streaming_request_tempfile_extract(
508
507
  request, context,
509
- first_request_handler=load_repo
510
- ) as (repo, tmpf):
508
+ first_request_handler=lambda req, _context: req.repository
509
+ ) as (grpc_repo, tmpf):
510
+ if self.is_repo_aux_git(grpc_repo):
511
+ logger.warning(
512
+ "Heptapod does not currently use custom hooks "
513
+ "on auxiliary Git repositories. Nothing to do"
514
+ )
515
+ return
516
+
517
+ repo = self.load_repo(grpc_repo, context)
511
518
  tmpf.flush()
512
519
  try:
513
520
  restore_additional(repo.ui, repo,
@@ -38,6 +38,7 @@ from hgitaly.revision import ZERO_SHA
38
38
  from hgitaly.stream import WRITE_BUFFER_SIZE
39
39
  from hgitaly.testing import TEST_DATA_DIR
40
40
  from hgitaly.testing.bundle import list_bundle_contents
41
+ from hgitaly.testing.storage import GIT_REPOS_STOWED_AWAY_PATH
41
42
  from hgitaly.workdir import (
42
43
  ROSTER_FILE_NAME as WDS_ROSTER_FILE_NAME,
43
44
  working_directory,
@@ -349,6 +350,19 @@ def test_repository_exists(fixture_with_repo):
349
350
  assert exc_info.value.code() == INVALID_ARGUMENT
350
351
 
351
352
 
353
+ def test_vcs_qualified_storage(fixture_with_repo):
354
+ fixture = fixture_with_repo
355
+
356
+ fixture.grpc_repo.storage_name = 'hg:default'
357
+ assert fixture.exists()
358
+
359
+ fixture.grpc_repo.storage_name = 'rhg:default'
360
+ assert fixture.exists()
361
+
362
+ fixture.grpc_repo.relative_path = 'no/such/path'
363
+ assert not fixture.exists()
364
+
365
+
352
366
  def test_repository_size(fixture_with_repo):
353
367
  fixture = fixture_with_repo
354
368
  size = fixture.size()
@@ -854,6 +868,14 @@ def test_set_custom_hooks(fixture_with_repo, tmpdir, rpc_name):
854
868
  meth(invalid_tarball_path)
855
869
  assert exc_info.value.code() == INTERNAL
856
870
 
871
+ # case of Aux Git repository (nothing to be done, no error even if
872
+ # repository does not exist)
873
+ meth(tarball_path,
874
+ Repository(
875
+ storage_name=fixture.grpc_repo.storage_name,
876
+ relative_path=str(GIT_REPOS_STOWED_AWAY_PATH / 'some.git'),
877
+ ))
878
+
857
879
 
858
880
  @parametrize('rpc_name', ['backup', 'get'])
859
881
  def test_backup_custom_hooks(fixture_with_repo, tmpdir, rpc_name):
@@ -32,6 +32,7 @@ from .stub.shared_pb2 import (
32
32
 
33
33
  GARBAGE_COLLECTING_RATE_GEN2 = 250
34
34
  GARBAGE_COLLECTING_RATE_GEN1 = 20
35
+ AUX_GIT_REPOS_RELATIVE_DIR = "+hgitaly/hg-git"
35
36
  HG_GIT_MIRRORING_MD_KEY = 'x-heptapod-hg-git-mirroring'
36
37
  NATIVE_PROJECT_MD_KEY = 'x-heptapod-hg-native'
37
38
  # TODO check if there is a GitLab MD for this, it should:
@@ -129,6 +130,11 @@ class HGitalyServicer:
129
130
  # (typically ignoring some settings that can be critical to
130
131
  # operation)
131
132
 
133
+ def is_repo_aux_git(self, repository: Repository):
134
+ if repository is None:
135
+ return False
136
+ return repository.relative_path.startswith(AUX_GIT_REPOS_RELATIVE_DIR)
137
+
132
138
  def load_repo(self, repository: Repository, context,
133
139
  for_mutation_by=None,
134
140
  ):
@@ -288,7 +294,7 @@ class HGitalyServicer:
288
294
  # in request, without having the request object itself
289
295
  raise ValueError('repository not set')
290
296
 
291
- root_dir = self.storages.get(storage_name)
297
+ root_dir = self.storages.get(storage_name.rsplit(':', 1)[-1])
292
298
  if root_dir is None:
293
299
  raise KeyError('storage', storage_name)
294
300
  return root_dir
@@ -16,7 +16,7 @@ from . import lint_pb2 as lint__pb2
16
16
  from . import shared_pb2 as shared__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ndiff.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"\xd8\x06\n\x11\x43ommitDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x16\n\x0e\x63ollapse_diffs\x18\x06 \x01(\x08\x12\x16\n\x0e\x65nforce_limits\x18\x07 \x01(\x08\x12\x11\n\tmax_files\x18\x08 \x01(\x05\x12\x11\n\tmax_lines\x18\t \x01(\x05\x12\x11\n\tmax_bytes\x18\n \x01(\x05\x12\x17\n\x0fmax_patch_bytes\x18\x0e \x01(\x05\x12\x16\n\x0esafe_max_files\x18\x0b \x01(\x05\x12\x16\n\x0esafe_max_lines\x18\x0c \x01(\x05\x12\x16\n\x0esafe_max_bytes\x18\r \x01(\x05\x12\x35\n\tdiff_mode\x18\x0f \x01(\x0e\x32\".gitaly.CommitDiffRequest.DiffMode\x12h\n\"max_patch_bytes_for_file_extension\x18\x10 \x03(\x0b\x32<.gitaly.CommitDiffRequest.MaxPatchBytesForFileExtensionEntry\x12G\n\x12whitespace_changes\x18\x11 \x01(\x0e\x32+.gitaly.CommitDiffRequest.WhitespaceChanges\x12\x19\n\x11\x63ollect_all_paths\x18\x12 \x01(\x08\x1a\x44\n\"MaxPatchBytesForFileExtensionEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"%\n\x08\x44iffMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08WORDDIFF\x10\x01\"y\n\x11WhitespaceChanges\x12\"\n\x1eWHITESPACE_CHANGES_UNSPECIFIED\x10\x00\x12\x1d\n\x19WHITESPACE_CHANGES_IGNORE\x10\x01\x12!\n\x1dWHITESPACE_CHANGES_IGNORE_ALL\x10\x02J\x04\x08\x04\x10\x05R\x18ignore_whitespace_change\"\xff\x01\n\x12\x43ommitDiffResponse\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\x12\x0e\n\x06\x62inary\x18\x07 \x01(\x08\x12\x16\n\x0eraw_patch_data\x18\t \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\n \x01(\x08\x12\x17\n\x0foverflow_marker\x18\x0b \x01(\x08\x12\x11\n\tcollapsed\x18\x0c \x01(\x08\x12\x11\n\ttoo_large\x18\r \x01(\x08J\x04\x08\x08\x10\t\"\x82\x01\n\x12\x43ommitDeltaRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x04 \x03(\x0c\"u\n\x0b\x43ommitDelta\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\":\n\x13\x43ommitDeltaResponse\x12#\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x13.gitaly.CommitDelta\"o\n\x0eRawDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"\x1f\n\x0fRawDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"p\n\x0fRawPatchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\" \n\x10RawPatchResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"q\n\x10\x44iffStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"Q\n\tDiffStats\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\x12\x10\n\x08old_path\x18\x04 \x01(\x0c\"5\n\x11\x44iffStatsResponse\x12 \n\x05stats\x18\x01 \x03(\x0b\x32\x11.gitaly.DiffStats\"\xda\x05\n\x17\x46indChangedPathsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x07\x63ommits\x18\x02 \x03(\tB\x02\x18\x01\x12\x39\n\x08requests\x18\x03 \x03(\x0b\x32\'.gitaly.FindChangedPathsRequest.Request\x12S\n\x16merge_commit_diff_mode\x18\x04 \x01(\x0e\x32\x33.gitaly.FindChangedPathsRequest.MergeCommitDiffMode\x12\x14\n\x0c\x66ind_renames\x18\x05 \x01(\x08\x1a\xc2\x02\n\x07Request\x12K\n\x0ctree_request\x18\x01 \x01(\x0b\x32\x33.gitaly.FindChangedPathsRequest.Request.TreeRequestH\x00\x12O\n\x0e\x63ommit_request\x18\x02 \x01(\x0b\x32\x35.gitaly.FindChangedPathsRequest.Request.CommitRequestH\x00\x1a\x46\n\x0bTreeRequest\x12\x1a\n\x12left_tree_revision\x18\x01 \x01(\t\x12\x1b\n\x13right_tree_revision\x18\x02 \x01(\t\x1aI\n\rCommitRequest\x12\x17\n\x0f\x63ommit_revision\x18\x01 \x01(\t\x12\x1f\n\x17parent_commit_revisions\x18\x02 \x03(\tB\x06\n\x04type\"\x90\x01\n\x13MergeCommitDiffMode\x12&\n\"MERGE_COMMIT_DIFF_MODE_UNSPECIFIED\x10\x00\x12)\n%MERGE_COMMIT_DIFF_MODE_INCLUDE_MERGES\x10\x01\x12&\n\"MERGE_COMMIT_DIFF_MODE_ALL_PARENTS\x10\x02\"?\n\x18\x46indChangedPathsResponse\x12#\n\x05paths\x18\x01 \x03(\x0b\x32\x14.gitaly.ChangedPaths\"\x83\x02\n\x0c\x43hangedPaths\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.gitaly.ChangedPaths.Status\x12\x10\n\x08old_mode\x18\x03 \x01(\x05\x12\x10\n\x08new_mode\x18\x04 \x01(\x05\x12\x13\n\x0bold_blob_id\x18\x05 \x01(\t\x12\x13\n\x0bnew_blob_id\x18\x06 \x01(\t\x12\x10\n\x08old_path\x18\x07 \x01(\x0c\"X\n\x06Status\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x00\x12\x0c\n\x08MODIFIED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0f\n\x0bTYPE_CHANGE\x10\x03\x12\n\n\x06\x43OPIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\"m\n\x11GetPatchIDRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x14\n\x0cold_revision\x18\x02 \x01(\x0c\x12\x14\n\x0cnew_revision\x18\x03 \x01(\x0c\"&\n\x12GetPatchIDResponse\x12\x10\n\x08patch_id\x18\x01 \x01(\t\"+\n\tRangePair\x12\x0e\n\x06range1\x18\x01 \x01(\t\x12\x0e\n\x06range2\x18\x02 \x01(\t\"+\n\rRevisionRange\x12\x0c\n\x04rev1\x18\x01 \x01(\t\x12\x0c\n\x04rev2\x18\x02 \x01(\t\"=\n\x11\x42\x61seWithRevisions\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\x12\x0c\n\x04rev1\x18\x02 \x01(\t\x12\x0c\n\x04rev2\x18\x03 \x01(\t\"\xe5\x01\n\x13RawRangeDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\'\n\nrange_pair\x18\x02 \x01(\x0b\x32\x11.gitaly.RangePairH\x00\x12/\n\x0erevision_range\x18\x03 \x01(\x0b\x32\x15.gitaly.RevisionRangeH\x00\x12\x38\n\x13\x62\x61se_with_revisions\x18\x04 \x01(\x0b\x32\x19.gitaly.BaseWithRevisionsH\x00\x42\x0c\n\nrange_spec\"$\n\x14RawRangeDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xe2\x01\n\x10RangeDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\'\n\nrange_pair\x18\x02 \x01(\x0b\x32\x11.gitaly.RangePairH\x00\x12/\n\x0erevision_range\x18\x03 \x01(\x0b\x32\x15.gitaly.RevisionRangeH\x00\x12\x38\n\x13\x62\x61se_with_revisions\x18\x04 \x01(\x0b\x32\x19.gitaly.BaseWithRevisionsH\x00\x42\x0c\n\nrange_spec\"\xc4\x02\n\x11RangeDiffResponse\x12\x16\n\x0e\x66rom_commit_id\x18\x01 \x01(\t\x12\x14\n\x0cto_commit_id\x18\x02 \x01(\t\x12\x38\n\ncomparison\x18\x03 \x01(\x0e\x32$.gitaly.RangeDiffResponse.Comparator\x12\x1c\n\x14\x63ommit_message_title\x18\x07 \x01(\t\x12\x12\n\npatch_data\x18\x08 \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\t \x01(\x08\"\x7f\n\nComparator\x12 \n\x1c\x43OMPARATOR_EQUAL_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x43OMPARATOR_GREATER_THAN\x10\x01\x12\x18\n\x14\x43OMPARATOR_LESS_THAN\x10\x02\x12\x18\n\x14\x43OMPARATOR_NOT_EQUAL\x10\x03\"\xf9\x03\n\x10\x44iffBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x35\n\nblob_pairs\x18\x02 \x03(\x0b\x32!.gitaly.DiffBlobsRequest.BlobPair\x12\x34\n\tdiff_mode\x18\x03 \x01(\x0e\x32!.gitaly.DiffBlobsRequest.DiffMode\x12\x46\n\x12whitespace_changes\x18\x04 \x01(\x0e\x32*.gitaly.DiffBlobsRequest.WhitespaceChanges\x12\x19\n\x11patch_bytes_limit\x18\x05 \x01(\x05\x1a\x31\n\x08\x42lobPair\x12\x11\n\tleft_blob\x18\x01 \x01(\x0c\x12\x12\n\nright_blob\x18\x02 \x01(\x0c\"9\n\x08\x44iffMode\x12\x19\n\x15\x44IFF_MODE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x44IFF_MODE_WORD\x10\x01\"y\n\x11WhitespaceChanges\x12\"\n\x1eWHITESPACE_CHANGES_UNSPECIFIED\x10\x00\x12\x1d\n\x19WHITESPACE_CHANGES_IGNORE\x10\x01\x12!\n\x1dWHITESPACE_CHANGES_IGNORE_ALL\x10\x02\"\xff\x01\n\x11\x44iffBlobsResponse\x12\x14\n\x0cleft_blob_id\x18\x01 \x01(\t\x12\x15\n\rright_blob_id\x18\x02 \x01(\t\x12\r\n\x05patch\x18\x03 \x01(\x0c\x12\x30\n\x06status\x18\x04 \x01(\x0e\x32 .gitaly.DiffBlobsResponse.Status\x12\x0e\n\x06\x62inary\x18\x05 \x01(\x08\x12\x1e\n\x16over_patch_bytes_limit\x18\x06 \x01(\x08\x12\x12\n\npatch_size\x18\x07 \x01(\x05\"8\n\x06Status\x12\x15\n\x11STATUS_INCOMPLETE\x10\x00\x12\x17\n\x13STATUS_END_OF_PATCH\x10\x01\x32\xa4\x06\n\x0b\x44iffService\x12M\n\nCommitDiff\x12\x19.gitaly.CommitDiffRequest\x1a\x1a.gitaly.CommitDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x43ommitDelta\x12\x1a.gitaly.CommitDeltaRequest\x1a\x1b.gitaly.CommitDeltaResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x44\n\x07RawDiff\x12\x16.gitaly.RawDiffRequest\x1a\x17.gitaly.RawDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08RawPatch\x12\x17.gitaly.RawPatchRequest\x1a\x18.gitaly.RawPatchResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffStats\x12\x18.gitaly.DiffStatsRequest\x1a\x19.gitaly.DiffStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x46indChangedPaths\x12\x1f.gitaly.FindChangedPathsRequest\x1a .gitaly.FindChangedPathsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12K\n\nGetPatchID\x12\x19.gitaly.GetPatchIDRequest\x1a\x1a.gitaly.GetPatchIDResponse\"\x06\xfa\x97(\x02\x08\x02\x12S\n\x0cRawRangeDiff\x12\x1b.gitaly.RawRangeDiffRequest\x1a\x1c.gitaly.RawRangeDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tRangeDiff\x12\x18.gitaly.RangeDiffRequest\x1a\x19.gitaly.RangeDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffBlobs\x12\x18.gitaly.DiffBlobsRequest\x1a\x19.gitaly.DiffBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypbb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ndiff.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"\xd8\x06\n\x11\x43ommitDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x16\n\x0e\x63ollapse_diffs\x18\x06 \x01(\x08\x12\x16\n\x0e\x65nforce_limits\x18\x07 \x01(\x08\x12\x11\n\tmax_files\x18\x08 \x01(\x05\x12\x11\n\tmax_lines\x18\t \x01(\x05\x12\x11\n\tmax_bytes\x18\n \x01(\x05\x12\x17\n\x0fmax_patch_bytes\x18\x0e \x01(\x05\x12\x16\n\x0esafe_max_files\x18\x0b \x01(\x05\x12\x16\n\x0esafe_max_lines\x18\x0c \x01(\x05\x12\x16\n\x0esafe_max_bytes\x18\r \x01(\x05\x12\x35\n\tdiff_mode\x18\x0f \x01(\x0e\x32\".gitaly.CommitDiffRequest.DiffMode\x12h\n\"max_patch_bytes_for_file_extension\x18\x10 \x03(\x0b\x32<.gitaly.CommitDiffRequest.MaxPatchBytesForFileExtensionEntry\x12G\n\x12whitespace_changes\x18\x11 \x01(\x0e\x32+.gitaly.CommitDiffRequest.WhitespaceChanges\x12\x19\n\x11\x63ollect_all_paths\x18\x12 \x01(\x08\x1a\x44\n\"MaxPatchBytesForFileExtensionEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"%\n\x08\x44iffMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08WORDDIFF\x10\x01\"y\n\x11WhitespaceChanges\x12\"\n\x1eWHITESPACE_CHANGES_UNSPECIFIED\x10\x00\x12\x1d\n\x19WHITESPACE_CHANGES_IGNORE\x10\x01\x12!\n\x1dWHITESPACE_CHANGES_IGNORE_ALL\x10\x02J\x04\x08\x04\x10\x05R\x18ignore_whitespace_change\"\xff\x01\n\x12\x43ommitDiffResponse\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\x12\x0e\n\x06\x62inary\x18\x07 \x01(\x08\x12\x16\n\x0eraw_patch_data\x18\t \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\n \x01(\x08\x12\x17\n\x0foverflow_marker\x18\x0b \x01(\x08\x12\x11\n\tcollapsed\x18\x0c \x01(\x08\x12\x11\n\ttoo_large\x18\r \x01(\x08J\x04\x08\x08\x10\t\"\x82\x01\n\x12\x43ommitDeltaRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x04 \x03(\x0c\"u\n\x0b\x43ommitDelta\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\":\n\x13\x43ommitDeltaResponse\x12#\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x13.gitaly.CommitDelta\"o\n\x0eRawDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"\x1f\n\x0fRawDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"p\n\x0fRawPatchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\" \n\x10RawPatchResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"q\n\x10\x44iffStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"Q\n\tDiffStats\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\x12\x10\n\x08old_path\x18\x04 \x01(\x0c\"5\n\x11\x44iffStatsResponse\x12 \n\x05stats\x18\x01 \x03(\x0b\x32\x11.gitaly.DiffStats\"\xda\x05\n\x17\x46indChangedPathsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x07\x63ommits\x18\x02 \x03(\tB\x02\x18\x01\x12\x39\n\x08requests\x18\x03 \x03(\x0b\x32\'.gitaly.FindChangedPathsRequest.Request\x12S\n\x16merge_commit_diff_mode\x18\x04 \x01(\x0e\x32\x33.gitaly.FindChangedPathsRequest.MergeCommitDiffMode\x12\x14\n\x0c\x66ind_renames\x18\x05 \x01(\x08\x1a\xc2\x02\n\x07Request\x12K\n\x0ctree_request\x18\x01 \x01(\x0b\x32\x33.gitaly.FindChangedPathsRequest.Request.TreeRequestH\x00\x12O\n\x0e\x63ommit_request\x18\x02 \x01(\x0b\x32\x35.gitaly.FindChangedPathsRequest.Request.CommitRequestH\x00\x1a\x46\n\x0bTreeRequest\x12\x1a\n\x12left_tree_revision\x18\x01 \x01(\t\x12\x1b\n\x13right_tree_revision\x18\x02 \x01(\t\x1aI\n\rCommitRequest\x12\x17\n\x0f\x63ommit_revision\x18\x01 \x01(\t\x12\x1f\n\x17parent_commit_revisions\x18\x02 \x03(\tB\x06\n\x04type\"\x90\x01\n\x13MergeCommitDiffMode\x12&\n\"MERGE_COMMIT_DIFF_MODE_UNSPECIFIED\x10\x00\x12)\n%MERGE_COMMIT_DIFF_MODE_INCLUDE_MERGES\x10\x01\x12&\n\"MERGE_COMMIT_DIFF_MODE_ALL_PARENTS\x10\x02\"?\n\x18\x46indChangedPathsResponse\x12#\n\x05paths\x18\x01 \x03(\x0b\x32\x14.gitaly.ChangedPaths\"\x92\x02\n\x0c\x43hangedPaths\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.gitaly.ChangedPaths.Status\x12\x10\n\x08old_mode\x18\x03 \x01(\x05\x12\x10\n\x08new_mode\x18\x04 \x01(\x05\x12\x13\n\x0bold_blob_id\x18\x05 \x01(\t\x12\x13\n\x0bnew_blob_id\x18\x06 \x01(\t\x12\x10\n\x08old_path\x18\x07 \x01(\x0c\x12\r\n\x05score\x18\x08 \x01(\x05\"X\n\x06Status\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x00\x12\x0c\n\x08MODIFIED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0f\n\x0bTYPE_CHANGE\x10\x03\x12\n\n\x06\x43OPIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\"m\n\x11GetPatchIDRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x14\n\x0cold_revision\x18\x02 \x01(\x0c\x12\x14\n\x0cnew_revision\x18\x03 \x01(\x0c\"&\n\x12GetPatchIDResponse\x12\x10\n\x08patch_id\x18\x01 \x01(\t\"+\n\tRangePair\x12\x0e\n\x06range1\x18\x01 \x01(\t\x12\x0e\n\x06range2\x18\x02 \x01(\t\"+\n\rRevisionRange\x12\x0c\n\x04rev1\x18\x01 \x01(\t\x12\x0c\n\x04rev2\x18\x02 \x01(\t\"=\n\x11\x42\x61seWithRevisions\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\x12\x0c\n\x04rev1\x18\x02 \x01(\t\x12\x0c\n\x04rev2\x18\x03 \x01(\t\"\xe5\x01\n\x13RawRangeDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\'\n\nrange_pair\x18\x02 \x01(\x0b\x32\x11.gitaly.RangePairH\x00\x12/\n\x0erevision_range\x18\x03 \x01(\x0b\x32\x15.gitaly.RevisionRangeH\x00\x12\x38\n\x13\x62\x61se_with_revisions\x18\x04 \x01(\x0b\x32\x19.gitaly.BaseWithRevisionsH\x00\x42\x0c\n\nrange_spec\"$\n\x14RawRangeDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xe2\x01\n\x10RangeDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\'\n\nrange_pair\x18\x02 \x01(\x0b\x32\x11.gitaly.RangePairH\x00\x12/\n\x0erevision_range\x18\x03 \x01(\x0b\x32\x15.gitaly.RevisionRangeH\x00\x12\x38\n\x13\x62\x61se_with_revisions\x18\x04 \x01(\x0b\x32\x19.gitaly.BaseWithRevisionsH\x00\x42\x0c\n\nrange_spec\"\xc4\x02\n\x11RangeDiffResponse\x12\x16\n\x0e\x66rom_commit_id\x18\x01 \x01(\t\x12\x14\n\x0cto_commit_id\x18\x02 \x01(\t\x12\x38\n\ncomparison\x18\x03 \x01(\x0e\x32$.gitaly.RangeDiffResponse.Comparator\x12\x1c\n\x14\x63ommit_message_title\x18\x07 \x01(\t\x12\x12\n\npatch_data\x18\x08 \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\t \x01(\x08\"\x7f\n\nComparator\x12 \n\x1c\x43OMPARATOR_EQUAL_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x43OMPARATOR_GREATER_THAN\x10\x01\x12\x18\n\x14\x43OMPARATOR_LESS_THAN\x10\x02\x12\x18\n\x14\x43OMPARATOR_NOT_EQUAL\x10\x03\"\xa1\x04\n\x10\x44iffBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x35\n\nblob_pairs\x18\x02 \x03(\x0b\x32!.gitaly.DiffBlobsRequest.BlobPair\x12\x34\n\tdiff_mode\x18\x03 \x01(\x0e\x32!.gitaly.DiffBlobsRequest.DiffMode\x12\x46\n\x12whitespace_changes\x18\x04 \x01(\x0e\x32*.gitaly.DiffBlobsRequest.WhitespaceChanges\x12\x19\n\x11patch_bytes_limit\x18\x05 \x01(\x05\x12&\n\x08raw_info\x18\x06 \x03(\x0b\x32\x14.gitaly.ChangedPaths\x1a\x31\n\x08\x42lobPair\x12\x11\n\tleft_blob\x18\x01 \x01(\x0c\x12\x12\n\nright_blob\x18\x02 \x01(\x0c\"9\n\x08\x44iffMode\x12\x19\n\x15\x44IFF_MODE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x44IFF_MODE_WORD\x10\x01\"y\n\x11WhitespaceChanges\x12\"\n\x1eWHITESPACE_CHANGES_UNSPECIFIED\x10\x00\x12\x1d\n\x19WHITESPACE_CHANGES_IGNORE\x10\x01\x12!\n\x1dWHITESPACE_CHANGES_IGNORE_ALL\x10\x02\"\xff\x01\n\x11\x44iffBlobsResponse\x12\x14\n\x0cleft_blob_id\x18\x01 \x01(\t\x12\x15\n\rright_blob_id\x18\x02 \x01(\t\x12\r\n\x05patch\x18\x03 \x01(\x0c\x12\x30\n\x06status\x18\x04 \x01(\x0e\x32 .gitaly.DiffBlobsResponse.Status\x12\x0e\n\x06\x62inary\x18\x05 \x01(\x08\x12\x1e\n\x16over_patch_bytes_limit\x18\x06 \x01(\x08\x12\x12\n\npatch_size\x18\x07 \x01(\x05\"8\n\x06Status\x12\x15\n\x11STATUS_INCOMPLETE\x10\x00\x12\x17\n\x13STATUS_END_OF_PATCH\x10\x01\x32\xa4\x06\n\x0b\x44iffService\x12M\n\nCommitDiff\x12\x19.gitaly.CommitDiffRequest\x1a\x1a.gitaly.CommitDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x43ommitDelta\x12\x1a.gitaly.CommitDeltaRequest\x1a\x1b.gitaly.CommitDeltaResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x44\n\x07RawDiff\x12\x16.gitaly.RawDiffRequest\x1a\x17.gitaly.RawDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08RawPatch\x12\x17.gitaly.RawPatchRequest\x1a\x18.gitaly.RawPatchResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffStats\x12\x18.gitaly.DiffStatsRequest\x1a\x19.gitaly.DiffStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x46indChangedPaths\x12\x1f.gitaly.FindChangedPathsRequest\x1a .gitaly.FindChangedPathsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12K\n\nGetPatchID\x12\x19.gitaly.GetPatchIDRequest\x1a\x1a.gitaly.GetPatchIDResponse\"\x06\xfa\x97(\x02\x08\x02\x12S\n\x0cRawRangeDiff\x12\x1b.gitaly.RawRangeDiffRequest\x1a\x1c.gitaly.RawRangeDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tRangeDiff\x12\x18.gitaly.RangeDiffRequest\x1a\x19.gitaly.RangeDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffBlobs\x12\x18.gitaly.DiffBlobsRequest\x1a\x19.gitaly.DiffBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypbb\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -111,41 +111,41 @@ if not _descriptor._USE_C_DESCRIPTORS:
111
111
  _globals['_FINDCHANGEDPATHSRESPONSE']._serialized_start=2757
112
112
  _globals['_FINDCHANGEDPATHSRESPONSE']._serialized_end=2820
113
113
  _globals['_CHANGEDPATHS']._serialized_start=2823
114
- _globals['_CHANGEDPATHS']._serialized_end=3082
115
- _globals['_CHANGEDPATHS_STATUS']._serialized_start=2994
116
- _globals['_CHANGEDPATHS_STATUS']._serialized_end=3082
117
- _globals['_GETPATCHIDREQUEST']._serialized_start=3084
118
- _globals['_GETPATCHIDREQUEST']._serialized_end=3193
119
- _globals['_GETPATCHIDRESPONSE']._serialized_start=3195
120
- _globals['_GETPATCHIDRESPONSE']._serialized_end=3233
121
- _globals['_RANGEPAIR']._serialized_start=3235
122
- _globals['_RANGEPAIR']._serialized_end=3278
123
- _globals['_REVISIONRANGE']._serialized_start=3280
124
- _globals['_REVISIONRANGE']._serialized_end=3323
125
- _globals['_BASEWITHREVISIONS']._serialized_start=3325
126
- _globals['_BASEWITHREVISIONS']._serialized_end=3386
127
- _globals['_RAWRANGEDIFFREQUEST']._serialized_start=3389
128
- _globals['_RAWRANGEDIFFREQUEST']._serialized_end=3618
129
- _globals['_RAWRANGEDIFFRESPONSE']._serialized_start=3620
130
- _globals['_RAWRANGEDIFFRESPONSE']._serialized_end=3656
131
- _globals['_RANGEDIFFREQUEST']._serialized_start=3659
132
- _globals['_RANGEDIFFREQUEST']._serialized_end=3885
133
- _globals['_RANGEDIFFRESPONSE']._serialized_start=3888
134
- _globals['_RANGEDIFFRESPONSE']._serialized_end=4212
135
- _globals['_RANGEDIFFRESPONSE_COMPARATOR']._serialized_start=4085
136
- _globals['_RANGEDIFFRESPONSE_COMPARATOR']._serialized_end=4212
137
- _globals['_DIFFBLOBSREQUEST']._serialized_start=4215
138
- _globals['_DIFFBLOBSREQUEST']._serialized_end=4720
139
- _globals['_DIFFBLOBSREQUEST_BLOBPAIR']._serialized_start=4489
140
- _globals['_DIFFBLOBSREQUEST_BLOBPAIR']._serialized_end=4538
141
- _globals['_DIFFBLOBSREQUEST_DIFFMODE']._serialized_start=4540
142
- _globals['_DIFFBLOBSREQUEST_DIFFMODE']._serialized_end=4597
114
+ _globals['_CHANGEDPATHS']._serialized_end=3097
115
+ _globals['_CHANGEDPATHS_STATUS']._serialized_start=3009
116
+ _globals['_CHANGEDPATHS_STATUS']._serialized_end=3097
117
+ _globals['_GETPATCHIDREQUEST']._serialized_start=3099
118
+ _globals['_GETPATCHIDREQUEST']._serialized_end=3208
119
+ _globals['_GETPATCHIDRESPONSE']._serialized_start=3210
120
+ _globals['_GETPATCHIDRESPONSE']._serialized_end=3248
121
+ _globals['_RANGEPAIR']._serialized_start=3250
122
+ _globals['_RANGEPAIR']._serialized_end=3293
123
+ _globals['_REVISIONRANGE']._serialized_start=3295
124
+ _globals['_REVISIONRANGE']._serialized_end=3338
125
+ _globals['_BASEWITHREVISIONS']._serialized_start=3340
126
+ _globals['_BASEWITHREVISIONS']._serialized_end=3401
127
+ _globals['_RAWRANGEDIFFREQUEST']._serialized_start=3404
128
+ _globals['_RAWRANGEDIFFREQUEST']._serialized_end=3633
129
+ _globals['_RAWRANGEDIFFRESPONSE']._serialized_start=3635
130
+ _globals['_RAWRANGEDIFFRESPONSE']._serialized_end=3671
131
+ _globals['_RANGEDIFFREQUEST']._serialized_start=3674
132
+ _globals['_RANGEDIFFREQUEST']._serialized_end=3900
133
+ _globals['_RANGEDIFFRESPONSE']._serialized_start=3903
134
+ _globals['_RANGEDIFFRESPONSE']._serialized_end=4227
135
+ _globals['_RANGEDIFFRESPONSE_COMPARATOR']._serialized_start=4100
136
+ _globals['_RANGEDIFFRESPONSE_COMPARATOR']._serialized_end=4227
137
+ _globals['_DIFFBLOBSREQUEST']._serialized_start=4230
138
+ _globals['_DIFFBLOBSREQUEST']._serialized_end=4775
139
+ _globals['_DIFFBLOBSREQUEST_BLOBPAIR']._serialized_start=4544
140
+ _globals['_DIFFBLOBSREQUEST_BLOBPAIR']._serialized_end=4593
141
+ _globals['_DIFFBLOBSREQUEST_DIFFMODE']._serialized_start=4595
142
+ _globals['_DIFFBLOBSREQUEST_DIFFMODE']._serialized_end=4652
143
143
  _globals['_DIFFBLOBSREQUEST_WHITESPACECHANGES']._serialized_start=752
144
144
  _globals['_DIFFBLOBSREQUEST_WHITESPACECHANGES']._serialized_end=873
145
- _globals['_DIFFBLOBSRESPONSE']._serialized_start=4723
146
- _globals['_DIFFBLOBSRESPONSE']._serialized_end=4978
147
- _globals['_DIFFBLOBSRESPONSE_STATUS']._serialized_start=4922
148
- _globals['_DIFFBLOBSRESPONSE_STATUS']._serialized_end=4978
149
- _globals['_DIFFSERVICE']._serialized_start=4981
150
- _globals['_DIFFSERVICE']._serialized_end=5785
145
+ _globals['_DIFFBLOBSRESPONSE']._serialized_start=4778
146
+ _globals['_DIFFBLOBSRESPONSE']._serialized_end=5033
147
+ _globals['_DIFFBLOBSRESPONSE_STATUS']._serialized_start=4977
148
+ _globals['_DIFFBLOBSRESPONSE_STATUS']._serialized_end=5033
149
+ _globals['_DIFFSERVICE']._serialized_start=5036
150
+ _globals['_DIFFSERVICE']._serialized_end=5840
151
151
  # @@protoc_insertion_point(module_scope)
@@ -13,11 +13,10 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
  from . import lint_pb2 as lint__pb2
16
- from . import shared_pb2 as shared__pb2
17
16
  from . import repository_pb2 as repository__pb2
18
17
 
19
18
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17mercurial-aux-git.proto\x12\x07hgitaly\x1a\nlint.proto\x1a\x0cshared.proto\x1a\x10repository.proto2\xcd\x02\n\x16MercurialAuxGitService\x12Y\n\x12\x41uxGitCreateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12y\n\x16\x41uxGitCreateFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12]\n\x14\x41uxGitRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x01\x62\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17mercurial-aux-git.proto\x12\x07hgitaly\x1a\nlint.proto\x1a\x10repository.proto2\xcd\x02\n\x16MercurialAuxGitService\x12Y\n\x12\x41uxGitCreateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12y\n\x16\x41uxGitCreateFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12]\n\x14\x41uxGitRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x01\x62\x06proto3')
21
20
 
22
21
  _globals = globals()
23
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -30,6 +29,6 @@ if not _descriptor._USE_C_DESCRIPTORS:
30
29
  _globals['_MERCURIALAUXGITSERVICE'].methods_by_name['AuxGitCreateFromBundle']._serialized_options = b'\372\227(\002\010\001'
31
30
  _globals['_MERCURIALAUXGITSERVICE'].methods_by_name['AuxGitRepositorySize']._loaded_options = None
32
31
  _globals['_MERCURIALAUXGITSERVICE'].methods_by_name['AuxGitRepositorySize']._serialized_options = b'\372\227(\002\010\001'
33
- _globals['_MERCURIALAUXGITSERVICE']._serialized_start=81
34
- _globals['_MERCURIALAUXGITSERVICE']._serialized_end=414
32
+ _globals['_MERCURIALAUXGITSERVICE']._serialized_start=67
33
+ _globals['_MERCURIALAUXGITSERVICE']._serialized_end=400
35
34
  # @@protoc_insertion_point(module_scope)
@@ -19,7 +19,7 @@ from . import lint_pb2 as lint__pb2
19
19
  from . import shared_pb2 as shared__pb2
20
20
 
21
21
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10repository.proto\x12\x06gitaly\x1a\x0c\x65rrors.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"G\n\x17RepositoryExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"*\n\x18RepositoryExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"E\n\x15RepositorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"&\n\x16RepositorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"E\n\x15RepositoryInfoRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x80\x0c\n\x16RepositoryInfoResponse\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x41\n\nreferences\x18\x02 \x01(\x0b\x32-.gitaly.RepositoryInfoResponse.ReferencesInfo\x12;\n\x07objects\x18\x03 \x01(\x0b\x32*.gitaly.RepositoryInfoResponse.ObjectsInfo\x12\x44\n\x0c\x63ommit_graph\x18\x04 \x01(\x0b\x32..gitaly.RepositoryInfoResponse.CommitGraphInfo\x12\x39\n\x06\x62itmap\x18\x05 \x01(\x0b\x32).gitaly.RepositoryInfoResponse.BitmapInfo\x12K\n\x10multi_pack_index\x18\x06 \x01(\x0b\x32\x31.gitaly.RepositoryInfoResponse.MultiPackIndexInfo\x12J\n\x17multi_pack_index_bitmap\x18\x07 \x01(\x0b\x32).gitaly.RepositoryInfoResponse.BitmapInfo\x12\x41\n\nalternates\x18\x08 \x01(\x0b\x32-.gitaly.RepositoryInfoResponse.AlternatesInfo\x12\x16\n\x0eis_object_pool\x18\t \x01(\x08\x12\x34\n\x10last_full_repack\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x89\x02\n\x0eReferencesInfo\x12\x13\n\x0bloose_count\x18\x01 \x01(\x04\x12\x13\n\x0bpacked_size\x18\x02 \x01(\x04\x12Y\n\x11reference_backend\x18\x03 \x01(\x0e\x32>.gitaly.RepositoryInfoResponse.ReferencesInfo.ReferenceBackend\"r\n\x10ReferenceBackend\x12!\n\x1dREFERENCE_BACKEND_UNSPECIFIED\x10\x00\x12\x1b\n\x17REFERENCE_BACKEND_FILES\x10\x01\x12\x1e\n\x1aREFERENCE_BACKEND_REFTABLE\x10\x02\x1a\x9a\x02\n\x0bObjectsInfo\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x13\n\x0brecent_size\x18\x02 \x01(\x04\x12\x12\n\nstale_size\x18\x03 \x01(\x04\x12\x11\n\tkeep_size\x18\x04 \x01(\x04\x12\x16\n\x0epackfile_count\x18\x05 \x01(\x04\x12\x1b\n\x13reverse_index_count\x18\x06 \x01(\x04\x12\x13\n\x0b\x63ruft_count\x18\x07 \x01(\x04\x12\x12\n\nkeep_count\x18\x08 \x01(\x04\x12\x1b\n\x13loose_objects_count\x18\t \x01(\x04\x12!\n\x19stale_loose_objects_count\x18\n \x01(\x04\x12#\n\x1bloose_objects_garbage_count\x18\x0b \x01(\x04\x1a\x92\x01\n\x0f\x43ommitGraphInfo\x12!\n\x19\x63ommit_graph_chain_length\x18\x01 \x01(\x04\x12\x19\n\x11has_bloom_filters\x18\x02 \x01(\x08\x12\x1b\n\x13has_generation_data\x18\x03 \x01(\x08\x12$\n\x1chas_generation_data_overflow\x18\x05 \x01(\x08\x1aO\n\nBitmapInfo\x12\x16\n\x0ehas_hash_cache\x18\x01 \x01(\x08\x12\x18\n\x10has_lookup_table\x18\x02 \x01(\x08\x12\x0f\n\x07version\x18\x03 \x01(\x04\x1a=\n\x12MultiPackIndexInfo\x12\x16\n\x0epackfile_count\x18\x01 \x01(\x04\x12\x0f\n\x07version\x18\x02 \x01(\x04\x1a_\n\x0e\x41lternatesInfo\x12\x1a\n\x12object_directories\x18\x01 \x03(\t\x12\x31\n\rlast_modified\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"U\n\x12ObjectsSizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"#\n\x13ObjectsSizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x04\"C\n\x13ObjectFormatRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"<\n\x14ObjectFormatResponse\x12$\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x14.gitaly.ObjectFormat\"e\n\x12\x46\x65tchBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x13\n\x0bupdate_head\x18\x03 \x01(\x08\"\x15\n\x13\x46\x65tchBundleResponse\"\x82\x02\n\x12\x46\x65tchRemoteRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x12\x0f\n\x07no_tags\x18\x04 \x01(\x08\x12\x0f\n\x07timeout\x18\x05 \x01(\x05\x12\x0f\n\x07ssh_key\x18\x06 \x01(\t\x12\x13\n\x0bknown_hosts\x18\x07 \x01(\t\x12\x10\n\x08no_prune\x18\t \x01(\x08\x12%\n\rremote_params\x18\n \x01(\x0b\x32\x0e.gitaly.Remote\x12\x1a\n\x12\x63heck_tags_changed\x18\x0b \x01(\x08J\x04\x08\x08\x10\tJ\x04\x08\x02\x10\x03R\x06remote\"A\n\x13\x46\x65tchRemoteResponse\x12\x14\n\x0ctags_changed\x18\x01 \x01(\x08\x12\x14\n\x0crepo_changed\x18\x02 \x01(\x08\"\x8c\x01\n\x17\x43reateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x02 \x01(\x0c\x12+\n\robject_format\x18\x03 \x01(\x0e\x32\x14.gitaly.ObjectFormat\"\x1a\n\x18\x43reateRepositoryResponse\"\x99\x02\n\x11GetArchiveRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x0e\n\x06prefix\x18\x03 \x01(\t\x12\x30\n\x06\x66ormat\x18\x04 \x01(\x0e\x32 .gitaly.GetArchiveRequest.Format\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x0f\n\x07\x65xclude\x18\x06 \x03(\x0c\x12\x12\n\nelide_path\x18\x07 \x01(\x08\x12\x19\n\x11include_lfs_blobs\x18\x08 \x01(\x08\"3\n\x06\x46ormat\x12\x07\n\x03ZIP\x10\x00\x12\x07\n\x03TAR\x10\x01\x12\n\n\x06TAR_GZ\x10\x02\x12\x0b\n\x07TAR_BZ2\x10\x03\"\"\n\x12GetArchiveResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"G\n\x17HasLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x18HasLocalBranchesResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\xc3\x01\n\x18\x46\x65tchSourceBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x15\n\rsource_branch\x18\x03 \x01(\x0c\x12\x12\n\ntarget_ref\x18\x04 \x01(\x0c\x12\x1f\n\x17\x65xpected_target_old_oid\x18\x05 \x01(\t\"+\n\x19\x46\x65tchSourceBranchResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\";\n\x0b\x46sckRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1d\n\x0c\x46sckResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\x0c\"\x87\x01\n\x0fWriteRefRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x0c\x12\x14\n\x0cold_revision\x18\x04 \x01(\x0cJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x05\x66orce\"\x18\n\x10WriteRefResponseJ\x04\x08\x01\x10\x02\"W\n\x14\x46indMergeBaseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"%\n\x15\x46indMergeBaseResponse\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\"\x82\x01\n\x11\x43reateForkRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x10\n\x08revision\x18\x03 \x01(\x0c\"\x14\n\x12\x43reateForkResponse\"\xb9\x01\n\x1e\x43reateRepositoryFromURLRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03url\x18\x02 \x01(\t\x12!\n\x19http_authorization_header\x18\x04 \x01(\t\x12\x0e\n\x06mirror\x18\x05 \x01(\x08\x12\x18\n\x10resolved_address\x18\x06 \x01(\tJ\x04\x08\x03\x10\x04R\thttp_host\"!\n\x1f\x43reateRepositoryFromURLResponse\"`\n\x1c\x43reateRepositoryFromURLError\x12\x37\n\x10remote_not_found\x18\x01 \x01(\x0b\x32\x1b.gitaly.RemoteNotFoundErrorH\x00\x42\x07\n\x05\x65rror\"C\n\x13\x43reateBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"$\n\x14\x43reateBundleResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"`\n\x1e\x43reateBundleFromRefListRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\"/\n\x1f\x43reateBundleFromRefListResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"H\n\x18GenerateBundleURIRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1b\n\x19GenerateBundleURIResponse\"@\n\x10GetConfigRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x11GetConfigResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x19RestoreCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"S\n\x15SetCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x1c\n\x1aRestoreCustomHooksResponse\"\x18\n\x16SetCustomHooksResponse\"H\n\x18\x42\x61\x63kupCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"E\n\x15GetCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x19\x42\x61\x63kupCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"&\n\x16GetCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"_\n!CreateRepositoryFromBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\n\"CreateRepositoryFromBundleResponse\"B\n\x12\x46indLicenseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x8c\x01\n\x13\x46indLicenseResponse\x12\x1a\n\x12license_short_name\x18\x01 \x01(\t\x12\x14\n\x0clicense_name\x18\x02 \x01(\t\x12\x13\n\x0blicense_url\x18\x03 \x01(\t\x12\x14\n\x0clicense_path\x18\x04 \x01(\t\x12\x18\n\x10license_nickname\x18\x05 \x01(\t\"H\n\x18GetInfoAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"/\n\x19GetInfoAttributesResponse\x12\x12\n\nattributes\x18\x01 \x01(\x0c\"H\n\x18\x43\x61lculateChecksumRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x19\x43\x61lculateChecksumResponse\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\"B\n\x12GetSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"#\n\x13GetSnapshotResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xa3\x01\n#CreateRepositoryFromSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08http_url\x18\x02 \x01(\t\x12\x11\n\thttp_auth\x18\x03 \x01(\t\x12\x18\n\x10resolved_address\x18\x05 \x01(\tJ\x04\x08\x04\x10\x05R\thttp_host\"&\n$CreateRepositoryFromSnapshotResponse\"p\n\x14GetRawChangesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rfrom_revision\x18\x02 \x01(\t\x12\x13\n\x0bto_revision\x18\x03 \x01(\t\"\xbc\x03\n\x15GetRawChangesResponse\x12<\n\x0braw_changes\x18\x01 \x03(\x0b\x32\'.gitaly.GetRawChangesResponse.RawChange\x1a\xe4\x02\n\tRawChange\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x44\n\toperation\x18\x05 \x01(\x0e\x32\x31.gitaly.GetRawChangesResponse.RawChange.Operation\x12\x10\n\x08old_mode\x18\x07 \x01(\x05\x12\x10\n\x08new_mode\x18\x08 \x01(\x05\x12\x16\n\x0enew_path_bytes\x18\t \x01(\x0c\x12\x16\n\x0eold_path_bytes\x18\n \x01(\x0c\"i\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x01\x12\n\n\x06\x43OPIED\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08MODIFIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\x12\x10\n\x0cTYPE_CHANGED\x10\x06J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07R\x08new_pathR\x08old_pathR\rraw_operation\"\x93\x01\n\x18SearchFilesByNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\"*\n\x19SearchFilesByNameResponse\x12\r\n\x05\x66iles\x18\x01 \x03(\x0c\"\x7f\n\x1bSearchFilesByContentRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0cJ\x04\x08\x04\x10\x05R\x10\x63hunked_response\"W\n\x1cSearchFilesByContentResponse\x12\x12\n\nmatch_data\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65nd_of_match\x18\x03 \x01(\x08J\x04\x08\x01\x10\x02R\x07matches\"\x87\x01\n\x06Remote\x12\x0b\n\x03url\x18\x01 \x01(\t\x12!\n\x19http_authorization_header\x18\x03 \x01(\t\x12\x16\n\x0emirror_refmaps\x18\x04 \x03(\t\x12\x18\n\x10resolved_address\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03J\x04\x08\x05\x10\x06R\x04nameR\thttp_host\"M\n\x1dGetObjectDirectorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\".\n\x1eGetObjectDirectorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"G\n\x17RemoveRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1a\n\x18RemoveRepositoryResponse\"n\n\x1aReplicateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\"\n\x06source\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x1d\n\x1bReplicateRepositoryResponse\"\xdb\x01\n\x19OptimizeRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12<\n\x08strategy\x18\x02 \x01(\x0e\x32*.gitaly.OptimizeRepositoryRequest.Strategy\"R\n\x08Strategy\x12\x18\n\x14STRATEGY_UNSPECIFIED\x10\x00\x12\x18\n\x14STRATEGY_HEURISTICAL\x10\x01\x12\x12\n\x0eSTRATEGY_EAGER\x10\x02\"\x1c\n\x1aOptimizeRepositoryResponse\"N\n\x1ePruneUnreachableObjectsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x1fPruneUnreachableObjectsResponse\"\x9e\x01\n\x17\x42\x61\x63kupRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11vanity_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x11\n\tbackup_id\x18\x03 \x01(\t\x12\x13\n\x0bincremental\x18\x04 \x01(\x08\"*\n\x18\x42\x61\x63kupRepositoryResponse\x1a\x0e\n\x0cSkippedError\"\xa1\x01\n\x18RestoreRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11vanity_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x11\n\tbackup_id\x18\x03 \x01(\t\x12\x15\n\ralways_create\x18\x04 \x01(\x08\"+\n\x19RestoreRepositoryResponse\x1a\x0e\n\x0cSkippedError\"}\n\x18GetFileAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x12\n\nattributes\x18\x03 \x03(\t\x12\r\n\x05paths\x18\x04 \x03(\t\"\xa6\x01\n\x19GetFileAttributesResponse\x12H\n\x0f\x61ttribute_infos\x18\x01 \x03(\x0b\x32/.gitaly.GetFileAttributesResponse.AttributeInfo\x1a?\n\rAttributeInfo\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\tattribute\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"A\n\x11\x46\x61stExportRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\"\n\x12\x46\x61stExportResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"N\n\x1e\x44ryRunReftableMigrationRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"J\n\x1f\x44ryRunReftableMigrationResponse\x12\'\n\x04time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration2\x83 \n\x11RepositoryService\x12]\n\x10RepositoryExists\x12\x1f.gitaly.RepositoryExistsRequest\x1a .gitaly.RepositoryExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12W\n\x0eRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12W\n\x0eRepositoryInfo\x12\x1d.gitaly.RepositoryInfoRequest\x1a\x1e.gitaly.RepositoryInfoResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0bObjectsSize\x12\x1a.gitaly.ObjectsSizeRequest\x1a\x1b.gitaly.ObjectsSizeResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x12Q\n\x0cObjectFormat\x12\x1b.gitaly.ObjectFormatRequest\x1a\x1c.gitaly.ObjectFormatResponse\"\x06\xfa\x97(\x02\x08\x02\x12N\n\x0b\x46\x65tchRemote\x12\x1a.gitaly.FetchRemoteRequest\x1a\x1b.gitaly.FetchRemoteResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10\x43reateRepository\x12\x1f.gitaly.CreateRepositoryRequest\x1a .gitaly.CreateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12M\n\nGetArchive\x12\x19.gitaly.GetArchiveRequest\x1a\x1a.gitaly.GetArchiveResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10HasLocalBranches\x12\x1f.gitaly.HasLocalBranchesRequest\x1a .gitaly.HasLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11\x46\x65tchSourceBranch\x12 .gitaly.FetchSourceBranchRequest\x1a!.gitaly.FetchSourceBranchResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x39\n\x04\x46sck\x12\x13.gitaly.FsckRequest\x1a\x14.gitaly.FsckResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x08WriteRef\x12\x17.gitaly.WriteRefRequest\x1a\x18.gitaly.WriteRefResponse\"\x06\xfa\x97(\x02\x08\x01\x12T\n\rFindMergeBase\x12\x1c.gitaly.FindMergeBaseRequest\x1a\x1d.gitaly.FindMergeBaseResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nCreateFork\x12\x19.gitaly.CreateForkRequest\x1a\x1a.gitaly.CreateForkResponse\"\x06\xfa\x97(\x02\x08\x01\x12r\n\x17\x43reateRepositoryFromURL\x12&.gitaly.CreateRepositoryFromURLRequest\x1a\'.gitaly.CreateRepositoryFromURLResponse\"\x06\xfa\x97(\x02\x08\x01\x12S\n\x0c\x43reateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12v\n\x17\x43reateBundleFromRefList\x12&.gitaly.CreateBundleFromRefListRequest\x1a\'.gitaly.CreateBundleFromRefListResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12`\n\x11GenerateBundleURI\x12 .gitaly.GenerateBundleURIRequest\x1a!.gitaly.GenerateBundleURIResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0b\x46\x65tchBundle\x12\x1a.gitaly.FetchBundleRequest\x1a\x1b.gitaly.FetchBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12}\n\x1a\x43reateRepositoryFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12J\n\tGetConfig\x12\x18.gitaly.GetConfigRequest\x1a\x19.gitaly.GetConfigResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12N\n\x0b\x46indLicense\x12\x1a.gitaly.FindLicenseRequest\x1a\x1b.gitaly.FindLicenseResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x65\n\x11GetInfoAttributes\x12 .gitaly.GetInfoAttributesRequest\x1a!.gitaly.GetInfoAttributesResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11\x43\x61lculateChecksum\x12 .gitaly.CalculateChecksumRequest\x1a!.gitaly.CalculateChecksumResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0bGetSnapshot\x12\x1a.gitaly.GetSnapshotRequest\x1a\x1b.gitaly.GetSnapshotResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x81\x01\n\x1c\x43reateRepositoryFromSnapshot\x12+.gitaly.CreateRepositoryFromSnapshotRequest\x1a,.gitaly.CreateRepositoryFromSnapshotResponse\"\x06\xfa\x97(\x02\x08\x01\x12V\n\rGetRawChanges\x12\x1c.gitaly.GetRawChangesRequest\x1a\x1d.gitaly.GetRawChangesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14SearchFilesByContent\x12#.gitaly.SearchFilesByContentRequest\x1a$.gitaly.SearchFilesByContentResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11SearchFilesByName\x12 .gitaly.SearchFilesByNameRequest\x1a!.gitaly.SearchFilesByNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12h\n\x12RestoreCustomHooks\x12!.gitaly.RestoreCustomHooksRequest\x1a\".gitaly.RestoreCustomHooksResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x01(\x01\x12Y\n\x0eSetCustomHooks\x12\x1d.gitaly.SetCustomHooksRequest\x1a\x1e.gitaly.SetCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12\x65\n\x11\x42\x61\x63kupCustomHooks\x12 .gitaly.BackupCustomHooksRequest\x1a!.gitaly.BackupCustomHooksResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetCustomHooks\x12\x1d.gitaly.GetCustomHooksRequest\x1a\x1e.gitaly.GetCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12o\n\x16GetObjectDirectorySize\x12%.gitaly.GetObjectDirectorySizeRequest\x1a&.gitaly.GetObjectDirectorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12]\n\x10RemoveRepository\x12\x1f.gitaly.RemoveRepositoryRequest\x1a .gitaly.RemoveRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x66\n\x13ReplicateRepository\x12\".gitaly.ReplicateRepositoryRequest\x1a#.gitaly.ReplicateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x63\n\x12OptimizeRepository\x12!.gitaly.OptimizeRepositoryRequest\x1a\".gitaly.OptimizeRepositoryResponse\"\x06\xfa\x97(\x02\x08\x03\x12r\n\x17PruneUnreachableObjects\x12&.gitaly.PruneUnreachableObjectsRequest\x1a\'.gitaly.PruneUnreachableObjectsResponse\"\x06\xfa\x97(\x02\x08\x03\x12]\n\x10\x42\x61\x63kupRepository\x12\x1f.gitaly.BackupRepositoryRequest\x1a .gitaly.BackupRepositoryResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11RestoreRepository\x12 .gitaly.RestoreRepositoryRequest\x1a!.gitaly.RestoreRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12`\n\x11GetFileAttributes\x12 .gitaly.GetFileAttributesRequest\x1a!.gitaly.GetFileAttributesResponse\"\x06\xfa\x97(\x02\x08\x02\x12M\n\nFastExport\x12\x19.gitaly.FastExportRequest\x1a\x1a.gitaly.FastExportResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12r\n\x17\x44ryRunReftableMigration\x12&.gitaly.DryRunReftableMigrationRequest\x1a\'.gitaly.DryRunReftableMigrationResponse\"\x06\xfa\x97(\x02\x08\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypbb\x06proto3')
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10repository.proto\x12\x06gitaly\x1a\x0c\x65rrors.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"G\n\x17RepositoryExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"*\n\x18RepositoryExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"E\n\x15RepositorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"&\n\x16RepositorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"E\n\x15RepositoryInfoRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x80\x0c\n\x16RepositoryInfoResponse\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x41\n\nreferences\x18\x02 \x01(\x0b\x32-.gitaly.RepositoryInfoResponse.ReferencesInfo\x12;\n\x07objects\x18\x03 \x01(\x0b\x32*.gitaly.RepositoryInfoResponse.ObjectsInfo\x12\x44\n\x0c\x63ommit_graph\x18\x04 \x01(\x0b\x32..gitaly.RepositoryInfoResponse.CommitGraphInfo\x12\x39\n\x06\x62itmap\x18\x05 \x01(\x0b\x32).gitaly.RepositoryInfoResponse.BitmapInfo\x12K\n\x10multi_pack_index\x18\x06 \x01(\x0b\x32\x31.gitaly.RepositoryInfoResponse.MultiPackIndexInfo\x12J\n\x17multi_pack_index_bitmap\x18\x07 \x01(\x0b\x32).gitaly.RepositoryInfoResponse.BitmapInfo\x12\x41\n\nalternates\x18\x08 \x01(\x0b\x32-.gitaly.RepositoryInfoResponse.AlternatesInfo\x12\x16\n\x0eis_object_pool\x18\t \x01(\x08\x12\x34\n\x10last_full_repack\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x89\x02\n\x0eReferencesInfo\x12\x13\n\x0bloose_count\x18\x01 \x01(\x04\x12\x13\n\x0bpacked_size\x18\x02 \x01(\x04\x12Y\n\x11reference_backend\x18\x03 \x01(\x0e\x32>.gitaly.RepositoryInfoResponse.ReferencesInfo.ReferenceBackend\"r\n\x10ReferenceBackend\x12!\n\x1dREFERENCE_BACKEND_UNSPECIFIED\x10\x00\x12\x1b\n\x17REFERENCE_BACKEND_FILES\x10\x01\x12\x1e\n\x1aREFERENCE_BACKEND_REFTABLE\x10\x02\x1a\x9a\x02\n\x0bObjectsInfo\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x13\n\x0brecent_size\x18\x02 \x01(\x04\x12\x12\n\nstale_size\x18\x03 \x01(\x04\x12\x11\n\tkeep_size\x18\x04 \x01(\x04\x12\x16\n\x0epackfile_count\x18\x05 \x01(\x04\x12\x1b\n\x13reverse_index_count\x18\x06 \x01(\x04\x12\x13\n\x0b\x63ruft_count\x18\x07 \x01(\x04\x12\x12\n\nkeep_count\x18\x08 \x01(\x04\x12\x1b\n\x13loose_objects_count\x18\t \x01(\x04\x12!\n\x19stale_loose_objects_count\x18\n \x01(\x04\x12#\n\x1bloose_objects_garbage_count\x18\x0b \x01(\x04\x1a\x92\x01\n\x0f\x43ommitGraphInfo\x12!\n\x19\x63ommit_graph_chain_length\x18\x01 \x01(\x04\x12\x19\n\x11has_bloom_filters\x18\x02 \x01(\x08\x12\x1b\n\x13has_generation_data\x18\x03 \x01(\x08\x12$\n\x1chas_generation_data_overflow\x18\x05 \x01(\x08\x1aO\n\nBitmapInfo\x12\x16\n\x0ehas_hash_cache\x18\x01 \x01(\x08\x12\x18\n\x10has_lookup_table\x18\x02 \x01(\x08\x12\x0f\n\x07version\x18\x03 \x01(\x04\x1a=\n\x12MultiPackIndexInfo\x12\x16\n\x0epackfile_count\x18\x01 \x01(\x04\x12\x0f\n\x07version\x18\x02 \x01(\x04\x1a_\n\x0e\x41lternatesInfo\x12\x1a\n\x12object_directories\x18\x01 \x03(\t\x12\x31\n\rlast_modified\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"U\n\x12ObjectsSizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"#\n\x13ObjectsSizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x04\"C\n\x13ObjectFormatRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"<\n\x14ObjectFormatResponse\x12$\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x14.gitaly.ObjectFormat\"e\n\x12\x46\x65tchBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x13\n\x0bupdate_head\x18\x03 \x01(\x08\"\x15\n\x13\x46\x65tchBundleResponse\"\x82\x02\n\x12\x46\x65tchRemoteRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x12\x0f\n\x07no_tags\x18\x04 \x01(\x08\x12\x0f\n\x07timeout\x18\x05 \x01(\x05\x12\x0f\n\x07ssh_key\x18\x06 \x01(\t\x12\x13\n\x0bknown_hosts\x18\x07 \x01(\t\x12\x10\n\x08no_prune\x18\t \x01(\x08\x12%\n\rremote_params\x18\n \x01(\x0b\x32\x0e.gitaly.Remote\x12\x1a\n\x12\x63heck_tags_changed\x18\x0b \x01(\x08J\x04\x08\x08\x10\tJ\x04\x08\x02\x10\x03R\x06remote\"A\n\x13\x46\x65tchRemoteResponse\x12\x14\n\x0ctags_changed\x18\x01 \x01(\x08\x12\x14\n\x0crepo_changed\x18\x02 \x01(\x08\"\x8c\x01\n\x17\x43reateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x02 \x01(\x0c\x12+\n\robject_format\x18\x03 \x01(\x0e\x32\x14.gitaly.ObjectFormat\"\x1a\n\x18\x43reateRepositoryResponse\"\x99\x02\n\x11GetArchiveRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x0e\n\x06prefix\x18\x03 \x01(\t\x12\x30\n\x06\x66ormat\x18\x04 \x01(\x0e\x32 .gitaly.GetArchiveRequest.Format\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x0f\n\x07\x65xclude\x18\x06 \x03(\x0c\x12\x12\n\nelide_path\x18\x07 \x01(\x08\x12\x19\n\x11include_lfs_blobs\x18\x08 \x01(\x08\"3\n\x06\x46ormat\x12\x07\n\x03ZIP\x10\x00\x12\x07\n\x03TAR\x10\x01\x12\n\n\x06TAR_GZ\x10\x02\x12\x0b\n\x07TAR_BZ2\x10\x03\"\"\n\x12GetArchiveResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"G\n\x17HasLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x18HasLocalBranchesResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\xc3\x01\n\x18\x46\x65tchSourceBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x15\n\rsource_branch\x18\x03 \x01(\x0c\x12\x12\n\ntarget_ref\x18\x04 \x01(\x0c\x12\x1f\n\x17\x65xpected_target_old_oid\x18\x05 \x01(\t\"+\n\x19\x46\x65tchSourceBranchResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\";\n\x0b\x46sckRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1d\n\x0c\x46sckResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\x0c\"\x87\x01\n\x0fWriteRefRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x0c\x12\x14\n\x0cold_revision\x18\x04 \x01(\x0cJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x05\x66orce\"\x18\n\x10WriteRefResponseJ\x04\x08\x01\x10\x02\"W\n\x14\x46indMergeBaseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"%\n\x15\x46indMergeBaseResponse\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\"\x82\x01\n\x11\x43reateForkRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x10\n\x08revision\x18\x03 \x01(\x0c\"\x14\n\x12\x43reateForkResponse\"\xb9\x01\n\x1e\x43reateRepositoryFromURLRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03url\x18\x02 \x01(\t\x12!\n\x19http_authorization_header\x18\x04 \x01(\t\x12\x0e\n\x06mirror\x18\x05 \x01(\x08\x12\x18\n\x10resolved_address\x18\x06 \x01(\tJ\x04\x08\x03\x10\x04R\thttp_host\"!\n\x1f\x43reateRepositoryFromURLResponse\"`\n\x1c\x43reateRepositoryFromURLError\x12\x37\n\x10remote_not_found\x18\x01 \x01(\x0b\x32\x1b.gitaly.RemoteNotFoundErrorH\x00\x42\x07\n\x05\x65rror\"C\n\x13\x43reateBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"$\n\x14\x43reateBundleResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"`\n\x1e\x43reateBundleFromRefListRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\"/\n\x1f\x43reateBundleFromRefListResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"H\n\x18GenerateBundleURIRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1b\n\x19GenerateBundleURIResponse\"@\n\x10GetConfigRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x11GetConfigResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x19RestoreCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"S\n\x15SetCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x1c\n\x1aRestoreCustomHooksResponse\"\x18\n\x16SetCustomHooksResponse\"H\n\x18\x42\x61\x63kupCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"E\n\x15GetCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x19\x42\x61\x63kupCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"&\n\x16GetCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"_\n!CreateRepositoryFromBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\n\"CreateRepositoryFromBundleResponse\"B\n\x12\x46indLicenseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x8c\x01\n\x13\x46indLicenseResponse\x12\x1a\n\x12license_short_name\x18\x01 \x01(\t\x12\x14\n\x0clicense_name\x18\x02 \x01(\t\x12\x13\n\x0blicense_url\x18\x03 \x01(\t\x12\x14\n\x0clicense_path\x18\x04 \x01(\t\x12\x18\n\x10license_nickname\x18\x05 \x01(\t\"H\n\x18GetInfoAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"/\n\x19GetInfoAttributesResponse\x12\x12\n\nattributes\x18\x01 \x01(\x0c\"H\n\x18\x43\x61lculateChecksumRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x19\x43\x61lculateChecksumResponse\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\"B\n\x12GetSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"#\n\x13GetSnapshotResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xa3\x01\n#CreateRepositoryFromSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08http_url\x18\x02 \x01(\t\x12\x11\n\thttp_auth\x18\x03 \x01(\t\x12\x18\n\x10resolved_address\x18\x05 \x01(\tJ\x04\x08\x04\x10\x05R\thttp_host\"&\n$CreateRepositoryFromSnapshotResponse\"p\n\x14GetRawChangesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rfrom_revision\x18\x02 \x01(\t\x12\x13\n\x0bto_revision\x18\x03 \x01(\t\"\xbc\x03\n\x15GetRawChangesResponse\x12<\n\x0braw_changes\x18\x01 \x03(\x0b\x32\'.gitaly.GetRawChangesResponse.RawChange\x1a\xe4\x02\n\tRawChange\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x44\n\toperation\x18\x05 \x01(\x0e\x32\x31.gitaly.GetRawChangesResponse.RawChange.Operation\x12\x10\n\x08old_mode\x18\x07 \x01(\x05\x12\x10\n\x08new_mode\x18\x08 \x01(\x05\x12\x16\n\x0enew_path_bytes\x18\t \x01(\x0c\x12\x16\n\x0eold_path_bytes\x18\n \x01(\x0c\"i\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x01\x12\n\n\x06\x43OPIED\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08MODIFIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\x12\x10\n\x0cTYPE_CHANGED\x10\x06J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07R\x08new_pathR\x08old_pathR\rraw_operation\"\x93\x01\n\x18SearchFilesByNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\"*\n\x19SearchFilesByNameResponse\x12\r\n\x05\x66iles\x18\x01 \x03(\x0c\"\x7f\n\x1bSearchFilesByContentRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0cJ\x04\x08\x04\x10\x05R\x10\x63hunked_response\"W\n\x1cSearchFilesByContentResponse\x12\x12\n\nmatch_data\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65nd_of_match\x18\x03 \x01(\x08J\x04\x08\x01\x10\x02R\x07matches\"\x87\x01\n\x06Remote\x12\x0b\n\x03url\x18\x01 \x01(\t\x12!\n\x19http_authorization_header\x18\x03 \x01(\t\x12\x16\n\x0emirror_refmaps\x18\x04 \x03(\t\x12\x18\n\x10resolved_address\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03J\x04\x08\x05\x10\x06R\x04nameR\thttp_host\"M\n\x1dGetObjectDirectorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\".\n\x1eGetObjectDirectorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"G\n\x17RemoveRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1a\n\x18RemoveRepositoryResponse\"n\n\x1aReplicateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\"\n\x06source\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x1d\n\x1bReplicateRepositoryResponse\"\xf4\x01\n\x19OptimizeRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12<\n\x08strategy\x18\x02 \x01(\x0e\x32*.gitaly.OptimizeRepositoryRequest.Strategy\"k\n\x08Strategy\x12\x18\n\x14STRATEGY_UNSPECIFIED\x10\x00\x12\x18\n\x14STRATEGY_HEURISTICAL\x10\x01\x12\x12\n\x0eSTRATEGY_EAGER\x10\x02\x12\x17\n\x13STRATEGY_OFFLOADING\x10\x03\"\x1c\n\x1aOptimizeRepositoryResponse\"N\n\x1ePruneUnreachableObjectsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x1fPruneUnreachableObjectsResponse\"\x9e\x01\n\x17\x42\x61\x63kupRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11vanity_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x11\n\tbackup_id\x18\x03 \x01(\t\x12\x13\n\x0bincremental\x18\x04 \x01(\x08\"*\n\x18\x42\x61\x63kupRepositoryResponse\x1a\x0e\n\x0cSkippedError\"\xa1\x01\n\x18RestoreRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11vanity_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x11\n\tbackup_id\x18\x03 \x01(\t\x12\x15\n\ralways_create\x18\x04 \x01(\x08\"+\n\x19RestoreRepositoryResponse\x1a\x0e\n\x0cSkippedError\"}\n\x18GetFileAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x12\n\nattributes\x18\x03 \x03(\t\x12\r\n\x05paths\x18\x04 \x03(\t\"\xa6\x01\n\x19GetFileAttributesResponse\x12H\n\x0f\x61ttribute_infos\x18\x01 \x03(\x0b\x32/.gitaly.GetFileAttributesResponse.AttributeInfo\x1a?\n\rAttributeInfo\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\tattribute\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"A\n\x11\x46\x61stExportRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\"\n\x12\x46\x61stExportResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"N\n\x1e\x44ryRunReftableMigrationRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"J\n\x1f\x44ryRunReftableMigrationResponse\x12\'\n\x04time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration2\x83 \n\x11RepositoryService\x12]\n\x10RepositoryExists\x12\x1f.gitaly.RepositoryExistsRequest\x1a .gitaly.RepositoryExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12W\n\x0eRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12W\n\x0eRepositoryInfo\x12\x1d.gitaly.RepositoryInfoRequest\x1a\x1e.gitaly.RepositoryInfoResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0bObjectsSize\x12\x1a.gitaly.ObjectsSizeRequest\x1a\x1b.gitaly.ObjectsSizeResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x12Q\n\x0cObjectFormat\x12\x1b.gitaly.ObjectFormatRequest\x1a\x1c.gitaly.ObjectFormatResponse\"\x06\xfa\x97(\x02\x08\x02\x12N\n\x0b\x46\x65tchRemote\x12\x1a.gitaly.FetchRemoteRequest\x1a\x1b.gitaly.FetchRemoteResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10\x43reateRepository\x12\x1f.gitaly.CreateRepositoryRequest\x1a .gitaly.CreateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12M\n\nGetArchive\x12\x19.gitaly.GetArchiveRequest\x1a\x1a.gitaly.GetArchiveResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10HasLocalBranches\x12\x1f.gitaly.HasLocalBranchesRequest\x1a .gitaly.HasLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11\x46\x65tchSourceBranch\x12 .gitaly.FetchSourceBranchRequest\x1a!.gitaly.FetchSourceBranchResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x39\n\x04\x46sck\x12\x13.gitaly.FsckRequest\x1a\x14.gitaly.FsckResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x08WriteRef\x12\x17.gitaly.WriteRefRequest\x1a\x18.gitaly.WriteRefResponse\"\x06\xfa\x97(\x02\x08\x01\x12T\n\rFindMergeBase\x12\x1c.gitaly.FindMergeBaseRequest\x1a\x1d.gitaly.FindMergeBaseResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nCreateFork\x12\x19.gitaly.CreateForkRequest\x1a\x1a.gitaly.CreateForkResponse\"\x06\xfa\x97(\x02\x08\x01\x12r\n\x17\x43reateRepositoryFromURL\x12&.gitaly.CreateRepositoryFromURLRequest\x1a\'.gitaly.CreateRepositoryFromURLResponse\"\x06\xfa\x97(\x02\x08\x01\x12S\n\x0c\x43reateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12v\n\x17\x43reateBundleFromRefList\x12&.gitaly.CreateBundleFromRefListRequest\x1a\'.gitaly.CreateBundleFromRefListResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12`\n\x11GenerateBundleURI\x12 .gitaly.GenerateBundleURIRequest\x1a!.gitaly.GenerateBundleURIResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0b\x46\x65tchBundle\x12\x1a.gitaly.FetchBundleRequest\x1a\x1b.gitaly.FetchBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12}\n\x1a\x43reateRepositoryFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12J\n\tGetConfig\x12\x18.gitaly.GetConfigRequest\x1a\x19.gitaly.GetConfigResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12N\n\x0b\x46indLicense\x12\x1a.gitaly.FindLicenseRequest\x1a\x1b.gitaly.FindLicenseResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x65\n\x11GetInfoAttributes\x12 .gitaly.GetInfoAttributesRequest\x1a!.gitaly.GetInfoAttributesResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11\x43\x61lculateChecksum\x12 .gitaly.CalculateChecksumRequest\x1a!.gitaly.CalculateChecksumResponse\"\x06\xfa\x97(\x02\x08\x02\x12P\n\x0bGetSnapshot\x12\x1a.gitaly.GetSnapshotRequest\x1a\x1b.gitaly.GetSnapshotResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x81\x01\n\x1c\x43reateRepositoryFromSnapshot\x12+.gitaly.CreateRepositoryFromSnapshotRequest\x1a,.gitaly.CreateRepositoryFromSnapshotResponse\"\x06\xfa\x97(\x02\x08\x01\x12V\n\rGetRawChanges\x12\x1c.gitaly.GetRawChangesRequest\x1a\x1d.gitaly.GetRawChangesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14SearchFilesByContent\x12#.gitaly.SearchFilesByContentRequest\x1a$.gitaly.SearchFilesByContentResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11SearchFilesByName\x12 .gitaly.SearchFilesByNameRequest\x1a!.gitaly.SearchFilesByNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12h\n\x12RestoreCustomHooks\x12!.gitaly.RestoreCustomHooksRequest\x1a\".gitaly.RestoreCustomHooksResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x01(\x01\x12Y\n\x0eSetCustomHooks\x12\x1d.gitaly.SetCustomHooksRequest\x1a\x1e.gitaly.SetCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12\x65\n\x11\x42\x61\x63kupCustomHooks\x12 .gitaly.BackupCustomHooksRequest\x1a!.gitaly.BackupCustomHooksResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetCustomHooks\x12\x1d.gitaly.GetCustomHooksRequest\x1a\x1e.gitaly.GetCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12o\n\x16GetObjectDirectorySize\x12%.gitaly.GetObjectDirectorySizeRequest\x1a&.gitaly.GetObjectDirectorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12]\n\x10RemoveRepository\x12\x1f.gitaly.RemoveRepositoryRequest\x1a .gitaly.RemoveRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x66\n\x13ReplicateRepository\x12\".gitaly.ReplicateRepositoryRequest\x1a#.gitaly.ReplicateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x63\n\x12OptimizeRepository\x12!.gitaly.OptimizeRepositoryRequest\x1a\".gitaly.OptimizeRepositoryResponse\"\x06\xfa\x97(\x02\x08\x03\x12r\n\x17PruneUnreachableObjects\x12&.gitaly.PruneUnreachableObjectsRequest\x1a\'.gitaly.PruneUnreachableObjectsResponse\"\x06\xfa\x97(\x02\x08\x03\x12]\n\x10\x42\x61\x63kupRepository\x12\x1f.gitaly.BackupRepositoryRequest\x1a .gitaly.BackupRepositoryResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11RestoreRepository\x12 .gitaly.RestoreRepositoryRequest\x1a!.gitaly.RestoreRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12`\n\x11GetFileAttributes\x12 .gitaly.GetFileAttributesRequest\x1a!.gitaly.GetFileAttributesResponse\"\x06\xfa\x97(\x02\x08\x02\x12M\n\nFastExport\x12\x19.gitaly.FastExportRequest\x1a\x1a.gitaly.FastExportResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12r\n\x17\x44ryRunReftableMigration\x12&.gitaly.DryRunReftableMigrationRequest\x1a\'.gitaly.DryRunReftableMigrationResponse\"\x06\xfa\x97(\x02\x08\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypbb\x06proto3')
23
23
 
24
24
  _globals = globals()
25
25
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -368,41 +368,41 @@ if not _descriptor._USE_C_DESCRIPTORS:
368
368
  _globals['_REPLICATEREPOSITORYRESPONSE']._serialized_start=7658
369
369
  _globals['_REPLICATEREPOSITORYRESPONSE']._serialized_end=7687
370
370
  _globals['_OPTIMIZEREPOSITORYREQUEST']._serialized_start=7690
371
- _globals['_OPTIMIZEREPOSITORYREQUEST']._serialized_end=7909
371
+ _globals['_OPTIMIZEREPOSITORYREQUEST']._serialized_end=7934
372
372
  _globals['_OPTIMIZEREPOSITORYREQUEST_STRATEGY']._serialized_start=7827
373
- _globals['_OPTIMIZEREPOSITORYREQUEST_STRATEGY']._serialized_end=7909
374
- _globals['_OPTIMIZEREPOSITORYRESPONSE']._serialized_start=7911
375
- _globals['_OPTIMIZEREPOSITORYRESPONSE']._serialized_end=7939
376
- _globals['_PRUNEUNREACHABLEOBJECTSREQUEST']._serialized_start=7941
377
- _globals['_PRUNEUNREACHABLEOBJECTSREQUEST']._serialized_end=8019
378
- _globals['_PRUNEUNREACHABLEOBJECTSRESPONSE']._serialized_start=8021
379
- _globals['_PRUNEUNREACHABLEOBJECTSRESPONSE']._serialized_end=8054
380
- _globals['_BACKUPREPOSITORYREQUEST']._serialized_start=8057
381
- _globals['_BACKUPREPOSITORYREQUEST']._serialized_end=8215
382
- _globals['_BACKUPREPOSITORYRESPONSE']._serialized_start=8217
383
- _globals['_BACKUPREPOSITORYRESPONSE']._serialized_end=8259
384
- _globals['_BACKUPREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_start=8245
385
- _globals['_BACKUPREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_end=8259
386
- _globals['_RESTOREREPOSITORYREQUEST']._serialized_start=8262
387
- _globals['_RESTOREREPOSITORYREQUEST']._serialized_end=8423
388
- _globals['_RESTOREREPOSITORYRESPONSE']._serialized_start=8425
389
- _globals['_RESTOREREPOSITORYRESPONSE']._serialized_end=8468
390
- _globals['_RESTOREREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_start=8245
391
- _globals['_RESTOREREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_end=8259
392
- _globals['_GETFILEATTRIBUTESREQUEST']._serialized_start=8470
393
- _globals['_GETFILEATTRIBUTESREQUEST']._serialized_end=8595
394
- _globals['_GETFILEATTRIBUTESRESPONSE']._serialized_start=8598
395
- _globals['_GETFILEATTRIBUTESRESPONSE']._serialized_end=8764
396
- _globals['_GETFILEATTRIBUTESRESPONSE_ATTRIBUTEINFO']._serialized_start=8701
397
- _globals['_GETFILEATTRIBUTESRESPONSE_ATTRIBUTEINFO']._serialized_end=8764
398
- _globals['_FASTEXPORTREQUEST']._serialized_start=8766
399
- _globals['_FASTEXPORTREQUEST']._serialized_end=8831
400
- _globals['_FASTEXPORTRESPONSE']._serialized_start=8833
401
- _globals['_FASTEXPORTRESPONSE']._serialized_end=8867
402
- _globals['_DRYRUNREFTABLEMIGRATIONREQUEST']._serialized_start=8869
403
- _globals['_DRYRUNREFTABLEMIGRATIONREQUEST']._serialized_end=8947
404
- _globals['_DRYRUNREFTABLEMIGRATIONRESPONSE']._serialized_start=8949
405
- _globals['_DRYRUNREFTABLEMIGRATIONRESPONSE']._serialized_end=9023
406
- _globals['_REPOSITORYSERVICE']._serialized_start=9026
407
- _globals['_REPOSITORYSERVICE']._serialized_end=13125
373
+ _globals['_OPTIMIZEREPOSITORYREQUEST_STRATEGY']._serialized_end=7934
374
+ _globals['_OPTIMIZEREPOSITORYRESPONSE']._serialized_start=7936
375
+ _globals['_OPTIMIZEREPOSITORYRESPONSE']._serialized_end=7964
376
+ _globals['_PRUNEUNREACHABLEOBJECTSREQUEST']._serialized_start=7966
377
+ _globals['_PRUNEUNREACHABLEOBJECTSREQUEST']._serialized_end=8044
378
+ _globals['_PRUNEUNREACHABLEOBJECTSRESPONSE']._serialized_start=8046
379
+ _globals['_PRUNEUNREACHABLEOBJECTSRESPONSE']._serialized_end=8079
380
+ _globals['_BACKUPREPOSITORYREQUEST']._serialized_start=8082
381
+ _globals['_BACKUPREPOSITORYREQUEST']._serialized_end=8240
382
+ _globals['_BACKUPREPOSITORYRESPONSE']._serialized_start=8242
383
+ _globals['_BACKUPREPOSITORYRESPONSE']._serialized_end=8284
384
+ _globals['_BACKUPREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_start=8270
385
+ _globals['_BACKUPREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_end=8284
386
+ _globals['_RESTOREREPOSITORYREQUEST']._serialized_start=8287
387
+ _globals['_RESTOREREPOSITORYREQUEST']._serialized_end=8448
388
+ _globals['_RESTOREREPOSITORYRESPONSE']._serialized_start=8450
389
+ _globals['_RESTOREREPOSITORYRESPONSE']._serialized_end=8493
390
+ _globals['_RESTOREREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_start=8270
391
+ _globals['_RESTOREREPOSITORYRESPONSE_SKIPPEDERROR']._serialized_end=8284
392
+ _globals['_GETFILEATTRIBUTESREQUEST']._serialized_start=8495
393
+ _globals['_GETFILEATTRIBUTESREQUEST']._serialized_end=8620
394
+ _globals['_GETFILEATTRIBUTESRESPONSE']._serialized_start=8623
395
+ _globals['_GETFILEATTRIBUTESRESPONSE']._serialized_end=8789
396
+ _globals['_GETFILEATTRIBUTESRESPONSE_ATTRIBUTEINFO']._serialized_start=8726
397
+ _globals['_GETFILEATTRIBUTESRESPONSE_ATTRIBUTEINFO']._serialized_end=8789
398
+ _globals['_FASTEXPORTREQUEST']._serialized_start=8791
399
+ _globals['_FASTEXPORTREQUEST']._serialized_end=8856
400
+ _globals['_FASTEXPORTRESPONSE']._serialized_start=8858
401
+ _globals['_FASTEXPORTRESPONSE']._serialized_end=8892
402
+ _globals['_DRYRUNREFTABLEMIGRATIONREQUEST']._serialized_start=8894
403
+ _globals['_DRYRUNREFTABLEMIGRATIONREQUEST']._serialized_end=8972
404
+ _globals['_DRYRUNREFTABLEMIGRATIONRESPONSE']._serialized_start=8974
405
+ _globals['_DRYRUNREFTABLEMIGRATIONRESPONSE']._serialized_end=9048
406
+ _globals['_REPOSITORYSERVICE']._serialized_start=9051
407
+ _globals['_REPOSITORYSERVICE']._serialized_end=13150
408
408
  # @@protoc_insertion_point(module_scope)
@@ -9,6 +9,7 @@ from pathlib import Path
9
9
  import sys
10
10
 
11
11
 
12
+ # TODO move up to hgitaly.testing
12
13
  def hg_exe_path(): # pragma no cover
13
14
  """Return a Mercurial executable path consistent with these tests.
14
15
 
@@ -28,6 +28,7 @@ from ..testing.context import (
28
28
  FakeServicerContext,
29
29
  metadatum,
30
30
  )
31
+ from ..testing.storage import GIT_REPOS_STOWED_AWAY_PATH
31
32
  from ..servicer import (
32
33
  HG_GIT_MIRRORING_MD_KEY,
33
34
  NATIVE_PROJECT_MD_KEY,
@@ -107,6 +108,23 @@ def test_load_repo(tmpdir):
107
108
  assert context.code == grpc.StatusCode.NOT_FOUND
108
109
 
109
110
 
111
+ def test_is_repo_aux_git(tmpdir):
112
+ storage_root = tmpdir.join('repos')
113
+ storage_root_bytes = pycompat.sysbytes(str(storage_root))
114
+ servicer = HGitalyServicer(dict(storname=storage_root_bytes))
115
+
116
+ assert not servicer.is_repo_aux_git(None)
117
+ assert not servicer.is_repo_aux_git(
118
+ Repository(storage_name='storname',
119
+ relative_path='some/repo.git')
120
+ )
121
+ assert servicer.is_repo_aux_git(
122
+ Repository(
123
+ storage_name='storname',
124
+ relative_path=str(GIT_REPOS_STOWED_AWAY_PATH / 'repo.git'))
125
+ )
126
+
127
+
110
128
  def test_load_repo_for_mutation(tmpdir):
111
129
  storage_root = tmpdir.join('repos')
112
130
  storage_root_bytes = pycompat.sysbytes(str(storage_root))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hgitaly
3
- Version: 17.11.1
3
+ Version: 18.0.0
4
4
  Summary: Server-side implementation of Gitaly protocol for Mercurial
5
5
  Home-page: https://foss.heptapod.net/heptapod/hgitaly
6
6
  Author: Georges Racinet
@@ -81,9 +81,13 @@ def test_compare_find_branch(gitaly_comparison):
81
81
  same_details=False)
82
82
 
83
83
 
84
- def test_update_references(gitaly_comparison, server_repos_root):
85
- fixture = gitaly_comparison
84
+ @parametrize('hg_server', ('hgitaly', 'rhgitaly'))
85
+ def test_update_references(gitaly_rhgitaly_comparison,
86
+ server_repos_root,
87
+ hg_server):
88
+ fixture = gitaly_rhgitaly_comparison
86
89
  rpc_helper = fixture.rpc_helper(
90
+ hg_server=hg_server,
87
91
  stub_cls=RefServiceStub,
88
92
  method_name='UpdateReferences',
89
93
  streaming_request_field='updates',
@@ -1,9 +1,13 @@
1
+ import subprocess
2
+
1
3
  from heptapod.testhelpers.git import GitRepo
2
4
 
3
5
  from hgitaly.stub.remote_pb2 import (
6
+ FindRemoteRepositoryRequest,
4
7
  UpdateRemoteMirrorRequest,
5
8
  )
6
9
  from hgitaly.stub.remote_pb2_grpc import RemoteServiceStub
10
+ from hgitaly.testing.ssh import hg_exe_path
7
11
  from hgitaly.testing.sshd import hg_ssh_setup
8
12
 
9
13
  import pytest
@@ -123,3 +127,36 @@ def test_update_remote_mirror_branch_matching(push_mirror_fixture, tmpdir):
123
127
  wrapper.set_phase('public', ['sampletop'])
124
128
  wrapper.command('hpd-export-native-to-git')
125
129
  rpc_helper.assert_compare_target_repos()
130
+
131
+
132
+ def test_find_remote_repository(gitaly_rhgitaly_comparison):
133
+ fixture = gitaly_rhgitaly_comparison
134
+ wrapper = fixture.hg_repo_wrapper
135
+ rpc_helper = fixture.rpc_helper(
136
+ stub_cls=RemoteServiceStub,
137
+ repository_arg=False,
138
+ hg_server='rhgitaly',
139
+ request_cls=FindRemoteRepositoryRequest,
140
+ method_name="FindRemoteRepository",
141
+ )
142
+
143
+ def remote_exists(url):
144
+ return rpc_helper.rpc('hg', remote=url)
145
+
146
+ rpc_helper.assert_compare(remote='http://unknown.test')
147
+
148
+ hg_server = subprocess.Popen((hg_exe_path(), 'serve', '-p', '0'),
149
+ cwd=wrapper.path,
150
+ stdout=subprocess.PIPE)
151
+ try:
152
+ startup_line = hg_server.stdout.readline()
153
+ for token in startup_line.split():
154
+ if token.startswith(b'http://'):
155
+ repo_url = token.decode('utf-8')
156
+ assert remote_exists(repo_url)
157
+ break
158
+ else: # pragma no cover
159
+ raise RuntimeError("Could not parse URL from hg serve line")
160
+ finally:
161
+ hg_server.kill()
162
+ hg_server.wait()