rugged 1.3.2.3 → 1.4.2

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 (329) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +1 -1
  3. data/ext/rugged/rugged_config.c +7 -2
  4. data/ext/rugged/rugged_remote.c +17 -0
  5. data/lib/rugged/version.rb +1 -1
  6. data/vendor/libgit2/CMakeLists.txt +103 -276
  7. data/vendor/libgit2/COPYING +36 -19
  8. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  9. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  10. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  11. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  12. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  13. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  14. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  15. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  16. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  17. data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
  18. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  19. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  20. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  21. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  22. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  23. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  24. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  25. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  26. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  27. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  28. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  29. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  30. data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
  31. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  32. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  33. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  34. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  35. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  36. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
  37. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  38. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  39. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  40. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  42. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  43. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  44. data/vendor/libgit2/deps/zlib/crc32.c +288 -975
  45. data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
  46. data/vendor/libgit2/deps/zlib/deflate.c +31 -83
  47. data/vendor/libgit2/deps/zlib/deflate.h +15 -12
  48. data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
  49. data/vendor/libgit2/deps/zlib/infback.c +1 -2
  50. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  51. data/vendor/libgit2/deps/zlib/inflate.c +8 -39
  52. data/vendor/libgit2/deps/zlib/inflate.h +2 -3
  53. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  54. data/vendor/libgit2/deps/zlib/trees.c +48 -27
  55. data/vendor/libgit2/deps/zlib/zlib.h +100 -126
  56. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  57. data/vendor/libgit2/deps/zlib/zutil.h +9 -12
  58. data/vendor/libgit2/include/git2/apply.h +16 -2
  59. data/vendor/libgit2/include/git2/attr.h +11 -2
  60. data/vendor/libgit2/include/git2/blame.h +4 -1
  61. data/vendor/libgit2/include/git2/blob.h +14 -1
  62. data/vendor/libgit2/include/git2/branch.h +2 -0
  63. data/vendor/libgit2/include/git2/buffer.h +18 -78
  64. data/vendor/libgit2/include/git2/cert.h +2 -2
  65. data/vendor/libgit2/include/git2/checkout.h +5 -2
  66. data/vendor/libgit2/include/git2/clone.h +3 -3
  67. data/vendor/libgit2/include/git2/commit.h +2 -0
  68. data/vendor/libgit2/include/git2/common.h +5 -12
  69. data/vendor/libgit2/include/git2/config.h +19 -3
  70. data/vendor/libgit2/include/git2/credential.h +2 -1
  71. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  72. data/vendor/libgit2/include/git2/deprecated.h +1 -1
  73. data/vendor/libgit2/include/git2/describe.h +7 -2
  74. data/vendor/libgit2/include/git2/diff.h +17 -9
  75. data/vendor/libgit2/include/git2/email.h +1 -1
  76. data/vendor/libgit2/include/git2/errors.h +1 -2
  77. data/vendor/libgit2/include/git2/filter.h +7 -2
  78. data/vendor/libgit2/include/git2/graph.h +1 -0
  79. data/vendor/libgit2/include/git2/ignore.h +1 -1
  80. data/vendor/libgit2/include/git2/index.h +11 -5
  81. data/vendor/libgit2/include/git2/indexer.h +19 -0
  82. data/vendor/libgit2/include/git2/merge.h +23 -3
  83. data/vendor/libgit2/include/git2/message.h +2 -0
  84. data/vendor/libgit2/include/git2/object.h +23 -0
  85. data/vendor/libgit2/include/git2/odb.h +37 -7
  86. data/vendor/libgit2/include/git2/odb_backend.h +1 -1
  87. data/vendor/libgit2/include/git2/pack.h +24 -8
  88. data/vendor/libgit2/include/git2/patch.h +8 -0
  89. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  90. data/vendor/libgit2/include/git2/proxy.h +1 -1
  91. data/vendor/libgit2/include/git2/rebase.h +9 -1
  92. data/vendor/libgit2/include/git2/refdb.h +3 -0
  93. data/vendor/libgit2/include/git2/reflog.h +1 -1
  94. data/vendor/libgit2/include/git2/refs.h +2 -2
  95. data/vendor/libgit2/include/git2/remote.h +184 -37
  96. data/vendor/libgit2/include/git2/repository.h +14 -9
  97. data/vendor/libgit2/include/git2/reset.h +2 -2
  98. data/vendor/libgit2/include/git2/revparse.h +1 -1
  99. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  100. data/vendor/libgit2/include/git2/signature.h +1 -1
  101. data/vendor/libgit2/include/git2/stash.h +3 -3
  102. data/vendor/libgit2/include/git2/status.h +9 -3
  103. data/vendor/libgit2/include/git2/submodule.h +7 -2
  104. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  105. data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
  106. data/vendor/libgit2/include/git2/sys/remote.h +31 -0
  107. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  108. data/vendor/libgit2/include/git2/sys/transport.h +25 -34
  109. data/vendor/libgit2/include/git2/tag.h +1 -0
  110. data/vendor/libgit2/include/git2/tree.h +4 -3
  111. data/vendor/libgit2/include/git2/types.h +7 -7
  112. data/vendor/libgit2/include/git2/version.h +3 -3
  113. data/vendor/libgit2/include/git2/worktree.h +12 -2
  114. data/vendor/libgit2/src/CMakeLists.txt +189 -315
  115. data/vendor/libgit2/src/annotated_commit.h +1 -1
  116. data/vendor/libgit2/src/apply.c +18 -18
  117. data/vendor/libgit2/src/apply.h +2 -2
  118. data/vendor/libgit2/src/attr.c +18 -18
  119. data/vendor/libgit2/src/attr_file.c +17 -17
  120. data/vendor/libgit2/src/attr_file.h +4 -4
  121. data/vendor/libgit2/src/attrcache.c +17 -12
  122. data/vendor/libgit2/src/blame_git.c +1 -1
  123. data/vendor/libgit2/src/blob.c +33 -26
  124. data/vendor/libgit2/src/blob.h +1 -1
  125. data/vendor/libgit2/src/branch.c +150 -109
  126. data/vendor/libgit2/src/branch.h +15 -3
  127. data/vendor/libgit2/src/buf.c +126 -0
  128. data/vendor/libgit2/src/buf.h +50 -0
  129. data/vendor/libgit2/src/cc-compat.h +1 -1
  130. data/vendor/libgit2/src/checkout.c +74 -68
  131. data/vendor/libgit2/src/cherrypick.c +10 -10
  132. data/vendor/libgit2/src/clone.c +66 -66
  133. data/vendor/libgit2/src/commit.c +128 -58
  134. data/vendor/libgit2/src/commit.h +24 -1
  135. data/vendor/libgit2/src/commit_graph.c +68 -53
  136. data/vendor/libgit2/src/commit_graph.h +10 -3
  137. data/vendor/libgit2/src/commit_list.c +2 -3
  138. data/vendor/libgit2/src/common.h +10 -3
  139. data/vendor/libgit2/src/config.c +99 -77
  140. data/vendor/libgit2/src/config.h +15 -2
  141. data/vendor/libgit2/src/config_file.c +103 -91
  142. data/vendor/libgit2/src/config_mem.c +9 -9
  143. data/vendor/libgit2/src/config_parse.c +27 -23
  144. data/vendor/libgit2/src/crlf.c +24 -21
  145. data/vendor/libgit2/src/date.c +10 -17
  146. data/vendor/libgit2/src/date.h +33 -0
  147. data/vendor/libgit2/src/describe.c +27 -19
  148. data/vendor/libgit2/src/diff.c +25 -8
  149. data/vendor/libgit2/src/diff.h +2 -4
  150. data/vendor/libgit2/src/diff_driver.c +34 -36
  151. data/vendor/libgit2/src/diff_driver.h +3 -3
  152. data/vendor/libgit2/src/diff_file.c +29 -20
  153. data/vendor/libgit2/src/diff_generate.c +30 -6
  154. data/vendor/libgit2/src/diff_generate.h +5 -3
  155. data/vendor/libgit2/src/diff_print.c +102 -95
  156. data/vendor/libgit2/src/diff_stats.c +40 -29
  157. data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
  158. data/vendor/libgit2/src/diff_tform.c +9 -8
  159. data/vendor/libgit2/src/diff_xdiff.c +3 -8
  160. data/vendor/libgit2/src/email.c +54 -38
  161. data/vendor/libgit2/src/email.h +1 -1
  162. data/vendor/libgit2/src/errors.c +18 -18
  163. data/vendor/libgit2/src/features.h.in +6 -1
  164. data/vendor/libgit2/src/fetch.c +69 -24
  165. data/vendor/libgit2/src/fetch.h +1 -1
  166. data/vendor/libgit2/src/fetchhead.c +19 -19
  167. data/vendor/libgit2/src/filebuf.c +28 -28
  168. data/vendor/libgit2/src/filebuf.h +1 -1
  169. data/vendor/libgit2/src/filter.c +96 -52
  170. data/vendor/libgit2/src/filter.h +26 -5
  171. data/vendor/libgit2/src/fs_path.c +1912 -0
  172. data/vendor/libgit2/src/fs_path.h +752 -0
  173. data/vendor/libgit2/src/futils.c +91 -85
  174. data/vendor/libgit2/src/futils.h +26 -14
  175. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
  176. data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
  177. data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
  178. data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
  179. data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
  180. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
  181. data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
  182. data/vendor/libgit2/src/hash/sha1.h +3 -1
  183. data/vendor/libgit2/src/hash.c +67 -35
  184. data/vendor/libgit2/src/hash.h +12 -12
  185. data/vendor/libgit2/src/ident.c +18 -18
  186. data/vendor/libgit2/src/ignore.c +35 -34
  187. data/vendor/libgit2/src/ignore.h +2 -2
  188. data/vendor/libgit2/src/index.c +79 -80
  189. data/vendor/libgit2/src/index.h +6 -3
  190. data/vendor/libgit2/src/indexer.c +75 -57
  191. data/vendor/libgit2/src/iterator.c +64 -56
  192. data/vendor/libgit2/src/iterator.h +5 -5
  193. data/vendor/libgit2/src/khash.h +1 -1
  194. data/vendor/libgit2/src/libgit2.c +22 -19
  195. data/vendor/libgit2/src/mailmap.c +38 -36
  196. data/vendor/libgit2/src/merge.c +27 -27
  197. data/vendor/libgit2/src/merge.h +1 -14
  198. data/vendor/libgit2/src/merge_driver.c +2 -2
  199. data/vendor/libgit2/src/merge_file.c +13 -3
  200. data/vendor/libgit2/src/message.c +21 -10
  201. data/vendor/libgit2/src/midx.c +83 -66
  202. data/vendor/libgit2/src/midx.h +3 -3
  203. data/vendor/libgit2/src/mwindow.c +1 -1
  204. data/vendor/libgit2/src/net.c +278 -68
  205. data/vendor/libgit2/src/net.h +10 -3
  206. data/vendor/libgit2/src/netops.c +1 -1
  207. data/vendor/libgit2/src/netops.h +1 -1
  208. data/vendor/libgit2/src/notes.c +20 -29
  209. data/vendor/libgit2/src/object.c +49 -9
  210. data/vendor/libgit2/src/object.h +1 -1
  211. data/vendor/libgit2/src/odb.c +35 -32
  212. data/vendor/libgit2/src/odb.h +1 -1
  213. data/vendor/libgit2/src/odb_loose.c +68 -68
  214. data/vendor/libgit2/src/odb_mempack.c +18 -5
  215. data/vendor/libgit2/src/odb_pack.c +43 -43
  216. data/vendor/libgit2/src/oid.c +11 -4
  217. data/vendor/libgit2/src/oid.h +15 -0
  218. data/vendor/libgit2/src/pack-objects.c +41 -26
  219. data/vendor/libgit2/src/pack-objects.h +11 -6
  220. data/vendor/libgit2/src/pack.c +10 -10
  221. data/vendor/libgit2/src/patch.c +3 -3
  222. data/vendor/libgit2/src/patch.h +1 -0
  223. data/vendor/libgit2/src/patch_generate.c +27 -11
  224. data/vendor/libgit2/src/patch_generate.h +5 -5
  225. data/vendor/libgit2/src/patch_parse.c +24 -24
  226. data/vendor/libgit2/src/path.c +76 -1951
  227. data/vendor/libgit2/src/path.h +34 -741
  228. data/vendor/libgit2/src/pathspec.c +6 -6
  229. data/vendor/libgit2/src/pathspec.h +2 -2
  230. data/vendor/libgit2/src/posix.c +3 -3
  231. data/vendor/libgit2/src/posix.h +1 -0
  232. data/vendor/libgit2/src/pqueue.h +1 -1
  233. data/vendor/libgit2/src/proxy.c +4 -1
  234. data/vendor/libgit2/src/proxy.h +1 -1
  235. data/vendor/libgit2/src/push.c +30 -35
  236. data/vendor/libgit2/src/push.h +4 -16
  237. data/vendor/libgit2/src/rand.c +226 -0
  238. data/vendor/libgit2/src/rand.h +37 -0
  239. data/vendor/libgit2/src/reader.c +8 -8
  240. data/vendor/libgit2/src/reader.h +2 -2
  241. data/vendor/libgit2/src/rebase.c +89 -88
  242. data/vendor/libgit2/src/refdb_fs.c +447 -173
  243. data/vendor/libgit2/src/refs.c +32 -32
  244. data/vendor/libgit2/src/refs.h +2 -2
  245. data/vendor/libgit2/src/refspec.c +32 -37
  246. data/vendor/libgit2/src/refspec.h +5 -2
  247. data/vendor/libgit2/src/regexp.c +1 -1
  248. data/vendor/libgit2/src/remote.c +713 -419
  249. data/vendor/libgit2/src/remote.h +15 -10
  250. data/vendor/libgit2/src/repository.c +350 -467
  251. data/vendor/libgit2/src/repository.h +11 -10
  252. data/vendor/libgit2/src/reset.c +8 -5
  253. data/vendor/libgit2/src/revert.c +10 -10
  254. data/vendor/libgit2/src/revparse.c +48 -35
  255. data/vendor/libgit2/src/revwalk.c +7 -7
  256. data/vendor/libgit2/src/signature.c +12 -6
  257. data/vendor/libgit2/src/signature.h +1 -1
  258. data/vendor/libgit2/src/sortedcache.c +1 -1
  259. data/vendor/libgit2/src/sortedcache.h +1 -1
  260. data/vendor/libgit2/src/stash.c +36 -37
  261. data/vendor/libgit2/src/status.c +4 -1
  262. data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
  263. data/vendor/libgit2/src/str.h +357 -0
  264. data/vendor/libgit2/src/streams/mbedtls.c +8 -6
  265. data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
  266. data/vendor/libgit2/src/submodule.c +171 -159
  267. data/vendor/libgit2/src/submodule.h +1 -1
  268. data/vendor/libgit2/src/sysdir.c +68 -52
  269. data/vendor/libgit2/src/sysdir.h +15 -10
  270. data/vendor/libgit2/src/tag.c +29 -27
  271. data/vendor/libgit2/src/thread.h +3 -3
  272. data/vendor/libgit2/src/threadstate.c +3 -3
  273. data/vendor/libgit2/src/threadstate.h +1 -1
  274. data/vendor/libgit2/src/trace.c +1 -14
  275. data/vendor/libgit2/src/trace.h +5 -22
  276. data/vendor/libgit2/src/trailer.c +1 -1
  277. data/vendor/libgit2/src/transaction.c +1 -1
  278. data/vendor/libgit2/src/transport.c +10 -10
  279. data/vendor/libgit2/src/transports/auth.c +7 -9
  280. data/vendor/libgit2/src/transports/auth.h +2 -3
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
  283. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
  284. data/vendor/libgit2/src/transports/git.c +9 -11
  285. data/vendor/libgit2/src/transports/http.c +37 -17
  286. data/vendor/libgit2/src/transports/http.h +2 -3
  287. data/vendor/libgit2/src/transports/httpclient.c +65 -65
  288. data/vendor/libgit2/src/transports/local.c +124 -116
  289. data/vendor/libgit2/src/transports/smart.c +51 -139
  290. data/vendor/libgit2/src/transports/smart.h +25 -31
  291. data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
  292. data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
  293. data/vendor/libgit2/src/transports/ssh.c +47 -112
  294. data/vendor/libgit2/src/transports/winhttp.c +50 -56
  295. data/vendor/libgit2/src/tree-cache.c +5 -5
  296. data/vendor/libgit2/src/tree-cache.h +2 -2
  297. data/vendor/libgit2/src/tree.c +59 -48
  298. data/vendor/libgit2/src/tree.h +1 -1
  299. data/vendor/libgit2/src/unix/map.c +0 -2
  300. data/vendor/libgit2/src/unix/posix.h +1 -4
  301. data/vendor/libgit2/src/unix/realpath.c +0 -2
  302. data/vendor/libgit2/src/util.c +14 -14
  303. data/vendor/libgit2/src/util.h +2 -28
  304. data/vendor/libgit2/src/vector.h +1 -1
  305. data/vendor/libgit2/src/win32/findfile.c +172 -116
  306. data/vendor/libgit2/src/win32/findfile.h +7 -4
  307. data/vendor/libgit2/src/win32/path_w32.c +140 -9
  308. data/vendor/libgit2/src/win32/path_w32.h +2 -0
  309. data/vendor/libgit2/src/win32/posix.h +0 -1
  310. data/vendor/libgit2/src/win32/posix_w32.c +11 -27
  311. data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
  312. data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
  313. data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
  314. data/vendor/libgit2/src/worktree.c +116 -94
  315. data/vendor/libgit2/src/worktree.h +1 -1
  316. data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
  317. data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
  318. data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
  319. data/vendor/libgit2/src/xdiff/xemit.c +23 -7
  320. data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
  321. data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
  322. data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
  323. data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
  324. data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
  325. data/vendor/libgit2/src/xdiff/xutils.c +18 -7
  326. data/vendor/libgit2/src/zstream.c +5 -5
  327. data/vendor/libgit2/src/zstream.h +4 -4
  328. metadata +25 -10
  329. data/vendor/libgit2/src/buffer.h +0 -374
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include "tree.h"
11
11
  #include "index.h"
