rugged 1.0.0 → 1.2.0

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 (338) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +3 -3
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_commit.c +1 -1
  6. data/ext/rugged/rugged_config.c +1 -1
  7. data/ext/rugged/rugged_object.c +1 -1
  8. data/ext/rugged/rugged_remote.c +32 -2
  9. data/ext/rugged/rugged_repo.c +13 -3
  10. data/lib/rugged/commit.rb +17 -4
  11. data/lib/rugged/repository.rb +7 -8
  12. data/lib/rugged/submodule_collection.rb +4 -4
  13. data/lib/rugged/version.rb +1 -1
  14. data/vendor/libgit2/CMakeLists.txt +41 -74
  15. data/vendor/libgit2/COPYING +109 -1
  16. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  23. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  24. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  25. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  26. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  27. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  28. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  29. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  30. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  31. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  32. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  33. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  34. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
  35. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
  36. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  37. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  38. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
  39. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  40. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  41. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  42. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  43. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  44. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  45. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  46. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  47. data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
  48. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  49. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  50. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  51. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  52. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  53. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  54. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  55. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  56. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  57. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  58. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  59. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  60. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  61. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  62. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  63. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  64. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  65. data/vendor/libgit2/include/git2/apply.h +2 -0
  66. data/vendor/libgit2/include/git2/attr.h +89 -0
  67. data/vendor/libgit2/include/git2/blame.h +95 -42
  68. data/vendor/libgit2/include/git2/blob.h +31 -3
  69. data/vendor/libgit2/include/git2/branch.h +25 -0
  70. data/vendor/libgit2/include/git2/cert.h +42 -5
  71. data/vendor/libgit2/include/git2/checkout.h +28 -12
  72. data/vendor/libgit2/include/git2/commit.h +35 -19
  73. data/vendor/libgit2/include/git2/common.h +33 -6
  74. data/vendor/libgit2/include/git2/config.h +1 -1
  75. data/vendor/libgit2/include/git2/deprecated.h +248 -8
  76. data/vendor/libgit2/include/git2/diff.h +35 -20
  77. data/vendor/libgit2/include/git2/errors.h +8 -7
  78. data/vendor/libgit2/include/git2/filter.h +57 -17
  79. data/vendor/libgit2/include/git2/graph.h +20 -2
  80. data/vendor/libgit2/include/git2/index.h +4 -5
  81. data/vendor/libgit2/include/git2/indexer.h +2 -1
  82. data/vendor/libgit2/include/git2/odb.h +44 -20
  83. data/vendor/libgit2/include/git2/pack.h +1 -1
  84. data/vendor/libgit2/include/git2/patch.h +8 -0
  85. data/vendor/libgit2/include/git2/rebase.h +25 -1
  86. data/vendor/libgit2/include/git2/refs.h +9 -5
  87. data/vendor/libgit2/include/git2/remote.h +59 -6
  88. data/vendor/libgit2/include/git2/repository.h +95 -52
  89. data/vendor/libgit2/include/git2/revparse.h +5 -5
  90. data/vendor/libgit2/include/git2/status.h +115 -59
  91. data/vendor/libgit2/include/git2/strarray.h +6 -10
  92. data/vendor/libgit2/include/git2/submodule.h +9 -0
  93. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  94. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  95. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  96. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  97. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  98. data/vendor/libgit2/include/git2/tag.h +12 -0
  99. data/vendor/libgit2/include/git2/transport.h +1 -1
  100. data/vendor/libgit2/include/git2/tree.h +2 -14
  101. data/vendor/libgit2/include/git2/types.h +9 -0
  102. data/vendor/libgit2/include/git2/version.h +3 -3
  103. data/vendor/libgit2/include/git2/worktree.h +1 -0
  104. data/vendor/libgit2/src/CMakeLists.txt +77 -44
  105. data/vendor/libgit2/src/alloc.c +21 -8
  106. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  107. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  108. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  109. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  110. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  111. data/vendor/libgit2/src/annotated_commit.c +21 -9
  112. data/vendor/libgit2/src/apply.c +21 -8
  113. data/vendor/libgit2/src/array.h +11 -11
  114. data/vendor/libgit2/src/assert_safe.h +58 -0
  115. data/vendor/libgit2/src/attr.c +181 -74
  116. data/vendor/libgit2/src/attr_file.c +92 -42
  117. data/vendor/libgit2/src/attr_file.h +32 -11
  118. data/vendor/libgit2/src/attrcache.c +44 -40
  119. data/vendor/libgit2/src/attrcache.h +4 -5
  120. data/vendor/libgit2/src/blame.c +28 -15
  121. data/vendor/libgit2/src/blame_git.c +6 -3
  122. data/vendor/libgit2/src/blob.c +46 -24
  123. data/vendor/libgit2/src/branch.c +87 -37
  124. data/vendor/libgit2/src/buffer.c +339 -27
  125. data/vendor/libgit2/src/buffer.h +153 -2
  126. data/vendor/libgit2/src/cache.c +3 -24
  127. data/vendor/libgit2/src/cache.h +7 -7
  128. data/vendor/libgit2/src/cc-compat.h +10 -2
  129. data/vendor/libgit2/src/checkout.c +97 -98
  130. data/vendor/libgit2/src/cherrypick.c +8 -2
  131. data/vendor/libgit2/src/clone.c +104 -29
  132. data/vendor/libgit2/src/commit.c +41 -28
  133. data/vendor/libgit2/src/commit_graph.c +1209 -0
  134. data/vendor/libgit2/src/commit_graph.h +162 -0
  135. data/vendor/libgit2/src/commit_list.c +46 -0
  136. data/vendor/libgit2/src/commit_list.h +2 -0
  137. data/vendor/libgit2/src/common.h +26 -2
  138. data/vendor/libgit2/src/config.c +40 -22
  139. data/vendor/libgit2/src/config_cache.c +9 -4
  140. data/vendor/libgit2/src/config_entries.c +35 -27
  141. data/vendor/libgit2/src/config_file.c +25 -8
  142. data/vendor/libgit2/src/config_parse.c +5 -7
  143. data/vendor/libgit2/src/config_snapshot.c +2 -1
  144. data/vendor/libgit2/src/crlf.c +16 -6
  145. data/vendor/libgit2/src/date.c +4 -3
  146. data/vendor/libgit2/src/delta.c +1 -1
  147. data/vendor/libgit2/src/describe.c +11 -4
  148. data/vendor/libgit2/src/diff.c +23 -19
  149. data/vendor/libgit2/src/diff_driver.c +21 -17
  150. data/vendor/libgit2/src/diff_file.c +5 -7
  151. data/vendor/libgit2/src/diff_generate.c +56 -28
  152. data/vendor/libgit2/src/diff_parse.c +2 -3
  153. data/vendor/libgit2/src/diff_print.c +81 -65
  154. data/vendor/libgit2/src/diff_stats.c +19 -16
  155. data/vendor/libgit2/src/diff_tform.c +13 -13
  156. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  157. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  158. data/vendor/libgit2/src/errors.c +26 -19
  159. data/vendor/libgit2/src/features.h.in +5 -1
  160. data/vendor/libgit2/src/fetch.c +7 -2
  161. data/vendor/libgit2/src/fetchhead.c +8 -4
  162. data/vendor/libgit2/src/filebuf.c +9 -7
  163. data/vendor/libgit2/src/filter.c +209 -113
  164. data/vendor/libgit2/src/filter.h +24 -5
  165. data/vendor/libgit2/src/futils.c +8 -8
  166. data/vendor/libgit2/src/futils.h +4 -4
  167. data/vendor/libgit2/src/graph.c +64 -9
  168. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  169. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  170. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  171. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  172. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  173. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  174. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  175. data/vendor/libgit2/src/hash.c +16 -13
  176. data/vendor/libgit2/src/hash.h +1 -1
  177. data/vendor/libgit2/src/hashsig.c +23 -10
  178. data/vendor/libgit2/src/ident.c +13 -3
  179. data/vendor/libgit2/src/idxmap.c +0 -22
  180. data/vendor/libgit2/src/ignore.c +35 -19
  181. data/vendor/libgit2/src/index.c +126 -84
  182. data/vendor/libgit2/src/index.h +1 -1
  183. data/vendor/libgit2/src/indexer.c +60 -36
  184. data/vendor/libgit2/src/integer.h +79 -2
  185. data/vendor/libgit2/src/iterator.c +40 -28
  186. data/vendor/libgit2/src/iterator.h +1 -1
  187. data/vendor/libgit2/src/khash.h +2 -11
  188. data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
  189. data/vendor/libgit2/src/libgit2.h +15 -0
  190. data/vendor/libgit2/src/mailmap.c +23 -10
  191. data/vendor/libgit2/src/map.h +3 -3
  192. data/vendor/libgit2/src/merge.c +108 -46
  193. data/vendor/libgit2/src/merge.h +2 -1
  194. data/vendor/libgit2/src/merge_driver.c +19 -13
  195. data/vendor/libgit2/src/merge_file.c +15 -9
  196. data/vendor/libgit2/src/message.c +3 -1
  197. data/vendor/libgit2/src/midx.c +879 -0
  198. data/vendor/libgit2/src/midx.h +110 -0
  199. data/vendor/libgit2/src/mwindow.c +214 -95
  200. data/vendor/libgit2/src/mwindow.h +3 -3
  201. data/vendor/libgit2/src/net.c +133 -4
  202. data/vendor/libgit2/src/net.h +16 -2
  203. data/vendor/libgit2/src/netops.c +6 -4
  204. data/vendor/libgit2/src/netops.h +2 -2
  205. data/vendor/libgit2/src/notes.c +10 -10
  206. data/vendor/libgit2/src/object.c +24 -15
  207. data/vendor/libgit2/src/odb.c +298 -57
  208. data/vendor/libgit2/src/odb.h +16 -2
  209. data/vendor/libgit2/src/odb_loose.c +31 -21
  210. data/vendor/libgit2/src/odb_mempack.c +3 -1
  211. data/vendor/libgit2/src/odb_pack.c +391 -114
  212. data/vendor/libgit2/src/oid.c +7 -4
  213. data/vendor/libgit2/src/pack-objects.c +83 -69
  214. data/vendor/libgit2/src/pack.c +383 -150
  215. data/vendor/libgit2/src/pack.h +44 -9
  216. data/vendor/libgit2/src/patch.c +14 -7
  217. data/vendor/libgit2/src/patch_generate.c +3 -5
  218. data/vendor/libgit2/src/patch_parse.c +6 -3
  219. data/vendor/libgit2/src/path.c +102 -57
  220. data/vendor/libgit2/src/path.h +79 -6
  221. data/vendor/libgit2/src/pathspec.c +12 -11
  222. data/vendor/libgit2/src/pool.c +34 -22
  223. data/vendor/libgit2/src/pool.h +9 -1
  224. data/vendor/libgit2/src/posix.c +43 -12
  225. data/vendor/libgit2/src/posix.h +9 -0
  226. data/vendor/libgit2/src/proxy.c +2 -0
  227. data/vendor/libgit2/src/push.c +2 -0
  228. data/vendor/libgit2/src/reader.c +10 -6
  229. data/vendor/libgit2/src/rebase.c +95 -49
  230. data/vendor/libgit2/src/refdb.c +165 -13
  231. data/vendor/libgit2/src/refdb.h +69 -0
  232. data/vendor/libgit2/src/refdb_fs.c +144 -152
  233. data/vendor/libgit2/src/reflog.c +21 -20
  234. data/vendor/libgit2/src/refs.c +151 -231
  235. data/vendor/libgit2/src/refs.h +2 -20
  236. data/vendor/libgit2/src/refspec.c +80 -44
  237. data/vendor/libgit2/src/regexp.c +2 -2
  238. data/vendor/libgit2/src/remote.c +312 -121
  239. data/vendor/libgit2/src/remote.h +2 -1
  240. data/vendor/libgit2/src/repository.c +351 -189
  241. data/vendor/libgit2/src/repository.h +23 -29
  242. data/vendor/libgit2/src/reset.c +7 -6
  243. data/vendor/libgit2/src/revert.c +8 -2
  244. data/vendor/libgit2/src/revparse.c +19 -13
  245. data/vendor/libgit2/src/revwalk.c +35 -20
  246. data/vendor/libgit2/src/runtime.c +162 -0
  247. data/vendor/libgit2/src/runtime.h +62 -0
  248. data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
  249. data/vendor/libgit2/src/signature.c +6 -5
  250. data/vendor/libgit2/src/sortedcache.c +2 -3
  251. data/vendor/libgit2/src/sortedcache.h +10 -8
  252. data/vendor/libgit2/src/stash.c +7 -3
  253. data/vendor/libgit2/src/status.c +9 -4
  254. data/vendor/libgit2/src/strarray.c +64 -0
  255. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  256. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  257. data/vendor/libgit2/src/streams/openssl.c +113 -207
  258. data/vendor/libgit2/src/streams/openssl.h +9 -1
  259. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  260. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  261. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  262. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  263. data/vendor/libgit2/src/streams/registry.c +10 -9
  264. data/vendor/libgit2/src/streams/socket.c +6 -2
  265. data/vendor/libgit2/src/streams/stransport.c +6 -3
  266. data/vendor/libgit2/src/streams/tls.c +5 -3
  267. data/vendor/libgit2/src/submodule.c +134 -66
  268. data/vendor/libgit2/src/submodule.h +9 -9
  269. data/vendor/libgit2/src/sysdir.c +8 -26
  270. data/vendor/libgit2/src/sysdir.h +0 -11
  271. data/vendor/libgit2/src/tag.c +49 -11
  272. data/vendor/libgit2/src/thread.c +140 -0
  273. data/vendor/libgit2/src/thread.h +479 -0
  274. data/vendor/libgit2/src/threadstate.c +83 -0
  275. data/vendor/libgit2/src/threadstate.h +24 -0
  276. data/vendor/libgit2/src/trace.c +2 -2
  277. data/vendor/libgit2/src/trace.h +17 -13
  278. data/vendor/libgit2/src/transaction.c +21 -9
  279. data/vendor/libgit2/src/transport.c +3 -3
  280. data/vendor/libgit2/src/transports/auth.c +1 -1
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  283. data/vendor/libgit2/src/transports/credential.c +17 -7
  284. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  285. data/vendor/libgit2/src/transports/git.c +1 -3
  286. data/vendor/libgit2/src/transports/http.c +19 -17
  287. data/vendor/libgit2/src/transports/http.h +1 -0
  288. data/vendor/libgit2/src/transports/httpclient.c +84 -42
  289. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  290. data/vendor/libgit2/src/transports/local.c +5 -5
  291. data/vendor/libgit2/src/transports/smart.c +14 -9
  292. data/vendor/libgit2/src/transports/smart.h +1 -1
  293. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  294. data/vendor/libgit2/src/transports/ssh.c +51 -17
  295. data/vendor/libgit2/src/transports/winhttp.c +156 -88
  296. data/vendor/libgit2/src/tree.c +100 -77
  297. data/vendor/libgit2/src/tree.h +1 -0
  298. data/vendor/libgit2/src/tsort.c +0 -2
  299. data/vendor/libgit2/src/unix/map.c +3 -1
  300. data/vendor/libgit2/src/unix/posix.h +16 -1
  301. data/vendor/libgit2/src/unix/pthread.h +2 -1
  302. data/vendor/libgit2/src/utf8.c +150 -0
  303. data/vendor/libgit2/src/utf8.h +52 -0
  304. data/vendor/libgit2/src/util.c +74 -183
  305. data/vendor/libgit2/src/util.h +33 -39
  306. data/vendor/libgit2/src/vector.c +23 -19
  307. data/vendor/libgit2/src/vector.h +4 -2
  308. data/vendor/libgit2/src/win32/findfile.c +4 -2
  309. data/vendor/libgit2/src/win32/git2.rc +18 -3
  310. data/vendor/libgit2/src/win32/map.c +1 -1
  311. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  312. data/vendor/libgit2/src/win32/path_w32.c +23 -25
  313. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  314. data/vendor/libgit2/src/win32/posix_w32.c +77 -1
  315. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  316. data/vendor/libgit2/src/win32/reparse.h +4 -4
  317. data/vendor/libgit2/src/win32/thread.c +24 -15
  318. data/vendor/libgit2/src/win32/thread.h +1 -1
  319. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  320. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  321. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  322. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  323. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  324. data/vendor/libgit2/src/worktree.c +37 -15
  325. data/vendor/libgit2/src/zstream.c +1 -1
  326. metadata +56 -38
  327. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  328. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  329. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  330. data/vendor/libgit2/src/buf_text.c +0 -316
  331. data/vendor/libgit2/src/buf_text.h +0 -122
  332. data/vendor/libgit2/src/global.c +0 -361
  333. data/vendor/libgit2/src/global.h +0 -41
  334. data/vendor/libgit2/src/thread-utils.c +0 -58
  335. data/vendor/libgit2/src/thread-utils.h +0 -246
  336. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  337. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  338. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -212,7 +212,8 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote);
