hgitaly 18.0.0a0__tar.gz → 18.0.1__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 (315) hide show
  1. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/PKG-INFO +58 -9
  2. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/README.md +57 -8
  3. hgitaly-18.0.1/hgitaly/VERSION +1 -0
  4. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/license_detector/__init__.py +1 -1
  5. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/scripts.py +2 -0
  6. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/commit.py +20 -1
  7. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/repository.py +11 -4
  8. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_commit.py +29 -3
  9. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_repository_service.py +22 -0
  10. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/servicer.py +7 -1
  11. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/diff_pb2.py +36 -36
  12. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_aux_git_pb2.py +3 -4
  13. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/repository_pb2.py +37 -37
  14. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_servicer.py +18 -0
  15. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/PKG-INFO +58 -9
  16. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/SOURCES.txt +0 -139
  17. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_commit.py +82 -5
  18. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_repository_service.py +52 -8
  19. hgitaly-18.0.0a0/.coveragerc +0 -5
  20. hgitaly-18.0.0a0/.gitlab-ci.yml +0 -154
  21. hgitaly-18.0.0a0/.hgignore +0 -34
  22. hgitaly-18.0.0a0/.hgtags +0 -145
  23. hgitaly-18.0.0a0/ci/heptapod-sftp-push +0 -31
  24. hgitaly-18.0.0a0/ci/heptapod-sign-package +0 -34
  25. hgitaly-18.0.0a0/ci/heptapod_known_hosts.ssh +0 -4
  26. hgitaly-18.0.0a0/ci/upload-rhgitaly +0 -43
  27. hgitaly-18.0.0a0/conftest.py +0 -92
  28. hgitaly-18.0.0a0/dev-requirements.txt +0 -2
  29. hgitaly-18.0.0a0/examples/client.py +0 -48
  30. hgitaly-18.0.0a0/examples/client_list_lcft.py +0 -55
  31. hgitaly-18.0.0a0/generate-stubs +0 -34
  32. hgitaly-18.0.0a0/hgitaly/VERSION +0 -1
  33. hgitaly-18.0.0a0/hgitaly/license_detector/GPL-2.sample +0 -339
  34. hgitaly-18.0.0a0/hgitaly/testing/data/authorized_keys +0 -1
  35. hgitaly-18.0.0a0/hgitaly/testing/data/backup_additional_no_git.tar +0 -0
  36. hgitaly-18.0.0a0/hgitaly/testing/data/id_ecdsa_user +0 -38
  37. hgitaly-18.0.0a0/hgitaly/testing/data/known_hosts +0 -2
  38. hgitaly-18.0.0a0/hgitaly/testing/data/ssh_host_ecdsa_key +0 -9
  39. hgitaly-18.0.0a0/hgitaly/testing/data/ssh_host_ecdsa_key.pub +0 -1
  40. hgitaly-18.0.0a0/hgitaly/testing/data/ssh_host_ed25519 +0 -8
  41. hgitaly-18.0.0a0/hgitaly/testing/data/ssh_host_ed25519.pub +0 -1
  42. hgitaly-18.0.0a0/hgitaly/testing/data/sshd_config +0 -17
  43. hgitaly-18.0.0a0/lint +0 -7
  44. hgitaly-18.0.0a0/protos/analysis.proto +0 -62
  45. hgitaly-18.0.0a0/protos/blob.proto +0 -299
  46. hgitaly-18.0.0a0/protos/cleanup.proto +0 -88
  47. hgitaly-18.0.0a0/protos/cluster.proto +0 -126
  48. hgitaly-18.0.0a0/protos/commit.proto +0 -985
  49. hgitaly-18.0.0a0/protos/conflicts.proto +0 -137
  50. hgitaly-18.0.0a0/protos/diff.proto +0 -622
  51. hgitaly-18.0.0a0/protos/errors.proto +0 -228
  52. hgitaly-18.0.0a0/protos/hook.proto +0 -205
  53. hgitaly-18.0.0a0/protos/internal.proto +0 -37
  54. hgitaly-18.0.0a0/protos/lint.proto +0 -75
  55. hgitaly-18.0.0a0/protos/log.proto +0 -134
  56. hgitaly-18.0.0a0/protos/mercurial-aux-git.proto +0 -33
  57. hgitaly-18.0.0a0/protos/mercurial-changeset.proto +0 -96
  58. hgitaly-18.0.0a0/protos/mercurial-operations.proto +0 -230
  59. hgitaly-18.0.0a0/protos/mercurial-repository.proto +0 -364
  60. hgitaly-18.0.0a0/protos/namespace.proto +0 -98
  61. hgitaly-18.0.0a0/protos/objectpool.proto +0 -173
  62. hgitaly-18.0.0a0/protos/operations.proto +0 -1139
  63. hgitaly-18.0.0a0/protos/packfile.proto +0 -26
  64. hgitaly-18.0.0a0/protos/partition.proto +0 -70
  65. hgitaly-18.0.0a0/protos/praefect.proto +0 -222
  66. hgitaly-18.0.0a0/protos/ref.proto +0 -593
  67. hgitaly-18.0.0a0/protos/remote.proto +0 -153
  68. hgitaly-18.0.0a0/protos/repository.proto +0 -1440
  69. hgitaly-18.0.0a0/protos/server.proto +0 -123
  70. hgitaly-18.0.0a0/protos/service_config.proto +0 -86
  71. hgitaly-18.0.0a0/protos/shared.proto +0 -248
  72. hgitaly-18.0.0a0/protos/smarthttp.proto +0 -121
  73. hgitaly-18.0.0a0/protos/ssh.proto +0 -109
  74. hgitaly-18.0.0a0/protos/transaction.proto +0 -104
  75. hgitaly-18.0.0a0/protos/wiki.proto +0 -211
  76. hgitaly-18.0.0a0/ruby/.ruby-version +0 -1
  77. hgitaly-18.0.0a0/ruby/Gemfile +0 -5
  78. hgitaly-18.0.0a0/ruby/README.md +0 -48
  79. hgitaly-18.0.0a0/ruby/generate-grpc-lib +0 -63
  80. hgitaly-18.0.0a0/ruby/hgitaly.gemspec +0 -25
  81. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-aux-git_pb.rb +0 -15
  82. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-aux-git_services_pb.rb +0 -29
  83. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-changeset_pb.rb +0 -69
  84. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-changeset_services_pb.rb +0 -25
  85. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-operations_pb.rb +0 -133
  86. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-operations_services_pb.rb +0 -53
  87. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-repository_pb.rb +0 -163
  88. hgitaly-18.0.0a0/ruby/lib/hgitaly/mercurial-repository_services_pb.rb +0 -79
  89. hgitaly-18.0.0a0/ruby/lib/hgitaly/version.rb +0 -4
  90. hgitaly-18.0.0a0/ruby/lib/hgitaly.rb +0 -13
  91. hgitaly-18.0.0a0/ruby/run.rb +0 -39
  92. hgitaly-18.0.0a0/run-all-tests +0 -24
  93. hgitaly-18.0.0a0/rust/Cargo.lock +0 -3747
  94. hgitaly-18.0.0a0/rust/Cargo.toml +0 -4
  95. hgitaly-18.0.0a0/rust/Makefile +0 -69
  96. hgitaly-18.0.0a0/rust/build-from-tarball.sh +0 -30
  97. hgitaly-18.0.0a0/rust/check-line-width +0 -48
  98. hgitaly-18.0.0a0/rust/dependencies/README.md +0 -19
  99. hgitaly-18.0.0a0/rust/dependencies/mercurial.patch +0 -39
  100. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/any.proto +0 -158
  101. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/api.proto +0 -208
  102. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/compiler/plugin.proto +0 -183
  103. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/descriptor.proto +0 -911
  104. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/duration.proto +0 -116
  105. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/empty.proto +0 -52
  106. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/field_mask.proto +0 -245
  107. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/source_context.proto +0 -48
  108. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/struct.proto +0 -95
  109. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/timestamp.proto +0 -147
  110. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/type.proto +0 -187
  111. hgitaly-18.0.0a0/rust/dependencies/proto/google/protobuf/wrappers.proto +0 -123
  112. hgitaly-18.0.0a0/rust/go-enry.rev +0 -1
  113. hgitaly-18.0.0a0/rust/lint +0 -14
  114. hgitaly-18.0.0a0/rust/mercurial.rev +0 -1
  115. hgitaly-18.0.0a0/rust/rhgitaly/Cargo.toml +0 -51
  116. hgitaly-18.0.0a0/rust/rhgitaly/build.rs +0 -48
  117. hgitaly-18.0.0a0/rust/rhgitaly/clippy.toml +0 -6
  118. hgitaly-18.0.0a0/rust/rhgitaly/src/bundle.rs +0 -160
  119. hgitaly-18.0.0a0/rust/rhgitaly/src/config.rs +0 -167
  120. hgitaly-18.0.0a0/rust/rhgitaly/src/errors.rs +0 -131
  121. hgitaly-18.0.0a0/rust/rhgitaly/src/generated/README.md +0 -7
  122. hgitaly-18.0.0a0/rust/rhgitaly/src/git.rs +0 -293
  123. hgitaly-18.0.0a0/rust/rhgitaly/src/gitlab/mod.rs +0 -50
  124. hgitaly-18.0.0a0/rust/rhgitaly/src/gitlab/reference.rs +0 -83
  125. hgitaly-18.0.0a0/rust/rhgitaly/src/gitlab/revision.rs +0 -320
  126. hgitaly-18.0.0a0/rust/rhgitaly/src/gitlab/state.rs +0 -508
  127. hgitaly-18.0.0a0/rust/rhgitaly/src/glob.rs +0 -227
  128. hgitaly-18.0.0a0/rust/rhgitaly/src/lib.rs +0 -44
  129. hgitaly-18.0.0a0/rust/rhgitaly/src/main.rs +0 -143
  130. hgitaly-18.0.0a0/rust/rhgitaly/src/mercurial.rs +0 -1366
  131. hgitaly-18.0.0a0/rust/rhgitaly/src/message.rs +0 -468
  132. hgitaly-18.0.0a0/rust/rhgitaly/src/metadata.rs +0 -27
  133. hgitaly-18.0.0a0/rust/rhgitaly/src/oid.rs +0 -86
  134. hgitaly-18.0.0a0/rust/rhgitaly/src/process.rs +0 -39
  135. hgitaly-18.0.0a0/rust/rhgitaly/src/repository/spawner.rs +0 -559
  136. hgitaly-18.0.0a0/rust/rhgitaly/src/repository.rs +0 -544
  137. hgitaly-18.0.0a0/rust/rhgitaly/src/service/analysis.rs +0 -183
  138. hgitaly-18.0.0a0/rust/rhgitaly/src/service/blob.rs +0 -260
  139. hgitaly-18.0.0a0/rust/rhgitaly/src/service/commit/find_commits.rs +0 -203
  140. hgitaly-18.0.0a0/rust/rhgitaly/src/service/commit/get_tree_entries.rs +0 -291
  141. hgitaly-18.0.0a0/rust/rhgitaly/src/service/commit/last_commits.rs +0 -569
  142. hgitaly-18.0.0a0/rust/rhgitaly/src/service/commit/tree_entry.rs +0 -154
  143. hgitaly-18.0.0a0/rust/rhgitaly/src/service/commit.rs +0 -624
  144. hgitaly-18.0.0a0/rust/rhgitaly/src/service/diff.rs +0 -137
  145. hgitaly-18.0.0a0/rust/rhgitaly/src/service/mercurial_aux_git.rs +0 -186
  146. hgitaly-18.0.0a0/rust/rhgitaly/src/service/mercurial_repository.rs +0 -496
  147. hgitaly-18.0.0a0/rust/rhgitaly/src/service/mod.rs +0 -18
  148. hgitaly-18.0.0a0/rust/rhgitaly/src/service/ref.rs +0 -778
  149. hgitaly-18.0.0a0/rust/rhgitaly/src/service/remote.rs +0 -793
  150. hgitaly-18.0.0a0/rust/rhgitaly/src/service/repository.rs +0 -777
  151. hgitaly-18.0.0a0/rust/rhgitaly/src/service/server.rs +0 -53
  152. hgitaly-18.0.0a0/rust/rhgitaly/src/sidecar.rs +0 -230
  153. hgitaly-18.0.0a0/rust/rhgitaly/src/ssh.rs +0 -102
  154. hgitaly-18.0.0a0/rust/rhgitaly/src/streaming.rs +0 -402
  155. hgitaly-18.0.0a0/rust/rhgitaly/src/util.rs +0 -132
  156. hgitaly-18.0.0a0/rust/rs-enry.rev +0 -1
  157. hgitaly-18.0.0a0/rust/src-tarball.sh +0 -63
  158. hgitaly-18.0.0a0/test-requirements.txt +0 -8
  159. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/LICENSE +0 -0
  160. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/MANIFEST.in +0 -0
  161. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/__init__.py +0 -0
  162. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/hgitaly/__init__.py +0 -0
  163. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/hgitaly/revset.py +0 -0
  164. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/hgitaly/tests/__init__.py +0 -0
  165. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/hgitaly/tests/test_revset.py +0 -0
  166. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgext3rd/hgitaly/tests/test_serve.py +0 -0
  167. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/__init__.py +0 -0
  168. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/branch.py +0 -0
  169. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/changelog.py +0 -0
  170. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/diff.py +0 -0
  171. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/errors.py +0 -0
  172. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/feature.py +0 -0
  173. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/file_content.py +0 -0
  174. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/file_context.py +0 -0
  175. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/git.py +0 -0
  176. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/gitlab_ref.py +0 -0
  177. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/identification.py +0 -0
  178. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/license_detector/spdx-licenses.json +0 -0
  179. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/linguist/__init__.py +0 -0
  180. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/linguist/languages.json +0 -0
  181. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/logging.py +0 -0
  182. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/manifest.py +0 -0
  183. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/message.py +0 -0
  184. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/oid.py +0 -0
  185. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/pagination.py +0 -0
  186. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/path.py +0 -0
  187. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/peer.py +0 -0
  188. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/procutil.py +0 -0
  189. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/repository.py +0 -0
  190. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/revision.py +0 -0
  191. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/revset.py +0 -0
  192. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/__init__.py +0 -0
  193. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/address.py +0 -0
  194. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/mono.py +0 -0
  195. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/prefork.py +0 -0
  196. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/tests/__init__.py +0 -0
  197. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/tests/test_address.py +0 -0
  198. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/tests/test_mono.py +0 -0
  199. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/tests/test_prefork.py +0 -0
  200. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/tests/test_worker.py +0 -0
  201. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/server/worker.py +0 -0
  202. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/__init__.py +0 -0
  203. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/analysis.py +0 -0
  204. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/blob.py +0 -0
  205. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/diff.py +0 -0
  206. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/interceptors.py +0 -0
  207. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/mercurial_changeset.py +0 -0
  208. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/mercurial_operations.py +0 -0
  209. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/mercurial_repository.py +0 -0
  210. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/operations.py +0 -0
  211. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/ref.py +0 -0
  212. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/server.py +0 -0
  213. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/__init__.py +0 -0
  214. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/fixture.py +0 -0
  215. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_analysis.py +0 -0
  216. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_blob.py +0 -0
  217. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_default_branch.py +0 -0
  218. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_diff.py +0 -0
  219. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_mercurial_changeset.py +0 -0
  220. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_mercurial_operations.py +0 -0
  221. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_mercurial_repository.py +0 -0
  222. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_operations.py +0 -0
  223. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_ref.py +0 -0
  224. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/service/tests/test_server.py +0 -0
  225. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/ssh.py +0 -0
  226. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stream.py +0 -0
  227. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/__init__.py +0 -0
  228. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/analysis_pb2.py +0 -0
  229. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/analysis_pb2_grpc.py +0 -0
  230. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/blob_pb2.py +0 -0
  231. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/blob_pb2_grpc.py +0 -0
  232. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/commit_pb2.py +0 -0
  233. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/commit_pb2_grpc.py +0 -0
  234. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/diff_pb2_grpc.py +0 -0
  235. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/errors_pb2.py +0 -0
  236. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/errors_pb2_grpc.py +0 -0
  237. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/lint_pb2.py +0 -0
  238. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/lint_pb2_grpc.py +0 -0
  239. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_aux_git_pb2_grpc.py +0 -0
  240. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_changeset_pb2.py +0 -0
  241. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_changeset_pb2_grpc.py +0 -0
  242. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_operations_pb2.py +0 -0
  243. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_operations_pb2_grpc.py +0 -0
  244. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_repository_pb2.py +0 -0
  245. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/mercurial_repository_pb2_grpc.py +0 -0
  246. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/operations_pb2.py +0 -0
  247. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/operations_pb2_grpc.py +0 -0
  248. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/ref_pb2.py +0 -0
  249. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/ref_pb2_grpc.py +0 -0
  250. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/remote_pb2.py +0 -0
  251. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/remote_pb2_grpc.py +0 -0
  252. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/repository_pb2_grpc.py +0 -0
  253. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/server_pb2.py +0 -0
  254. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/server_pb2_grpc.py +0 -0
  255. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/shared_pb2.py +0 -0
  256. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/stub/shared_pb2_grpc.py +0 -0
  257. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tag.py +0 -0
  258. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/__init__.py +0 -0
  259. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/bundle.py +0 -0
  260. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/context.py +0 -0
  261. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/grpc.py +0 -0
  262. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/multiprocessing.py +0 -0
  263. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/ssh.py +0 -0
  264. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/sshd.py +0 -0
  265. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/storage.py +0 -0
  266. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/tests/__init__.py +0 -0
  267. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/testing/tests/test_sshd.py +0 -0
  268. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/__init__.py +0 -0
  269. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/common.py +0 -0
  270. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_branch.py +0 -0
  271. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_diff.py +0 -0
  272. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_errors.py +0 -0
  273. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_feature.py +0 -0
  274. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_file_context.py +0 -0
  275. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_gitlab_ref.py +0 -0
  276. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_identification.py +0 -0
  277. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_license_detector.py +0 -0
  278. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_linguist.py +0 -0
  279. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_manifest.py +0 -0
  280. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_messages.py +0 -0
  281. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_oid.py +0 -0
  282. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_peer.py +0 -0
  283. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_repository.py +0 -0
  284. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_revision.py +0 -0
  285. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_revset.py +0 -0
  286. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_stream.py +0 -0
  287. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_tag.py +0 -0
  288. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/tests/test_workdir.py +0 -0
  289. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/util.py +0 -0
  290. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly/workdir.py +0 -0
  291. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/dependency_links.txt +0 -0
  292. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/entry_points.txt +0 -0
  293. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/requires.txt +0 -0
  294. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/hgitaly.egg-info/top_level.txt +0 -0
  295. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/install-requirements.txt +0 -0
  296. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/setup.cfg +0 -0
  297. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/setup.py +0 -0
  298. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/__init__.py +0 -0
  299. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/comparison.py +0 -0
  300. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/conftest.py +0 -0
  301. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/gitaly.py +0 -0
  302. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/hgitaly_rhgitaly_comparison.py +0 -0
  303. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/rhgitaly.py +0 -0
  304. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_blob_tree.py +0 -0
  305. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_comparison.py +0 -0
  306. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_diff.py +0 -0
  307. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_gitaly_server.py +0 -0
  308. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_mercurial_aux_git.py +0 -0
  309. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_mercurial_operations.py +0 -0
  310. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_mercurial_repository.py +0 -0
  311. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_operations.py +0 -0
  312. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_ref.py +0 -0
  313. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_remote.py +0 -0
  314. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_rhgitaly_server.py +0 -0
  315. {hgitaly-18.0.0a0 → hgitaly-18.0.1}/tests_with_gitaly/test_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hgitaly