12
+ #include "path.h"
12
13
 
13
14
  #define GIT_ITERATOR_FIRST_ACCESS (1 << 15)
14
15
  #define GIT_ITERATOR_HONOR_IGNORES (1 << 16)
@@ -292,7 +293,7 @@ typedef enum {
292
293
  ITERATOR_PATHLIST_IS_FILE = 1,
293
294
  ITERATOR_PATHLIST_IS_DIR = 2,
294
295
  ITERATOR_PATHLIST_IS_PARENT = 3,
295
- ITERATOR_PATHLIST_FULL = 4,
296
+ ITERATOR_PATHLIST_FULL = 4
296
297
  } iterator_pathlist_search_t;
297
298
 
298
299
  static iterator_pathlist_search_t iterator_pathlist_search(
@@ -424,7 +425,7 @@ typedef struct {
424
425
  git_tree *tree;
425
426
 
426
427
  /* path to this particular frame (folder) */
427
- git_buf path;
428
+ git_str path;
428
429
 
429
430
  /* a sorted list of the entries for this frame (folder), these are
430
431
  * actually pointers to the iterator's entry pool.
@@ -441,7 +442,7 @@ typedef struct {
441
442
  * parent path.
442
443
  */
443
444
  git_vector similar_trees;
444
- git_array_t(git_buf) similar_paths;
445
+ git_array_t(git_str) similar_paths;
445
446
  } tree_iterator_frame;
446
447
 
447
448
  typedef struct {
@@ -450,7 +451,7 @@ typedef struct {
450
451
  git_array_t(tree_iterator_frame) frames;
451
452
 
452
453
  git_index_entry entry;
453
- git_buf entry_path;
454
+ git_str entry_path;
454
455
 
455
456
  /* a pool of entries to reduce the number of allocations */
456
457
  git_pool entry_pool;
@@ -472,7 +473,7 @@ GIT_INLINE(tree_iterator_frame *) tree_iterator_current_frame(
472
473
  GIT_INLINE(int) tree_entry_cmp(
473
474
  const git_tree_entry *a, const git_tree_entry *b, bool icase)
474
475
  {
475
- return git_path_cmp(
476
+ return git_fs_path_cmp(
476
477
  a->filename, a->filename_len, a->attr == GIT_FILEMODE_TREE,
477
478
  b->filename, b->filename_len, b->attr == GIT_FILEMODE_TREE,
478
479
  icase ? git__strncasecmp : git__strncmp);
@@ -508,20 +509,20 @@ static int tree_iterator_entry_sort_icase(const void *ptr_a, const void *ptr_b)
508
509
  }
509
510
 
510
511
  static int tree_iterator_compute_path(
511
- git_buf *out,
512
+ git_str *out,
512
513
  tree_iterator_entry *entry)
513
514
  {
514
- git_buf_clear(out);
515
+ git_str_clear(out);
515
516
 
516
517
  if (entry->parent_path)
517
- git_buf_joinpath(out, entry->parent_path, entry->tree_entry->filename);
518
+ git_str_joinpath(out, entry->parent_path, entry->tree_entry->filename);
518
519
  else
519
- git_buf_puts(out, entry->tree_entry->filename);
520
+ git_str_puts(out, entry->tree_entry->filename);
520
521
 
521
522
  if (git_tree_entry__is_tree(entry->tree_entry))
522
- git_buf_putc(out, '/');
523
+ git_str_putc(out, '/');
523
524
 
524
- if (git_buf_oom(out))
525
+ if (git_str_oom(out))
525
526
  return -1;
526
527
 
527
528
  return 0;
@@ -601,7 +602,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
601
602
  tree_iterator_entry *entry, *new_entry;
602
603
  git_tree *tree = NULL;
603
604
  git_tree_entry *tree_entry;
604
- git_buf *path;
605
+ git_str *path;
605
606
  size_t new_size, i;
606
607
  int error = 0;
607
608
 
@@ -621,7 +622,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
621
622
  path = git_array_alloc(parent_frame->similar_paths);
622
623
  GIT_ERROR_CHECK_ALLOC(path);
623
624
 
624
- memset(path, 0, sizeof(git_buf));
625
+ memset(path, 0, sizeof(git_str));
625
626
 
626
627
  if ((error = tree_iterator_compute_path(path, entry)) < 0)
627
628
  break;
@@ -681,7 +682,7 @@ done:
681
682
  static int tree_iterator_frame_pop(tree_iterator *iter)
682
683
  {
683
684
  tree_iterator_frame *frame;
684
- git_buf *buf = NULL;
685
+ git_str *buf = NULL;
685
686
  git_tree *tree;
686
687
  size_t i;
687
688
 
@@ -694,7 +695,7 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
694
695
 
695
696
  do {
696
697
  buf = git_array_pop(frame->similar_paths);
697
- git_buf_dispose(buf);
698
+ git_str_dispose(buf);
698
699
  } while (buf != NULL);
699
700
 
700
701
  git_array_clear(frame->similar_paths);
@@ -704,7 +705,7 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
704
705
 
705
706
  git_vector_free(&frame->similar_trees);
706
707
 
707
- git_buf_dispose(&frame->path);
708
+ git_str_dispose(&frame->path);
708
709
 
709
710
  return 0;
710
711
  }
@@ -892,7 +893,7 @@ static void tree_iterator_clear(tree_iterator *iter)
892
893
  git_array_clear(iter->frames);
893
894
 
894
895
  git_pool_clear(&iter->entry_pool);
895
- git_buf_clear(&iter->entry_path);
896
+ git_str_clear(&iter->entry_path);
896
897
 
897
898
  iterator_clear(&iter->base);
898
899
  }
@@ -925,7 +926,7 @@ static void tree_iterator_free(git_iterator *i)
925
926
  tree_iterator_clear(iter);
926
927
 
927
928
  git_tree_free(iter->root);
928
- git_buf_dispose(&iter->entry_path);
929
+ git_str_dispose(&iter->entry_path);
929
930
  }
930
931
 
931
932
  int git_iterator_for_tree(
@@ -1040,11 +1041,11 @@ typedef struct {
1040
1041
 
1041
1042
  /* info about the current entry */
1042
1043
  git_index_entry entry;
1043
- git_buf current_path;
1044
+ git_str current_path;
1044
1045
  int current_is_ignored;
1045
1046
 
1046
1047
  /* temporary buffer for advance_over */
1047
- git_buf tmp_buf;
1048
+ git_str tmp_buf;
1048
1049
  } filesystem_iterator;
1049
1050
 
1050
1051
 
@@ -1266,7 +1267,7 @@ static int filesystem_iterator_entry_hash(
1266
1267
  filesystem_iterator *iter,
1267
1268
  filesystem_iterator_entry *entry)
1268
1269
  {
1269
- git_buf fullpath = GIT_BUF_INIT;
1270
+ git_str fullpath = GIT_STR_INIT;
1270
1271
  int error;
1271
1272
 
1272
1273
  if (S_ISDIR(entry->st.st_mode)) {
@@ -1278,11 +1279,11 @@ static int filesystem_iterator_entry_hash(
1278
1279
  return git_repository_hashfile(&entry->id,
1279
1280
  iter->base.repo, entry->path, GIT_OBJECT_BLOB, NULL);
1280
1281
 
1281
- if (!(error = git_buf_joinpath(&fullpath, iter->root, entry->path)) &&
1282
- !(error = git_path_validate_workdir_buf(iter->base.repo, &fullpath)))
1282
+ if (!(error = git_str_joinpath(&fullpath, iter->root, entry->path)) &&
1283
+ !(error = git_path_validate_str_length(iter->base.repo, &fullpath)))
1283
1284
  error = git_odb_hashfile(&entry->id, fullpath.ptr, GIT_OBJECT_BLOB);
1284
1285
 
1285
- git_buf_dispose(&fullpath);
1286
+ git_str_dispose(&fullpath);
1286
1287
  return error;
1287
1288
  }
1288
1289
 
@@ -1336,8 +1337,8 @@ static int filesystem_iterator_frame_push(
1336
1337
  filesystem_iterator_entry *frame_entry)
1337
1338
  {
1338
1339
  filesystem_iterator_frame *new_frame = NULL;
1339
- git_path_diriter diriter = GIT_PATH_DIRITER_INIT;
1340
- git_buf root = GIT_BUF_INIT;
1340
+ git_fs_path_diriter diriter = GIT_FS_PATH_DIRITER_INIT;
1341
+ git_str root = GIT_STR_INIT;
1341
1342
  const char *path;
1342
1343
  filesystem_iterator_entry *entry;
1343
1344
  struct stat statbuf;
@@ -1356,12 +1357,12 @@ static int filesystem_iterator_frame_push(
1356
1357
  memset(new_frame, 0, sizeof(filesystem_iterator_frame));
1357
1358
 
1358
1359
  if (frame_entry)
1359
- git_buf_joinpath(&root, iter->root, frame_entry->path);
1360
+ git_str_joinpath(&root, iter->root, frame_entry->path);
1360
1361
  else
1361
- git_buf_puts(&root, iter->root);
1362
+ git_str_puts(&root, iter->root);
1362
1363
 
1363
- if (git_buf_oom(&root) ||
1364
- git_path_validate_workdir_buf(iter->base.repo, &root) < 0) {
1364
+ if (git_str_oom(&root) ||
1365
+ git_path_validate_str_length(iter->base.repo, &root) < 0) {
1365
1366
  error = -1;
1366
1367
  goto done;
1367
1368
  }
@@ -1369,7 +1370,7 @@ static int filesystem_iterator_frame_push(
1369
1370
  new_frame->path_len = frame_entry ? frame_entry->path_len : 0;
1370
1371
 
1371
1372
  /* Any error here is equivalent to the dir not existing, skip over it */
1372
- if ((error = git_path_diriter_init(
1373
+ if ((error = git_fs_path_diriter_init(
1373
1374
  &diriter, root.ptr, iter->dirload_flags)) < 0) {
1374
1375
  error = GIT_ENOTFOUND;
1375
1376
  goto done;
@@ -1387,12 +1388,18 @@ static int filesystem_iterator_frame_push(
1387
1388
  /* check if this directory is ignored */
1388
1389
  filesystem_iterator_frame_push_ignores(iter, frame_entry, new_frame);
1389
1390
 
1390
- while ((error = git_path_diriter_next(&diriter)) == 0) {
1391
+ while ((error = git_fs_path_diriter_next(&diriter)) == 0) {
1391
1392
  iterator_pathlist_search_t pathlist_match = ITERATOR_PATHLIST_FULL;
1393
+ git_str path_str = GIT_STR_INIT;
1392
1394
  bool dir_expected = false;
1393
1395
 
1394
- if ((error = git_path_diriter_fullpath(&path, &path_len, &diriter)) < 0 ||
1395
- (error = git_path_validate_workdir_with_len(iter->base.repo, path, path_len)) < 0)
1396
+ if ((error = git_fs_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
1397
+ goto done;
1398
+
1399
+ path_str.ptr = (char *)path;
1400
+ path_str.size = path_len;
1401
+
1402
+ if ((error = git_path_validate_str_length(iter->base.repo, &path_str)) < 0)
1396
1403
  goto done;
1397
1404
 
1398
1405
  GIT_ASSERT(path_len > iter->root_len);
@@ -1414,7 +1421,7 @@ static int filesystem_iterator_frame_push(
1414
1421
  * we have an index, we can just copy the data out of it.
1415
1422
  */
1416
1423
 
1417
- if ((error = git_path_diriter_stat(&statbuf, &diriter)) < 0) {
1424
+ if ((error = git_fs_path_diriter_stat(&statbuf, &diriter)) < 0) {
1418
1425
  /* file was removed between readdir and lstat */
1419
1426
  if (error == GIT_ENOTFOUND)
1420
1427
  continue;
@@ -1471,8 +1478,8 @@ done:
1471
1478
  if (error < 0)
1472
1479
  git_array_pop(iter->frames);
1473
1480
 
1474
- git_buf_dispose(&root);
1475
- git_path_diriter_free(&diriter);
1481
+ git_str_dispose(&root);
1482
+ git_fs_path_diriter_free(&diriter);
1476
1483
  return error;
1477
1484
  }
1478
1485
 
@@ -1551,7 +1558,7 @@ static int filesystem_iterator_is_dir(
1551
1558
  const filesystem_iterator_entry *entry)
1552
1559
  {
1553
1560
  struct stat st;
1554
- git_buf fullpath = GIT_BUF_INIT;
1561
+ git_str fullpath = GIT_STR_INIT;
1555
1562
  int error = 0;
1556
1563
 
1557
1564
  if (S_ISDIR(entry->st.st_mode)) {
@@ -1564,15 +1571,15 @@ static int filesystem_iterator_is_dir(
1564
1571
  goto done;
1565
1572
  }
1566
1573
 
1567
- if ((error = git_buf_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
1568
- (error = git_path_validate_workdir_buf(iter->base.repo, &fullpath)) < 0 ||
1574
+ if ((error = git_str_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
1575
+ (error = git_path_validate_str_length(iter->base.repo, &fullpath)) < 0 ||
1569
1576
  (error = p_stat(fullpath.ptr, &st)) < 0)
1570
1577
  goto done;
1571
1578
 
1572
1579
  *is_dir = S_ISDIR(st.st_mode);
1573
1580
 
1574
1581
  done:
1575
- git_buf_dispose(&fullpath);
1582
+ git_str_dispose(&fullpath);
1576
1583
  return error;
1577
1584
  }
1578
1585
 
@@ -1673,7 +1680,7 @@ static int filesystem_iterator_advance_into(
1673
1680
  return filesystem_iterator_advance(out, i);
1674
1681
  }
1675
1682
 
1676
- int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
1683
+ int git_iterator_current_workdir_path(git_str **out, git_iterator *i)
1677
1684
  {
1678
1685
  filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
1679
1686
  const git_index_entry *entry;
@@ -1684,10 +1691,10 @@ int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
1684
1691
  return 0;
1685
1692
  }
1686
1693
 
1687
- git_buf_truncate(&iter->current_path, iter->root_len);
1694
+ git_str_truncate(&iter->current_path, iter->root_len);
1688
1695
 
1689
1696
  if (git_iterator_current(&entry, i) < 0 ||
1690
- git_buf_puts(&iter->current_path, entry->path) < 0)
1697
+ git_str_puts(&iter->current_path, entry->path) < 0)
1691
1698
  return -1;
1692
1699
 
1693
1700
  *out = &iter->current_path;
@@ -1790,8 +1797,8 @@ static int filesystem_iterator_advance_over(
1790
1797
  return filesystem_iterator_advance(out, i);
1791
1798
  }
1792
1799
 
1793
- git_buf_clear(&iter->tmp_buf);
1794
- if ((error = git_buf_puts(&iter->tmp_buf, entry->path)) < 0)
1800
+ git_str_clear(&iter->tmp_buf);
1801
+ if ((error = git_str_puts(&iter->tmp_buf, entry->path)) < 0)
1795
1802
  return error;
1796
1803
 
1797
1804
  base = iter->tmp_buf.ptr;
@@ -1858,7 +1865,7 @@ static void filesystem_iterator_clear(filesystem_iterator *iter)
1858
1865
  git_array_clear(iter->frames);
1859
1866
  git_ignore__free(&iter->ignores);
1860
1867
 
1861
- git_buf_dispose(&iter->tmp_buf);
1868
+ git_str_dispose(&iter->tmp_buf);
1862
1869
 
1863
1870
  iterator_clear(&iter->base);
1864
1871
  }
@@ -1892,7 +1899,7 @@ static void filesystem_iterator_free(git_iterator *i)
1892
1899
  {
1893
1900
  filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
1894
1901
  git__free(iter->root);
1895
- git_buf_dispose(&iter->current_path);
1902
+ git_str_dispose(&iter->current_path);
1896
1903
  git_tree_free(iter->tree);
1897
1904
  if (iter->index)
1898
1905
  git_index_snapshot_release(&iter->index_snapshot, iter->index);
@@ -1946,7 +1953,7 @@ static int iterator_for_filesystem(
1946
1953
  iter->root[root_len] = '\0';
1947
1954
  iter->root_len = root_len;
1948
1955
 
1949
- if ((error = git_buf_puts(&iter->current_path, iter->root)) < 0)
1956
+ if ((error = git_str_puts(&iter->current_path, iter->root)) < 0)
1950
1957
  goto on_error;
1951
1958
 
1952
1959
  if ((error = iterator_init_common(&iter->base, repo, index, options)) < 0)
@@ -1961,9 +1968,10 @@ static int iterator_for_filesystem(
1961
1968
 
1962
1969
  iter->index = index;
1963
1970
  iter->dirload_flags =
1964
- (iterator__ignore_case(&iter->base) ? GIT_PATH_DIR_IGNORE_CASE : 0) |
1971
+ (iterator__ignore_case(&iter->base) ?
1972
+ GIT_FS_PATH_DIR_IGNORE_CASE : 0) |
1965
1973
  (iterator__flag(&iter->base, PRECOMPOSE_UNICODE) ?
1966
- GIT_PATH_DIR_PRECOMPOSE_UNICODE : 0);
1974
+ GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE : 0);
1967
1975
 
1968
1976
  if ((error = filesystem_iterator_init(iter)) < 0)
1969
1977
  goto on_error;
@@ -2024,7 +2032,7 @@ typedef struct {
2024
2032
 
2025
2033
  /* the pseudotree entry */
2026
2034
  git_index_entry tree_entry;
2027
- git_buf tree_buf;
2035
+ git_str tree_buf;
2028
2036
  bool skip_tree;
2029
2037
 
2030
2038
  const git_index_entry *entry;
@@ -2058,14 +2066,14 @@ static bool index_iterator_create_pseudotree(
2058
2066
  prev_path = iter->entry ? iter->entry->path : "";
2059
2067
 
2060
2068
  /* determine if the new path is in a different directory from the old */
2061
- common_len = git_path_common_dirlen(prev_path, path);
2069
+ common_len = git_fs_path_common_dirlen(prev_path, path);
2062
2070
  relative_path = path + common_len;
2063
2071
 
2064
2072
  if ((dirsep = strchr(relative_path, '/')) == NULL)
2065
2073
  return false;
2066
2074
 
2067
- git_buf_clear(&iter->tree_buf);
2068
- git_buf_put(&iter->tree_buf, path, (dirsep - path) + 1);
2075
+ git_str_clear(&iter->tree_buf);
2076
+ git_str_put(&iter->tree_buf, path, (dirsep - path) + 1);
2069
2077
 
2070
2078
  iter->tree_entry.mode = GIT_FILEMODE_TREE;
2071
2079
  iter->tree_entry.path = iter->tree_buf.ptr;
@@ -2230,7 +2238,7 @@ static void index_iterator_free(git_iterator *i)
2230
2238
  index_iterator *iter = GIT_CONTAINER_OF(i, index_iterator, base);
2231
2239
 
2232
2240
  git_index_snapshot_release(&iter->entries, iter->base.index);
2233
- git_buf_dispose(&iter->tree_buf);
2241
+ git_str_dispose(&iter->tree_buf);
2234
2242
  }
2235
2243
 
2236
2244
  int git_iterator_for_index(
@@ -11,7 +11,7 @@
11
11
 
12
12
  #include "git2/index.h"
13
13
  #include "vector.h"
14
- #include "buffer.h"
14
+ #include "str.h"
15
15
  #include "ignore.h"
16
16
 
17
17
  typedef struct git_iterator git_iterator;
@@ -21,7 +21,7 @@ typedef enum {
21
21
  GIT_ITERATOR_TREE = 1,
22
22
  GIT_ITERATOR_INDEX = 2,
23
23
  GIT_ITERATOR_WORKDIR = 3,
24
- GIT_ITERATOR_FS = 4,
24
+ GIT_ITERATOR_FS = 4
25
25
  } git_iterator_t;
26
26
 
27
27
  typedef enum {
@@ -42,7 +42,7 @@ typedef enum {
42
42
  /** descend into symlinked directories */
43
43
  GIT_ITERATOR_DESCEND_SYMLINKS = (1u << 7),
44
44
  /** hash files in workdir or filesystem iterators */
45
- GIT_ITERATOR_INCLUDE_HASH = (1u << 8),
45
+ GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
46
46
  } git_iterator_flag_t;
47
47
 
48
48
  typedef enum {
@@ -278,11 +278,11 @@ extern bool git_iterator_current_tree_is_ignored(git_iterator *iter);
278
278
 
279
279
  /**
280
280
  * Get full path of the current item from a workdir iterator. This will
281
- * return NULL for a non-workdir iterator. The git_buf is still owned by
281
+ * return NULL for a non-workdir iterator. The git_str is still owned by
282
282
  * the iterator; this is exposed just for efficiency.
283
283
  */
284
284
  extern int git_iterator_current_workdir_path(
285
- git_buf **path, git_iterator *iter);
285
+ git_str **path, git_iterator *iter);
286
286
 
287
287
  /**
288
288
  * Retrieve the index stored in the iterator.
@@ -564,7 +564,7 @@ static kh_inline khint_t __ac_Wang_hash(khint_t key)
564
564
  code; \
565
565
  } }
566
566
 
567
- /* More conenient interfaces */
567
+ /* More convenient interfaces */
568
568
 
569
569
  /*! @function
570
570
  @abstract Instantiate a hash set containing integer keys
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include <git2.h>
11
11
  #include "alloc.h"
12
+ #include "buf.h"
12
13
  #include "cache.h"
13
14
  #include "common.h"
14
15
  #include "filter.h"
@@ -19,6 +20,7 @@
19
20
  #include "mwindow.h"
20
21
  #include "object.h"
21
22
  #include "odb.h"
23
+ #include "rand.h"
22
24
  #include "refs.h"
23
25
  #include "runtime.h"
24
26
  #include "sysdir.h"
@@ -69,6 +71,7 @@ int git_libgit2_init(void)
69
71
  git_allocator_global_init,
70
72
  git_threadstate_global_init,
71
73
  git_threads_global_init,
74
+ git_rand_global_init,
72
75
  git_hash_global_init,
73
76
  git_sysdir_global_init,
74
77
  git_filter_global_init,
@@ -192,15 +195,17 @@ int git_libgit2_opts(int key, ...)
192
195
  {
193
196
  int sysdir = va_arg(ap, int);
194
197
  git_buf *out = va_arg(ap, git_buf *);
195
- const git_buf *tmp;
198
+ git_str str = GIT_STR_INIT;
199
+ const git_str *tmp;
196
200
  int level;
197
201
 
198
- if ((error = config_level_to_sysdir(&level, sysdir)) < 0 ||
199
- (error = git_buf_sanitize(out)) < 0 ||
200
- (error = git_sysdir_get(&tmp, level)) < 0)
202
+ if ((error = git_buf_tostr(&str, out)) < 0 ||
203
+ (error = config_level_to_sysdir(&level, sysdir)) < 0 ||
204
+ (error = git_sysdir_get(&tmp, level)) < 0 ||
205
+ (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
201
206
  break;
202
207
 
203
- error = git_buf_sets(out, tmp->ptr);
208
+ error = git_buf_fromstr(out, &str);
204
209
  }
205
210
  break;
206
211
 
@@ -237,13 +242,15 @@ int git_libgit2_opts(int key, ...)
237
242
  case GIT_OPT_GET_TEMPLATE_PATH:
238
243
  {
239
244
  git_buf *out = va_arg(ap, git_buf *);
240
- const git_buf *tmp;
245
+ git_str str = GIT_STR_INIT;
246
+ const git_str *tmp;
241
247
 
242
- if ((error = git_buf_sanitize(out)) < 0 ||
243
- (error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0)
248
+ if ((error = git_buf_tostr(&str, out)) < 0 ||
249
+ (error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0 ||
250
+ (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
244
251
  break;
245
252
 
246
- error = git_buf_sets(out, tmp->ptr);
253
+ error = git_buf_fromstr(out, &str);
247
254
  }
248
255
  break;
249
256
 
@@ -306,9 +313,13 @@ int git_libgit2_opts(int key, ...)
306
313
  case GIT_OPT_GET_USER_AGENT:
307
314
  {
308
315
  git_buf *out = va_arg(ap, git_buf *);
309
- if ((error = git_buf_sanitize(out)) < 0)
316
+ git_str str = GIT_STR_INIT;
317
+
318
+ if ((error = git_buf_tostr(&str, out)) < 0 ||
319
+ (error = git_str_puts(&str, git__user_agent)) < 0)
310
320
  break;
311
- error = git_buf_sets(out, git__user_agent);
321
+
322
+ error = git_buf_fromstr(out, &str);
312
323
  }
313
324
  break;
314
325
 
@@ -390,14 +401,6 @@ int git_libgit2_opts(int key, ...)
390
401
  }
391
402
  break;
392
403
 
393
- case GIT_OPT_GET_OWNER_VALIDATION:
394
- *(va_arg(ap, int *)) = git_repository__validate_ownership;
395
- break;
396
-
397
- case GIT_OPT_SET_OWNER_VALIDATION:
398
- git_repository__validate_ownership = (va_arg(ap, int) != 0);
399
- break;
400
-
401
404
  default:
402
405
  git_error_set(GIT_ERROR_INVALID, "invalid option key");
403
406
  error = -1;