212
212
  * Get the remote's url
213
213
  *
214
214
  * If url.*.insteadOf has been configured for this URL, it will
215
- * return the modified URL.
215
+ * return the modified URL. If `git_remote_set_instance_pushurl`
216
+ * has been called for this remote, then that URL will be returned.
216
217
  *
217
218
  * @param remote the remote
218
219
  * @return a pointer to the url
@@ -220,10 +221,11 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote);
220
221
  GIT_EXTERN(const char *) git_remote_url(const git_remote *remote);
221
222
 
222
223
  /**
223
- * Get the remote's url for pushing
224
+ * Get the remote's url for pushing.
224
225
  *
225
226
  * If url.*.pushInsteadOf has been configured for this URL, it
226
- * will return the modified URL.
227
+ * will return the modified URL. If `git_remote_set_instance_pushurl`
228
+ * has been called for this remote, then that URL will be returned.
227
229
  *
228
230
  * @param remote the remote
229
231
  * @return a pointer to the url or NULL if no special url for pushing is set
@@ -253,9 +255,30 @@ GIT_EXTERN(int) git_remote_set_url(git_repository *repo, const char *remote, con
253
255
  * @param repo the repository in which to perform the change
254
256
  * @param remote the remote's name
255
257
  * @param url the url to set
258
+ * @return 0, or an error code
256
259
  */