3
- Version: 18.0.0a0
3
+ Version: 18.0.1
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
@@ -34,9 +34,11 @@ It comes in two overlapping variants:
34
34
  - RHGitaly is a high-performance partial implementation written in Rust, and
35
35
  based on the [`tonic`](https://crates.io/crates/tonic) gRPC framework.
36
36
 
37
- As of this writing, RHGitaly implements a strict subset of the methods
38
- implemented in HGitaly, but it is possible that some methods would be
39
- implemented in RHGitaly only in the future.
37
+ As of Heptapod 18.0, RHGitaly is able to treat all requests, sometimes by
38
+ deferring to HGitaly. All clients should be configured to target RHGitaly,
39
+ but a HGitaly service must still exist, and RHGitaly must be configured
40
+ with the address of the HGitaly server. We have [plans](hgitaly#235)
41
+ to make HGitaly become a sidecar of RHGitaly.
40
42
 
41
43
  ## Installation
42
44
 
@@ -101,10 +103,12 @@ We distribute a self-contained source tarball. It includes the appropriate
101
103
 
102
104
  [Service]
103
105
  User=hgitaly
104
- # HGRCPATH not needed yet but probably will be at some point
105
106
  Environment=HGRCPATH=/etc/heptapod/heptapod.hgrc
106
107
  Environment=RHGITALY_LISTEN_URL=unix:/run/heptapod/rhgitaly.socket
107
108
  Environment=RHGITALY_REPOSITORIES_ROOT=/home/hg/repositories
109
+ Environment=RHGITALY_HG_EXECUTABLE=/usr/local/bin/hg
110
+ Environment=RHGITALY_SIDECAR_ADDRESS=http://127.0.0.1:9237
111
+ Environment=RHGITALY_CONFIG_DIRECTORY=/home/hg/repositories/+hgitaly
108
112
  ExecStartPre=rm -f /run/heptapod/rhgitaly.socket
109
113
  ExecStart=/user/local/bin/rhgitaly
110
114
  Restart=on-failure
@@ -123,9 +127,14 @@ each executable can be configured.
123
127
 
124
128
  #### Tokei
125
129
 
130
+ As of Heptapod 18.0, the `tokei` executable is no longer necessary, as
131
+ RHGitaly provides a direct implementation, using `tokei` as a library (hence
132
+ an internal dependency, resolved at compilation).
133
+
126
134
  [Tokei](https://crates.io/crates/tokei) is a programming languages analysis
127
135
  tool written in Rust. It is used by the [CommitLanguages](protos/commit.proto)
128
- method.
136
+ method of HGitaly (python), which should now be in use only in Comparison
137
+ Tests.
129
138
 
130
139
  Tokei is available in several Linux distributions.
131
140
 
@@ -145,12 +154,20 @@ This is for example the case of [GetPatchID](protos/diff.proto): the
145
154
  `git patch-id` command does not access any repository. Instead it computes any
146
155
  patch into an identifier.
147
156
 
157
+ RHGitaly spawns Git subprocesses for operations on the auxiliary Git repository
158
+ used for mirroring to Git. For instance, this is how the `git push` part of
159
+ the mirroring is implemented.
160
+
161
+ The path to the `git` executable can be configured with the
162
+ `RHGITALY_GIT_EXECUTABLE` enviroment variable (defaulting to just `git`).
163
+
148
164
  #### Mercurial
149
165
 
150
- In forthcoming versions, it is probable that HGitaly and/or RHGitaly will
151
- invoke Mercurial subprocesses.
166
+ RHGitaly can invoke Mercurial subprocesses for various operations that
167
+ are better accomodated this way.
152
168
 
153
- This is not yet the case as of this writing (HGitaly 1.1 / Heptapod 1.1).
169
+ The Mercurial executable is configured by the mandatory
170
+ `RHGITALY_HG_EXECUTABLE` environment variable.
154
171
 
155
172
  ### Configuration
156
173
 
@@ -421,6 +438,38 @@ The virtualenv has to be activated
421
438
 
422
439
  5. perform necessary `hg add` after close inspection of `hg status`
423
440
 
441
+ ### Feature flags
442
+
443
+ GitLab uses special feature flags to control Gitaly. They are transmitted
444
+ to the Gitaly server by means of invocation metadata (part of the gRPC
445
+ protocol, actually implemented as HTTP/2 headers).
446
+ This is documented in Gitaly's `doc/` subdirectory.
447
+
448
+ Gitaly feature flags have become important in HGitaly development since
449
+ every request now goes to RHGitaly first. We used before that to introduce
450
+ ordinary feature flags in GitLab Rails to control which requests would go
451
+ to HGitaly (Python) and which would go to RHGitaly. This was instrumental
452
+ in the progressive reimplementation in Rust of many gRPC methods, and has
453
+ obviously to be replaced by the use of Gitaly feature flags.
454
+
455
+ GitLab's development workflow is heavily centered around "chatops", they make
456
+ it a rule that feature flags should start as being disabled by default, then
457
+ gradually rolled out by percentage chatops commands. On the other hand,
458
+ Heptapod often feature flag to provide an opt-out option, with many starting
459
+ as enabled by default.
460
+
461
+ An important property of Gitaly feature flags is that nothing is passed at
462
+ all if the feature flag has not been set in the Rails application. In other
463
+ words, the default value is implemented by the Gitaly server and meaningless
464
+ in the Rails app.
465
+
466
+ As a consequence, creating a Gitaly feature flag defaulting to `true` does
467
+ nothing unless (R)HGitaly itself interprets the absence of the value as `true`.
468
+
469
+ TL;DR: for opt-out by a feature flag seen as `gitaly_my_feature` by Rails,
470
+ just use `rhgitaly::metadata::is_feature_enabled?("my-feature", true)` in the RHGitaly
471
+ code.
472
+
424
473
  ### Updating the HGitaly specific gRPC protocol
425
474
 
426
475
  This package defines and implements an additional gRPC protocol, with
@@ -12,9 +12,11 @@ It comes in two overlapping variants:
12
12
  - RHGitaly is a high-performance partial implementation written in Rust, and
13
13
  based on the [`tonic`](https://crates.io/crates/tonic) gRPC framework.
14
14
 
15
- As of this writing, RHGitaly implements a strict subset of the methods
16
- implemented in HGitaly, but it is possible that some methods would be
17
- implemented in RHGitaly only in the future.
15
+ As of Heptapod 18.0, RHGitaly is able to treat all requests, sometimes by
16
+ deferring to HGitaly. All clients should be configured to target RHGitaly,
17
+ but a HGitaly service must still exist, and RHGitaly must be configured
18
+ with the address of the HGitaly server. We have [plans](hgitaly#235)
19
+ to make HGitaly become a sidecar of RHGitaly.
18
20
 
19
21
  ## Installation
20
22
 
@@ -79,10 +81,12 @@ We distribute a self-contained source tarball. It includes the appropriate
79
81
 
80
82
  [Service]
81
83
  User=hgitaly
82
- # HGRCPATH not needed yet but probably will be at some point
83
84
  Environment=HGRCPATH=/etc/heptapod/heptapod.hgrc
84
85
  Environment=RHGITALY_LISTEN_URL=unix:/run/heptapod/rhgitaly.socket
85
86
  Environment=RHGITALY_REPOSITORIES_ROOT=/home/hg/repositories
87
+ Environment=RHGITALY_HG_EXECUTABLE=/usr/local/bin/hg
88
+ Environment=RHGITALY_SIDECAR_ADDRESS=http://127.0.0.1:9237
89
+ Environment=RHGITALY_CONFIG_DIRECTORY=/home/hg/repositories/+hgitaly
86
90
  ExecStartPre=rm -f /run/heptapod/rhgitaly.socket
87
91
  ExecStart=/user/local/bin/rhgitaly
88
92
  Restart=on-failure
@@ -101,9 +105,14 @@ each executable can be configured.
101
105
 
102
106
  #### Tokei
103
107
 
108
+ As of Heptapod 18.0, the `tokei` executable is no longer necessary, as
109
+ RHGitaly provides a direct implementation, using `tokei` as a library (hence
110
+ an internal dependency, resolved at compilation).
111
+
104
112
  [Tokei](https://crates.io/crates/tokei) is a programming languages analysis
105
113
  tool written in Rust. It is used by the [CommitLanguages](protos/commit.proto)
106
- method.
114
+ method of HGitaly (python), which should now be in use only in Comparison
115
+ Tests.
107
116
 
108
117
  Tokei is available in several Linux distributions.
109
118
 
@@ -123,12 +132,20 @@ This is for example the case of [GetPatchID](protos/diff.proto): the
123
132
  `git patch-id` command does not access any repository. Instead it computes any
124
133
  patch into an identifier.
125
134
 
135
+ RHGitaly spawns Git subprocesses for operations on the auxiliary Git repository
136
+ used for mirroring to Git. For instance, this is how the `git push` part of
137
+ the mirroring is implemented.
138
+
139
+ The path to the `git` executable can be configured with the
140
+ `RHGITALY_GIT_EXECUTABLE` enviroment variable (defaulting to just `git`).
141
+
126
142
  #### Mercurial
127
143
 
128
- In forthcoming versions, it is probable that HGitaly and/or RHGitaly will
129
- invoke Mercurial subprocesses.
144
+ RHGitaly can invoke Mercurial subprocesses for various operations that
145
+ are better accomodated this way.
130
146
 
131
- This is not yet the case as of this writing (HGitaly 1.1 / Heptapod 1.1).
147
+ The Mercurial executable is configured by the mandatory
148
+ `RHGITALY_HG_EXECUTABLE` environment variable.
132
149
 
133
150
  ### Configuration
134
151
 
@@ -399,6 +416,38 @@ The virtualenv has to be activated
399
416
 
400
417
  5. perform necessary `hg add` after close inspection of `hg status`
401
418
 
419
+ ### Feature flags
420
+
421
+ GitLab uses special feature flags to control Gitaly. They are transmitted
422
+ to the Gitaly server by means of invocation metadata (part of the gRPC
423
+ protocol, actually implemented as HTTP/2 headers).
424
+ This is documented in Gitaly's `doc/` subdirectory.
425
+
426
+ Gitaly feature flags have become important in HGitaly development since
427
+ every request now goes to RHGitaly first. We used before that to introduce
428
+ ordinary feature flags in GitLab Rails to control which requests would go
429
+ to HGitaly (Python) and which would go to RHGitaly. This was instrumental
430
+ in the progressive reimplementation in Rust of many gRPC methods, and has
431
+ obviously to be replaced by the use of Gitaly feature flags.
432
+
433
+ GitLab's development workflow is heavily centered around "chatops", they make
434
+ it a rule that feature flags should start as being disabled by default, then
435
+ gradually rolled out by percentage chatops commands. On the other hand,
436
+ Heptapod often feature flag to provide an opt-out option, with many starting
437
+ as enabled by default.
438
+
439
+ An important property of Gitaly feature flags is that nothing is passed at
440
+ all if the feature flag has not been set in the Rails application. In other
441
+ words, the default value is implemented by the Gitaly server and meaningless
442
+ in the Rails app.
443
+
444
+ As a consequence, creating a Gitaly feature flag defaulting to `true` does
445
+ nothing unless (R)HGitaly itself interprets the absence of the value as `true`.
446
+
447
+ TL;DR: for opt-out by a feature flag seen as `gitaly_my_feature` by Rails,
448
+ just use `rhgitaly::metadata::is_feature_enabled?("my-feature", true)` in the RHGitaly
449
+ code.
450
+
402
451
  ### Updating the HGitaly specific gRPC protocol
403
452
 
404
453
  This package defines and implements an additional gRPC protocol, with
@@ -0,0 +1 @@
1
+ 18.0.1
@@ -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
 
@@ -159,6 +159,7 @@ def stats(): # pragma no cover
159
159
  'timing:median',
160
160
  'timing:worst_decile',
161
161
  'timing:worst_centile',
162
+ 'timing:total',
162
163
  ),
163
164
  default='calls')
164
165
 
@@ -210,6 +211,7 @@ def stats(): # pragma no cover
210
211
  timing = req_stats['completion_stats_ms'] = dict(
211
212
  mean=statistics.mean(succ),
212
213
  median=statistics.median(succ),
214
+ total=sum(s for s in succ),
213
215
  )
214
216
  if nb_succ > 1:
215
217
  timing['standard_deviation'] = statistics.pstdev(succ)
@@ -903,6 +903,8 @@ class CommitServicer(CommitServiceServicer, HGitalyServicer):
903
903
  context.abort(StatusCode.INTERNAL,
904
904
  "Revision %r could not be resolved" % exc.args[0])
905
905
 
906
+ walk = not request.disable_walk
907
+
906
908
  if positive is VISIBLE_CHANGESETS:
907
909
  # do not switch to unfiltered view!
908
910
  if negative:
@@ -916,8 +918,10 @@ class CommitServicer(CommitServiceServicer, HGitalyServicer):
916
918
  repo = repo.unfiltered()
917
919
  if negative:
918
920
  revset = b'only(%ls, %ls)'
919
- else:
921
+ elif walk:
920
922
  revset = b'::%ls'
923
+ else:
924
+ revset = b'%ls'
921
925
 
922
926
  msg_patterns = request.commit_message_patterns
923
927
  ignore_case = request.ignore_case
@@ -930,6 +934,21 @@ class CommitServicer(CommitServiceServicer, HGitalyServicer):
930
934
  else:
931
935
  revset += b' and ' + greps[0]
932
936
 
937
+ after = request.after.ToSeconds()
938
+ before = request.before.ToSeconds()
939
+ date = getdate(after, before)
940
+ if date is not None:
941
+ revset += b" and date('%s')" % date.encode('ascii')
942
+
943
+ author = request.author
944
+ if author:
945
+ revset += b" and user(r're:%s')" % author
946
+
947
+ # no octopuses in Mercurial, hence max_parents > 1 does not filter
948
+ # anything
949
+ if request.max_parents == 1:
950
+ revset += b" and not merge()"
951
+
933
952
  Order = ListCommitsRequest.Order
934
953
  reverse = request.reverse
935
954
 
@@ -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,
@@ -1337,7 +1337,7 @@ def test_list_commits(commit_fixture_empty_repo):
1337
1337
  wrapper.update(ctx0.rev())
1338
1338
  wrapper.command(b'mv', wrapper.repo.root + b'/foo',
1339
1339
  wrapper.repo.root + b'/zoo')
1340
- ts = int(time.time())
1340
+ ts = int(time.time() - 50)
1341
1341
  sha2 = wrapper.commit([b'foo', b'zoo'],
1342
1342
  message=b"rename foo to zoo",
1343
1343
  utc_timestamp=ts - 10,).hex()
@@ -1346,7 +1346,9 @@ def test_list_commits(commit_fixture_empty_repo):
1346
1346
  user='testuser <testuser@heptapod.test')
1347
1347
  sha3 = ctx3.hex()
1348
1348
  wrapper.update(2)
1349
- ctx4 = wrapper.merge_commit(ctx3, message=b'merge with stable')
1349
+ ctx4 = wrapper.merge_commit(ctx3, message=b'merge with stable',
1350
+ utc_timestamp=ts+20)
1351
+
1350
1352
  sha4 = ctx4.hex()
1351
1353
 
1352
1354
  def caret(ctx):
@@ -1365,11 +1367,15 @@ def test_list_commits(commit_fixture_empty_repo):
1365
1367
  # orderings
1366
1368
  Order = ListCommitsRequest.Order
1367
1369
  assert list_commits(sha4, order=Order.TOPO) == [sha4, sha3, sha2, sha0]
1368
- assert list_commits(sha4, order=Order.DATE) == [sha2, sha0, sha4, sha3]
1370
+ # having no explicit date, ctx0 looks to be the most recent one.
1371
+ assert list_commits(sha4, order=Order.DATE) == [sha2, sha3, sha4, sha0]
1369
1372
 
1370
1373
  # no result
1371
1374
  assert list_commits(sha4, caret(ctx4)) == []
1372
1375
 
1376
+ # disable walk
1377
+ assert list_commits(sha4, disable_walk=True) == [sha4]
1378
+
1373
1379
  # message patterns
1374
1380
  assert list_commits(sha4, commit_message_patterns=[b'foo']) == [sha2]
1375
1381
  assert set(
@@ -1379,6 +1385,26 @@ def test_list_commits(commit_fixture_empty_repo):
1379
1385
  commit_message_patterns=[b'FOO'],
1380
1386
  ignore_case=True) == [sha2]
1381
1387
 
1388
+ # max_parents
1389
+ assert list_commits(sha4, max_parents=2) == list_commits(sha4)
1390
+ assert list_commits(sha4, max_parents=3) == list_commits(sha4)
1391
+ assert list_commits(sha4, max_parents=1) == [sha3, sha2, sha0]
1392
+
1393
+ # dates
1394
+ date, date2 = Timestamp(), Timestamp()
1395
+ date.FromSeconds(ts+10)
1396
+ assert list_commits(sha4, before=date) == [sha3, sha2]
1397
+ assert list_commits(sha4, after=date) == [sha4, sha3, sha0]
1398
+ # gracinet: given that before is < and after is > I didn't expect
1399
+ # after=before to return anything, but `hg help dates` says that
1400
+ # the `to` range specifier is inclusive.
1401
+ assert list_commits(sha4, after=date, before=date) == [sha3]
1402
+ date2.FromSeconds(ts+40)
1403
+ assert list_commits(sha4, after=date, before=date2) == [sha4, sha3]
1404
+
1405
+ # author regexp
1406
+ assert list_commits(sha4, author=b't.stuser') == [sha3]
1407
+
1382
1408
  # unknown revision, including special cases:
1383
1409
  for unknown in ('branch/unknown',
1384
1410
  'f' * 39, # wdir node id, prefix
@@ -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)