257
260
  GIT_EXTERN(int) git_remote_set_pushurl(git_repository *repo, const char *remote, const char* url);
258
261
 
262
+ /**
263
+ * Set the url for this particular url instance. The URL in the
264
+ * configuration will be ignored, and will not be changed.
265
+ *
266
+ * @param remote the remote's name
267
+ * @param url the url to set
268
+ * @return 0 or an error value
269
+ */
270
+ GIT_EXTERN(int) git_remote_set_instance_url(git_remote *remote, const char *url);
271
+
272
+ /**
273
+ * Set the push url for this particular url instance. The URL in the
274
+ * configuration will be ignored, and will not be changed.
275
+ *
276
+ * @param remote the remote's name
277
+ * @param url the url to set
278
+ * @return 0 or an error value
279
+ */
280
+ GIT_EXTERN(int) git_remote_set_instance_pushurl(git_remote *remote, const char *url);
281
+
259
282
  /**
260
283
  * Add a fetch refspec to the remote's configuration
261
284
  *
@@ -476,6 +499,7 @@ typedef int GIT_CALLBACK(git_push_negotiation)(const git_push_update **updates,
476
499
  */
477
500
  typedef int GIT_CALLBACK(git_push_update_reference_cb)(const char *refname, const char *status, void *data);
478
501
 
502
+ #ifndef GIT_DEPRECATE_HARD
479
503
  /**
480
504
  * Callback to resolve URLs before connecting to remote
481
505
  *
@@ -487,8 +511,22 @@ typedef int GIT_CALLBACK(git_push_update_reference_cb)(const char *refname, cons
487
511
  * @param direction GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH
488
512
  * @param payload Payload provided by the caller
489
513
  * @return 0 on success, GIT_PASSTHROUGH or an error
514
+ * @deprecated Use `git_remote_set_instance_url`
490
515
  */
491
516
  typedef int GIT_CALLBACK(git_url_resolve_cb)(git_buf *url_resolved, const char *url, int direction, void *payload);
517
+ #endif
518
+
519
+ /**
520
+ * Callback invoked immediately before we attempt to connect to the
521
+ * given url. Callers may change the URL before the connection by
522
+ * calling `git_remote_set_instance_url` in the callback.
523
+ *
524
+ * @param remote The remote to be connected
525
+ * @param direction GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH
526
+ * @param payload Payload provided by the caller
527
+ * @return 0 on success, or an error
528
+ */
529
+ typedef int GIT_CALLBACK(git_remote_ready_cb)(git_remote *remote, int direction, void *payload);
492
530
 
493
531
  /**
494
532
  * The callback settings structure
@@ -574,17 +612,29 @@ struct git_remote_callbacks {
574
612
  */
575
613
  git_transport_cb transport;
576
614
 
615
+ /**
616
+ * Callback when the remote is ready to connect.
617
+ */
618
+ git_remote_ready_cb remote_ready;
619
+
577
620
  /**
578
621
  * This will be passed to each of the callbacks in this struct
579
622
  * as the last parameter.
580
623
  */
581
624
  void *payload;
582
625
 
626
+ #ifdef GIT_DEPRECATE_HARD
627
+ void *reserved;
628
+ #else
583
629
  /**
584
630
  * Resolve URL before connecting to remote.
585
631
  * The returned URL will be used to connect to the remote instead.
632
+ *
633
+ * This callback is deprecated; users should use
634
+ * git_remote_ready_cb and configure the instance URL instead.
586
635
  */
587
636
  git_url_resolve_cb resolve_url;
637
+ #endif
588
638
  };
589
639
 
590
640
  #define GIT_REMOTE_CALLBACKS_VERSION 1
@@ -876,8 +926,10 @@ GIT_EXTERN(git_remote_autotag_option_t) git_remote_autotag(const git_remote *rem
876
926
  * @param repo the repository in which to make the change
877
927
  * @param remote the name of the remote
878
928
  * @param value the new value to take.
929
+ * @return 0, or an error code.
879
930
  */
880
931
  GIT_EXTERN(int) git_remote_set_autotag(git_repository *repo, const char *remote, git_remote_autotag_option_t value);
932
+
881
933
  /**
882
934
  * Retrieve the ref-prune setting
883
935
  *
@@ -915,10 +967,11 @@ GIT_EXTERN(int) git_remote_rename(
915
967
  /**
916
968
  * Ensure the remote name is well-formed.
917
969
  *
970
+ * @param valid output pointer to set with validity of given remote name
918
971
  * @param remote_name name to be checked.
919
- * @return 1 if the reference name is acceptable; 0 if it isn't
972
+ * @return 0 on success or an error code
920
973
  */
921
- GIT_EXTERN(int) git_remote_is_valid_name(const char *remote_name);
974
+ int git_remote_name_is_valid(int *valid, const char *remote_name);
922
975
 
923
976
  /**
924
977
  * Delete an existing persisted remote.
@@ -943,7 +996,7 @@ GIT_EXTERN(int) git_remote_delete(git_repository *repo, const char *name);
943
996
  *
944
997
  * This function must only be called after connecting.
945
998
  *
946
- * @param out the buffern in which to store the reference name
999
+ * @param out the buffer in which to store the reference name
947
1000
  * @param remote the remote
948
1001
  * @return 0, GIT_ENOTFOUND if the remote does not have any references
949
1002
  * or none of them point to HEAD's commit, or an error message.
@@ -219,36 +219,54 @@ GIT_EXTERN(int) git_repository_init(
219
219
  *
220
220
  * These flags configure extra behaviors to `git_repository_init_ext`.
221
221
  * In every case, the default behavior is the zero value (i.e. flag is
222
- * not set). Just OR the flag values together for the `flags` parameter
223
- * when initializing a new repo. Details of individual values are:
224
- *
225
- * * BARE - Create a bare repository with no working directory.
226
- * * NO_REINIT - Return an GIT_EEXISTS error if the repo_path appears to
227
- * already be an git repository.
228
- * * NO_DOTGIT_DIR - Normally a "/.git/" will be appended to the repo
229
- * path for non-bare repos (if it is not already there), but
230
- * passing this flag prevents that behavior.
231
- * * MKDIR - Make the repo_path (and workdir_path) as needed. Init is
232
- * always willing to create the ".git" directory even without this
233
- * flag. This flag tells init to create the trailing component of
234
- * the repo and workdir paths as needed.
235
- * * MKPATH - Recursively make all components of the repo and workdir
236
- * paths as necessary.
237
- * * EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to
238
- * initialize a new repo. This flags enables external templates,
239
- * looking the "template_path" from the options if set, or the
240
- * `init.templatedir` global config if not, or falling back on
241
- * "/usr/share/git-core/templates" if it exists.
242
- * * GIT_REPOSITORY_INIT_RELATIVE_GITLINK - If an alternate workdir is
243
- * specified, use relative paths for the gitdir and core.worktree.
222
+ * not set). Just OR the flag values together for the `flags` parameter
223
+ * when initializing a new repo.
244
224
  */
245
225
  typedef enum {
226
+ /**
227
+ * Create a bare repository with no working directory.
228
+ */
246
229
  GIT_REPOSITORY_INIT_BARE = (1u << 0),
230
+
231
+ /**
232
+ * Return an GIT_EEXISTS error if the repo_path appears to already be
233
+ * an git repository.
234
+ */
247
235
  GIT_REPOSITORY_INIT_NO_REINIT = (1u << 1),
236
+
237
+ /**
238
+ * Normally a "/.git/" will be appended to the repo path for
239
+ * non-bare repos (if it is not already there), but passing this flag
240
+ * prevents that behavior.
241
+ */
248
242
  GIT_REPOSITORY_INIT_NO_DOTGIT_DIR = (1u << 2),
243
+
244
+ /**
245
+ * Make the repo_path (and workdir_path) as needed. Init is always willing
246
+ * to create the ".git" directory even without this flag. This flag tells
247
+ * init to create the trailing component of the repo and workdir paths
248
+ * as needed.
249
+ */
249
250
  GIT_REPOSITORY_INIT_MKDIR = (1u << 3),
251
+
252
+ /**
253
+ * Recursively make all components of the repo and workdir paths as
254
+ * necessary.
255
+ */
250
256
  GIT_REPOSITORY_INIT_MKPATH = (1u << 4),
257
+
258
+ /**
259
+ * libgit2 normally uses internal templates to initialize a new repo.
260
+ * This flags enables external templates, looking the "template_path" from
261
+ * the options if set, or the `init.templatedir` global config if not,
262
+ * or falling back on "/usr/share/git-core/templates" if it exists.
263
+ */
251
264
  GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE = (1u << 5),
265
+
266
+ /**
267
+ * If an alternate workdir is specified, use relative paths for the gitdir
268
+ * and core.worktree.
269
+ */
252
270
  GIT_REPOSITORY_INIT_RELATIVE_GITLINK = (1u << 6),
253
271
  } git_repository_init_flag_t;
254
272
 
@@ -257,17 +275,23 @@ typedef enum {
257
275
  *
258
276
  * Set the mode field of the `git_repository_init_options` structure
259
277
  * either to the custom mode that you would like, or to one of the
260
- * following modes:
261
- *
262
- * * SHARED_UMASK - Use permissions configured by umask - the default.
263
- * * SHARED_GROUP - Use "--shared=group" behavior, chmod'ing the new repo
264
- * to be group writable and "g+sx" for sticky group assignment.
265
- * * SHARED_ALL - Use "--shared=all" behavior, adding world readability.
266
- * * Anything else - Set to custom value.
278
+ * defined modes.
267
279
  */
268
280
  typedef enum {
281
+ /**
282
+ * Use permissions configured by umask - the default.
283
+ */
269
284
  GIT_REPOSITORY_INIT_SHARED_UMASK = 0,
285
+
286
+ /**
287
+ * Use "--shared=group" behavior, chmod'ing the new repo to be group
288
+ * writable and "g+sx" for sticky group assignment.
289
+ */
270
290
  GIT_REPOSITORY_INIT_SHARED_GROUP = 0002775,
291
+
292
+ /**
293
+ * Use "--shared=all" behavior, adding world readability.
294
+ */
271
295
  GIT_REPOSITORY_INIT_SHARED_ALL = 0002777,
272
296
  } git_repository_init_mode_t;
273
297
 
@@ -275,38 +299,57 @@ typedef enum {
275
299
  * Extended options structure for `git_repository_init_ext`.
276
300
  *
277
301
  * This contains extra options for `git_repository_init_ext` that enable
278
- * additional initialization features. The fields are:
279
- *
280
- * * flags - Combination of GIT_REPOSITORY_INIT flags above.
281
- * * mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_...
282
- * constants above, or to a custom value that you would like.
283
- * * workdir_path - The path to the working dir or NULL for default (i.e.
284
- * repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH,
285
- * IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not
286
- * the "natural" working directory, a .git gitlink file will be
287
- * created here linking to the repo_path.
288
- * * description - If set, this will be used to initialize the "description"
289
- * file in the repository, instead of using the template content.
290
- * * template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set,
291
- * this contains the path to use for the template directory. If
292
- * this is NULL, the config or default directory options will be
293
- * used instead.
294
- * * initial_head - The name of the head to point HEAD at. If NULL, then
295
- * this will be treated as "master" and the HEAD ref will be set
296
- * to "refs/heads/master". If this begins with "refs/" it will be
297
- * used verbatim; otherwise "refs/heads/" will be prefixed.
298
- * * origin_url - If this is non-NULL, then after the rest of the
299
- * repository initialization is completed, an "origin" remote
300
- * will be added pointing to this URL.
302
+ * additional initialization features.
301
303
  */
302
304
  typedef struct {
303
305
  unsigned int version;
306
+
307
+ /**
308
+ * Combination of GIT_REPOSITORY_INIT flags above.
309
+ */
304
310
  uint32_t flags;
311
+
312
+ /**
313
+ * Set to one of the standard GIT_REPOSITORY_INIT_SHARED_... constants
314
+ * above, or to a custom value that you would like.
315
+ */
305
316
  uint32_t mode;
317
+
318
+ /**
319
+ * The path to the working dir or NULL for default (i.e. repo_path parent
320
+ * on non-bare repos). IF THIS IS RELATIVE PATH, IT WILL BE EVALUATED
321
+ * RELATIVE TO THE REPO_PATH. If this is not the "natural" working
322
+ * directory, a .git gitlink file will be created here linking to the
323
+ * repo_path.
324
+ */
306
325
  const char *workdir_path;
326
+
327
+ /**
328
+ * If set, this will be used to initialize the "description" file in the
329
+ * repository, instead of using the template content.
330
+ */
307
331
  const char *description;
332
+
333
+ /**
334
+ * When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set, this contains
335
+ * the path to use for the template directory. If this is NULL, the config
336
+ * or default directory options will be used instead.
337
+ */
308
338
  const char *template_path;
339
+
340
+ /**
341
+ * The name of the head to point HEAD at. If NULL, then this will be
342
+ * treated as "master" and the HEAD ref will be set to "refs/heads/master".
343
+ * If this begins with "refs/" it will be used verbatim;
344
+ * otherwise "refs/heads/" will be prefixed.
345
+ */
309
346
  const char *initial_head;
347
+
348
+ /**
349
+ * If this is non-NULL, then after the rest of the repository
350
+ * initialization is completed, an "origin" remote will be added
351
+ * pointing to this URL.
352
+ */
310
353
  const char *origin_url;
311
354
  } git_repository_init_options;
312
355
 
@@ -70,12 +70,12 @@ GIT_EXTERN(int) git_revparse_ext(
70
70
  */
71
71
  typedef enum {
72
72
  /** The spec targeted a single object. */
73
- GIT_REVPARSE_SINGLE = 1 << 0,
73
+ GIT_REVSPEC_SINGLE = 1 << 0,
74
74
  /** The spec targeted a range of commits. */
75
- GIT_REVPARSE_RANGE = 1 << 1,
75
+ GIT_REVSPEC_RANGE = 1 << 1,
76
76
  /** The spec used the '...' operator, which invokes special semantics. */
77
- GIT_REVPARSE_MERGE_BASE = 1 << 2,
78
- } git_revparse_mode_t;
77
+ GIT_REVSPEC_MERGE_BASE = 1 << 2,
78
+ } git_revspec_t;
79
79
 
80
80
  /**
81
81
  * Git Revision Spec: output of a `git_revparse` operation
@@ -85,7 +85,7 @@ typedef struct {
85
85
  git_object *from;
86
86
  /** The right element of the revspec; must be freed by the user */
87
87
  git_object *to;
88
- /** The intent of the revspec (i.e. `git_revparse_mode_t` flags) */
88
+ /** The intent of the revspec (i.e. `git_revspec_mode_t` flags) */
89
89
  unsigned int flags;
90
90
  } git_revspec;
91
91
 
@@ -69,89 +69,141 @@ typedef int GIT_CALLBACK(git_status_cb)(
69
69
  * With `git_status_foreach_ext`, this will control which changes get
70
70
  * callbacks. With `git_status_list_new`, these will control which
71
71
  * changes are included in the list.
72
- *
73
- * - GIT_STATUS_SHOW_INDEX_AND_WORKDIR is the default. This roughly
74
- * matches `git status --porcelain` regarding which files are
75
- * included and in what order.
76
- * - GIT_STATUS_SHOW_INDEX_ONLY only gives status based on HEAD to index
77
- * comparison, not looking at working directory changes.
78
- * - GIT_STATUS_SHOW_WORKDIR_ONLY only gives status based on index to
79
- * working directory comparison, not comparing the index to the HEAD.
80
72
  */
81
73
  typedef enum {
74
+ /**
75
+ * The default. This roughly matches `git status --porcelain` regarding
76
+ * which files are included and in what order.
77
+ */
82
78
  GIT_STATUS_SHOW_INDEX_AND_WORKDIR = 0,
79
+
80
+ /**
81
+ * Only gives status based on HEAD to index comparison, not looking at
82
+ * working directory changes.
83
+ */
83
84
  GIT_STATUS_SHOW_INDEX_ONLY = 1,
85
+
86
+ /**
87
+ * Only gives status based on index to working directory comparison,
88
+ * not comparing the index to the HEAD.
89
+ */
84
90
  GIT_STATUS_SHOW_WORKDIR_ONLY = 2,
85
91
  } git_status_show_t;
86
92
 
87
93
  /**
88
94
  * Flags to control status callbacks
89
95
  *
90
- * - GIT_STATUS_OPT_INCLUDE_UNTRACKED says that callbacks should be made
91
- * on untracked files. These will only be made if the workdir files are
92
- * included in the status "show" option.
93
- * - GIT_STATUS_OPT_INCLUDE_IGNORED says that ignored files get callbacks.
94
- * Again, these callbacks will only be made if the workdir files are
95
- * included in the status "show" option.
96
- * - GIT_STATUS_OPT_INCLUDE_UNMODIFIED indicates that callback should be
97
- * made even on unmodified files.
98
- * - GIT_STATUS_OPT_EXCLUDE_SUBMODULES indicates that submodules should be
99
- * skipped. This only applies if there are no pending typechanges to
100
- * the submodule (either from or to another type).
101
- * - GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS indicates that all files in
102
- * untracked directories should be included. Normally if an entire
103
- * directory is new, then just the top-level directory is included (with
104
- * a trailing slash on the entry name). This flag says to include all
105
- * of the individual files in the directory instead.
106
- * - GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH indicates that the given path
107
- * should be treated as a literal path, and not as a pathspec pattern.
108
- * - GIT_STATUS_OPT_RECURSE_IGNORED_DIRS indicates that the contents of
109
- * ignored directories should be included in the status. This is like
110
- * doing `git ls-files -o -i --exclude-standard` with core git.
111
- * - GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX indicates that rename detection
112
- * should be processed between the head and the index and enables
113
- * the GIT_STATUS_INDEX_RENAMED as a possible status flag.
114
- * - GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR indicates that rename
115
- * detection should be run between the index and the working directory
116
- * and enabled GIT_STATUS_WT_RENAMED as a possible status flag.
117
- * - GIT_STATUS_OPT_SORT_CASE_SENSITIVELY overrides the native case
118
- * sensitivity for the file system and forces the output to be in
119
- * case-sensitive order
120
- * - GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY overrides the native case
121
- * sensitivity for the file system and forces the output to be in
122
- * case-insensitive order
123
- * - GIT_STATUS_OPT_RENAMES_FROM_REWRITES indicates that rename detection
124
- * should include rewritten files
125
- * - GIT_STATUS_OPT_NO_REFRESH bypasses the default status behavior of
126
- * doing a "soft" index reload (i.e. reloading the index data if the
127
- * file on disk has been modified outside libgit2).
128
- * - GIT_STATUS_OPT_UPDATE_INDEX tells libgit2 to refresh the stat cache
129
- * in the index for files that are unchanged but have out of date stat
130
- * information in the index. It will result in less work being done on
131
- * subsequent calls to get status. This is mutually exclusive with the
132
- * NO_REFRESH option.
133
- *
134
96
  * Calling `git_status_foreach()` is like calling the extended version
135
97
  * with: GIT_STATUS_OPT_INCLUDE_IGNORED, GIT_STATUS_OPT_INCLUDE_UNTRACKED,
136
98
  * and GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS. Those options are bundled
137
99
  * together as `GIT_STATUS_OPT_DEFAULTS` if you want them as a baseline.
138
100
  */
139
101
  typedef enum {
102
+ /**
103
+ * Says that callbacks should be made on untracked files.
104
+ * These will only be made if the workdir files are included in the status
105
+ * "show" option.
106
+ */
140
107
  GIT_STATUS_OPT_INCLUDE_UNTRACKED = (1u << 0),
108
+
109
+ /**
110
+ * Says that ignored files get callbacks.
111
+ * Again, these callbacks will only be made if the workdir files are
112
+ * included in the status "show" option.
113
+ */
141
114
  GIT_STATUS_OPT_INCLUDE_IGNORED = (1u << 1),
115
+
116
+ /**
117
+ * Indicates that callback should be made even on unmodified files.
118
+ */
142
119
  GIT_STATUS_OPT_INCLUDE_UNMODIFIED = (1u << 2),
120
+
121
+ /**
122
+ * Indicates that submodules should be skipped.
123
+ * This only applies if there are no pending typechanges to the submodule
124
+ * (either from or to another type).
125
+ */
143
126
  GIT_STATUS_OPT_EXCLUDE_SUBMODULES = (1u << 3),
127
+
128
+ /**
129
+ * Indicates that all files in untracked directories should be included.
130
+ * Normally if an entire directory is new, then just the top-level
131
+ * directory is included (with a trailing slash on the entry name).
132
+ * This flag says to include all of the individual files in the directory
133
+ * instead.
134
+ */
144
135
  GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS = (1u << 4),
136
+
137
+ /**
138
+ * Indicates that the given path should be treated as a literal path,
139
+ * and not as a pathspec pattern.
140
+ */
145
141
  GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH = (1u << 5),
142
+
143
+ /**
144
+ * Indicates that the contents of ignored directories should be included
145
+ * in the status. This is like doing `git ls-files -o -i --exclude-standard`
146
+ * with core git.
147
+ */
146
148
  GIT_STATUS_OPT_RECURSE_IGNORED_DIRS = (1u << 6),
149
+
150
+ /**
151
+ * Indicates that rename detection should be processed between the head and
152
+ * the index and enables the GIT_STATUS_INDEX_RENAMED as a possible status
153
+ * flag.
154
+ */
147
155
  GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX = (1u << 7),
156
+
157
+ /**
158
+ * Indicates that rename detection should be run between the index and the
159
+ * working directory and enabled GIT_STATUS_WT_RENAMED as a possible status
160
+ * flag.
161
+ */
148
162
  GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR = (1u << 8),
163
+
164
+ /**
165
+ * Overrides the native case sensitivity for the file system and forces
166
+ * the output to be in case-sensitive order.
167
+ */
149
168
  GIT_STATUS_OPT_SORT_CASE_SENSITIVELY = (1u << 9),
169
+
170
+ /**
171
+ * Overrides the native case sensitivity for the file system and forces
172
+ * the output to be in case-insensitive order.
173
+ */
150
174
  GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY = (1u << 10),
175
+
176
+ /**
177
+ * Iindicates that rename detection should include rewritten files.
178
+ */
151
179
  GIT_STATUS_OPT_RENAMES_FROM_REWRITES = (1u << 11),
180
+
181
+ /**
182
+ * Bypasses the default status behavior of doing a "soft" index reload
183
+ * (i.e. reloading the index data if the file on disk has been modified
184
+ * outside libgit2).
185
+ */
152
186
  GIT_STATUS_OPT_NO_REFRESH = (1u << 12),
187
+
188
+ /**
189
+ * Tells libgit2 to refresh the stat cache in the index for files that are
190
+ * unchanged but have out of date stat einformation in the index.
191
+ * It will result in less work being done on subsequent calls to get status.
192
+ * This is mutually exclusive with the NO_REFRESH option.
193
+ */
153
194
  GIT_STATUS_OPT_UPDATE_INDEX = (1u << 13),
195
+
196
+ /**
197
+ * Normally files that cannot be opened or read are ignored as
198
+ * these are often transient files; this option will return
199
+ * unreadable files as `GIT_STATUS_WT_UNREADABLE`.
200
+ */
154
201
  GIT_STATUS_OPT_INCLUDE_UNREADABLE = (1u << 14),
202
+
203
+ /**
204
+ * Unreadable files will be detected and given the status
205
+ * untracked instead of unreadable.
206
+ */
155
207
  GIT_STATUS_OPT_INCLUDE_UNREADABLE_AS_UNTRACKED = (1u << 15),
156
208
  } git_status_opt_t;
157
209
 
@@ -168,7 +220,10 @@ typedef enum {
168
220
  *
169
221
  */
170
222
  typedef struct {
171
- unsigned int version; /**< The version */
223
+ /**
224
+ * The struct version; pass `GIT_STATUS_OPTIONS_VERSION`.
225
+ */
226
+ unsigned int version;
172
227
 
173
228
  /**
174
229
  * The `show` value is one of the `git_status_show_t` constants that
@@ -177,21 +232,22 @@ typedef struct {
177
232
  git_status_show_t show;
178
233
 
179
234
  /**
180
- * The `flags` value is an OR'ed combination of the `git_status_opt_t`
181
- * values above.
235
+ * The `flags` value is an OR'ed combination of the
236
+ * `git_status_opt_t` values above.
182
237
  */
183
238
  unsigned int flags;
184
239
 
185
240
  /**
186
241
  * The `pathspec` is an array of path patterns to match (using
187
- * fnmatch-style matching), or just an array of paths to match exactly if
188
- * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.
242
+ * fnmatch-style matching), or just an array of paths to match
243
+ * exactly if `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified
244
+ * in the flags.
189
245
  */
190
246
  git_strarray pathspec;
191
247
 
192
248
  /**
193
- * The `baseline` is the tree to be used for comparison to the working directory
194
- * and index; defaults to HEAD.
249
+ * The `baseline` is the tree to be used for comparison to the
250
+ * working directory and index; defaults to HEAD.
195
251
  */
196
252
  git_tree *baseline;
197
253
  } git_status_options;