rugged 1.3.2.3 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -83,7 +83,7 @@ typedef enum {
83
83
  GIT_ATTR_VALUE_UNSPECIFIED = 0, /**< The attribute has been left unspecified */
84
84
  GIT_ATTR_VALUE_TRUE, /**< The attribute has been set */
85
85
  GIT_ATTR_VALUE_FALSE, /**< The attribute has been unset */
86
- GIT_ATTR_VALUE_STRING, /**< This attribute has a value */
86
+ GIT_ATTR_VALUE_STRING /**< This attribute has a value */
87
87
  } git_attr_value_t;
88
88
 
89
89
  /**
@@ -177,6 +177,7 @@ typedef struct {
177
177
  * not have to exist, but if it does not, then it will be
178
178
  * treated as a plain file (not a directory).
179
179
  * @param name The name of the attribute to look up.
180
+ * @return 0 or an error code.
180
181
  */
181
182
  GIT_EXTERN(int) git_attr_get(
182
183
  const char **value_out,
@@ -199,6 +200,7 @@ GIT_EXTERN(int) git_attr_get(
199
200
  * not have to exist, but if it does not, then it will be
200
201
  * treated as a plain file (not a directory).
201
202
  * @param name The name of the attribute to look up.
203
+ * @return 0 or an error code.
202
204
  */
203
205
  GIT_EXTERN(int) git_attr_get_ext(
204
206
  const char **value_out,
@@ -235,6 +237,7 @@ GIT_EXTERN(int) git_attr_get_ext(
235
237
  * it will be treated as a plain file (i.e. not a directory).
236
238
  * @param num_attr The number of attributes being looked up
237
239
  * @param names An array of num_attr strings containing attribute names.
240
+ * @return 0 or an error code.
238
241
  */
239
242
  GIT_EXTERN(int) git_attr_get_many(
240
243
  const char **values_out,
@@ -259,6 +262,7 @@ GIT_EXTERN(int) git_attr_get_many(
259
262
  * it will be treated as a plain file (i.e. not a directory).
260
263
  * @param num_attr The number of attributes being looked up
261
264
  * @param names An array of num_attr strings containing attribute names.
265
+ * @return 0 or an error code.
262
266
  */
263
267
  GIT_EXTERN(int) git_attr_get_many_ext(
264
268
  const char **values_out,
@@ -344,11 +348,16 @@ GIT_EXTERN(int) git_attr_cache_flush(
344
348
  * Add a macro definition.
345
349
  *
346
350
  * Macros will automatically be loaded from the top level `.gitattributes`
347
- * file of the repository (plus the build-in "binary" macro). This
351
+ * file of the repository (plus the built-in "binary" macro). This
348
352
  * function allows you to add others. For example, to add the default
349
353
  * macro, you would call:
350
354
  *
351
355
  * git_attr_add_macro(repo, "binary", "-diff -crlf");
356
+ *
357
+ * @param repo The repository to add the macro in.
358
+ * @param name The name of the macro.
359
+ * @param values The value for the macro.
360
+ * @return 0 or an error code.
352
361
  */
353
362
  GIT_EXTERN(int) git_attr_add_macro(
354
363
  git_repository *repo,
@@ -73,7 +73,7 @@ typedef enum {
73
73
  GIT_BLAME_USE_MAILMAP = (1<<5),
74
74
 
75
75
  /** Ignore whitespace differences */
76
- GIT_BLAME_IGNORE_WHITESPACE = (1<<6),
76
+ GIT_BLAME_IGNORE_WHITESPACE = (1<<6)
77
77
  } git_blame_flag_t;
78
78
 
79
79
  /**
@@ -203,6 +203,9 @@ typedef struct git_blame git_blame;
203
203
 
204
204
  /**
205
205
  * Gets the number of hunks that exist in the blame structure.
206
+ *
207
+ * @param blame The blame structure to query.
208
+ * @return The number of hunks.
206
209
  */
207
210
  GIT_EXTERN(uint32_t) git_blame_get_hunk_count(git_blame *blame);
208
211
 
@@ -119,7 +119,7 @@ typedef enum {
119
119
  * When set, filters will be loaded from a `.gitattributes` file
120
120
  * in the specified commit.
121
121
  */
122
- GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT = (1 << 3),
122
+ GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT = (1 << 3)
123
123
  } git_blob_filter_flag_t;
124
124
 
125
125
  /**
@@ -284,12 +284,25 @@ GIT_EXTERN(int) git_blob_create_from_buffer(
284
284
  */
285
285
  GIT_EXTERN(int) git_blob_is_binary(const git_blob *blob);
286
286
 
287
+ /**
288
+ * Determine if the given content is most certainly binary or not;
289
+ * this is the same mechanism used by `git_blob_is_binary` but only
290
+ * looking at raw data.
291
+ *
292
+ * @param data The blob data which content should be analyzed
293
+ * @param len The length of the data
294
+ * @return 1 if the content of the blob is detected
295
+ * as binary; 0 otherwise.
296
+ */
297
+ GIT_EXTERN(int) git_blob_data_is_binary(const char *data, size_t len);
298
+
287
299
  /**
288
300
  * Create an in-memory copy of a blob. The copy must be explicitly
289
301
  * free'd or it will leak.
290
302
  *
291
303
  * @param out Pointer to store the copy of the object
292
304
  * @param source Original object to copy
305
+ * @return 0.
293
306
  */
294
307
  GIT_EXTERN(int) git_blob_dup(git_blob **out, git_blob *source);
295
308
 
@@ -34,6 +34,8 @@ GIT_BEGIN_DECL
34
34
  *
35
35
  * @param out Pointer where to store the underlying reference.
36
36
  *
37
+ * @param repo the repository to create the branch in.
38
+ *
37
39
  * @param branch_name Name for the branch; this name is
38
40
  * validated for consistency. It should also not conflict with
39
41
  * an already existing branch name.
@@ -23,110 +23,50 @@ GIT_BEGIN_DECL
23
23
  *
24
24
  * Sometimes libgit2 wants to return an allocated data buffer to the
25
25
  * caller and have the caller take responsibility for freeing that memory.
26
- * This can be awkward if the caller does not have easy access to the same
27
- * allocation functions that libgit2 is using. In those cases, libgit2
28
- * will fill in a `git_buf` and the caller can use `git_buf_dispose()` to
29
- * release it when they are done.
26
+ * To make ownership clear in these cases, libgit2 uses `git_buf` to
27
+ * return this data. Callers should use `git_buf_dispose()` to release
28
+ * the memory when they are done.
30
29
  *
31
- * A `git_buf` may also be used for the caller to pass in a reference to
32
- * a block of memory they hold. In this case, libgit2 will not resize or
33
- * free the memory, but will read from it as needed.
34
- *
35
- * Some APIs may occasionally do something slightly unusual with a buffer,
36
- * such as setting `ptr` to a value that was passed in by the user. In
37
- * those cases, the behavior will be clearly documented by the API.
30
+ * A `git_buf` contains a pointer to a NUL-terminated C string, and
31
+ * the length of the string (not including the NUL terminator).
38
32
  */
39
33
  typedef struct {
40
34
  /**
41
- * The buffer contents.
42
- *
43
- * `ptr` points to the start of the allocated memory. If it is NULL,
44
- * then the `git_buf` is considered empty and libgit2 will feel free
45
- * to overwrite it with new data.
35
+ * The buffer contents. `ptr` points to the start of the buffer
36
+ * being returned. The buffer's length (in bytes) is specified
37
+ * by the `size` member of the structure, and contains a NUL
38
+ * terminator at position `(size + 1)`.
46
39
  */
47
- char *ptr;
40
+ char *ptr;
48
41
 
49
42
  /**
50
- * `asize` holds the known total amount of allocated memory if the `ptr`
51
- * was allocated by libgit2. It may be larger than `size`. If `ptr`
52
- * was not allocated by libgit2 and should not be resized and/or freed,
53
- * then `asize` will be set to zero.
43
+ * This field is reserved and unused.
54
44
  */
55
- size_t asize;
45
+ size_t reserved;
56
46
 
57
47
  /**
58
- * `size` holds the size (in bytes) of the data that is actually used.
48
+ * The length (in bytes) of the buffer pointed to by `ptr`,
49
+ * not including a NUL terminator.
59
50
  */
60
51
  size_t size;
61
52
  } git_buf;
62
53
 
63
54
  /**
64
- * Static initializer for git_buf from static buffer
55
+ * Use to initialize a `git_buf` before passing it to a function that
56
+ * will populate it.
65
57
  */
66
- #define GIT_BUF_INIT_CONST(STR,LEN) { (char *)(STR), 0, (size_t)(LEN) }
58
+ #define GIT_BUF_INIT { NULL, 0, 0 }
67
59
 
68
60
  /**
69
61
  * Free the memory referred to by the git_buf.
70
62
  *
71
63
  * Note that this does not free the `git_buf` itself, just the memory
72
- * pointed to by `buffer->ptr`. This will not free the memory if it looks
73
- * like it was not allocated internally, but it will clear the buffer back
74
- * to the empty state.
64
+ * pointed to by `buffer->ptr`.
75
65
  *
76
66
  * @param buffer The buffer to deallocate
77
67
  */
78
68
  GIT_EXTERN(void) git_buf_dispose(git_buf *buffer);
79
69
 
80
- /**
81
- * Resize the buffer allocation to make more space.
82
- *
83
- * This will attempt to grow the buffer to accommodate the target size.
84
- *
85
- * If the buffer refers to memory that was not allocated by libgit2 (i.e.
86
- * the `asize` field is zero), then `ptr` will be replaced with a newly
87
- * allocated block of data. Be careful so that memory allocated by the
88
- * caller is not lost. As a special variant, if you pass `target_size` as
89
- * 0 and the memory is not allocated by libgit2, this will allocate a new
90
- * buffer of size `size` and copy the external data into it.
91
- *
92
- * Currently, this will never shrink a buffer, only expand it.
93
- *
94
- * If the allocation fails, this will return an error and the buffer will be
95
- * marked as invalid for future operations, invaliding the contents.
96
- *
97
- * @param buffer The buffer to be resized; may or may not be allocated yet
98
- * @param target_size The desired available size
99
- * @return 0 on success, -1 on allocation failure
100
- */
101
- GIT_EXTERN(int) git_buf_grow(git_buf *buffer, size_t target_size);
102
-
103
- /**
104
- * Set buffer to a copy of some raw data.
105
- *
106
- * @param buffer The buffer to set
107
- * @param data The data to copy into the buffer
108
- * @param datalen The length of the data to copy into the buffer
109
- * @return 0 on success, -1 on allocation failure
110
- */
111
- GIT_EXTERN(int) git_buf_set(
112
- git_buf *buffer, const void *data, size_t datalen);
113
-
114
- /**
115
- * Check quickly if buffer looks like it contains binary data
116
- *
117
- * @param buf Buffer to check
118
- * @return 1 if buffer looks like non-text data
119
- */
120
- GIT_EXTERN(int) git_buf_is_binary(const git_buf *buf);
121
-
122
- /**
123
- * Check quickly if buffer contains a NUL byte
124
- *
125
- * @param buf Buffer to check
126
- * @return 1 if buffer contains a NUL byte
127
- */
128
- GIT_EXTERN(int) git_buf_contains_nul(const git_buf *buf);
129
-
130
70
  GIT_END_DECL
131
71
 
132
72
  /** @} */
@@ -44,7 +44,7 @@ typedef enum git_cert_t {
44
44
  * information about the certificate. This is used when using
45
45
  * curl.
46
46
  */
47
- GIT_CERT_STRARRAY,
47
+ GIT_CERT_STRARRAY
48
48
  } git_cert_t;
49
49
 
50
50
  /**
@@ -82,7 +82,7 @@ typedef enum {
82
82
  /** SHA-256 is available */
83
83
  GIT_CERT_SSH_SHA256 = (1 << 2),
84
84
  /** Raw hostkey is available */
85
- GIT_CERT_SSH_RAW = (1 << 3),
85
+ GIT_CERT_SSH_RAW = (1 << 3)
86
86
  } git_cert_ssh_t;
87
87
 
88
88
  typedef enum {
@@ -182,7 +182,10 @@ typedef enum {
182
182
  * notifications; don't update the working directory or index.
183
183
  */
184
184
  GIT_CHECKOUT_DRY_RUN = (1u << 24),
185
-
185
+
186
+ /** Include common ancestor data in zdiff3 format for conflicts */
187
+ GIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3 = (1u << 25),
188
+
186
189
  /**
187
190
  * THE FOLLOWING OPTIONS ARE NOT YET IMPLEMENTED
188
191
  */
@@ -190,7 +193,7 @@ typedef enum {
190
193
  /** Recursively checkout submodules with same options (NOT IMPLEMENTED) */
191
194
  GIT_CHECKOUT_UPDATE_SUBMODULES = (1u << 16),
192
195
  /** Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) */
193
- GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = (1u << 17),
196
+ GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = (1u << 17)
194
197
 
195
198
  } git_checkout_strategy_t;
196
199
 
@@ -49,7 +49,7 @@ typedef enum {
49
49
  * Bypass the git-aware transport, but do not try to use
50
50
  * hardlinks.
51
51
  */
52
- GIT_CLONE_LOCAL_NO_LINKS,
52
+ GIT_CLONE_LOCAL_NO_LINKS
53
53
  } git_clone_local_t;
54
54
 
55
55
  /**
@@ -74,8 +74,8 @@ typedef int GIT_CALLBACK(git_remote_create_cb)(
74
74
  void *payload);
75
75
 
76
76
  /**
77
- * The signature of a function matchin git_repository_init, with an
78
- * aditional void * as callback payload.
77
+ * The signature of a function matching git_repository_init, with an
78
+ * additional void * as callback payload.
79
79
  *
80
80
  * Callers of git_clone my provide a function matching this signature
81
81
  * to override the repository creation and customization process
@@ -479,6 +479,7 @@ GIT_EXTERN(int) git_commit_create_buffer(
479
479
  * to the commit and write it into the given repository.
480
480
  *
481
481
  * @param out the resulting commit id
482
+ * @param repo the repository to create the commit in.
482
483
  * @param commit_content the content of the unsigned commit object
483
484
  * @param signature the signature to add to the commit. Leave `NULL`
484
485
  * to create a commit without adding a signature field.
@@ -499,6 +500,7 @@ GIT_EXTERN(int) git_commit_create_with_signature(
499
500
  *
500
501
  * @param out Pointer to store the copy of the commit
501
502
  * @param source Original commit to copy
503
+ * @return 0
502
504
  */
503
505
  GIT_EXTERN(int) git_commit_dup(git_commit **out, git_commit *source);
504
506
 
@@ -147,7 +147,7 @@ typedef enum {
147
147
  * If set, libgit2 was built with support for sub-second resolution in file
148
148
  * modification times.
149
149
  */
150
- GIT_FEATURE_NSEC = (1 << 3),
150
+ GIT_FEATURE_NSEC = (1 << 3)
151
151
  } git_feature_t;
152
152
 
153
153
  /**
@@ -167,6 +167,9 @@ typedef enum {
167
167
  * - GIT_FEATURE_SSH
168
168
  * Libgit2 supports the SSH protocol for network operations. This requires
169
169
  * the libssh2 library to be found when compiling libgit2
170
+ *
171
+ * - GIT_FEATURE_NSEC
172
+ * Libgit2 supports the sub-second resolution in file modification times.
170
173
  */
171
174
  GIT_EXTERN(int) git_libgit2_features(void);
172
175
 
@@ -211,9 +214,7 @@ typedef enum {
211
214
  GIT_OPT_SET_ODB_PACKED_PRIORITY,
212
215
  GIT_OPT_SET_ODB_LOOSE_PRIORITY,
213
216
  GIT_OPT_GET_EXTENSIONS,
214
- GIT_OPT_SET_EXTENSIONS,
215
- GIT_OPT_GET_OWNER_VALIDATION,
216
- GIT_OPT_SET_OWNER_VALIDATION
217
+ GIT_OPT_SET_EXTENSIONS
217
218
  } git_libgit2_opt_t;
218
219
 
219
220
  /**
@@ -451,14 +452,6 @@ typedef enum {
451
452
  * > to support repositories with the `noop` extension but does want
452
453
  * > to support repositories with the `newext` extension.
453
454
  *
454
- * opts(GIT_OPT_GET_OWNER_VALIDATION, int *enabled)
455
- * > Gets the owner validation setting for repository
456
- * > directories.
457
- *
458
- * opts(GIT_OPT_SET_OWNER_VALIDATION, int enabled)
459
- * > Set that repository directories should be owned by the current
460
- * > user. The default is to validate ownership.
461
- *
462
455
  * @param option Option key
463
456
  * @param ... value to set the option
464
457
  * @return 0 on success, <0 on failure
@@ -55,7 +55,7 @@ typedef enum {
55
55
  /** Represents the highest level available config file (i.e. the most
56
56
  * specific config file available that actually is loaded)
57
57
  */
58
- GIT_CONFIG_HIGHEST_LEVEL = -1,
58
+ GIT_CONFIG_HIGHEST_LEVEL = -1
59
59
  } git_config_level_t;
60
60
 
61
61
  /**
@@ -72,14 +72,17 @@ typedef struct git_config_entry {
72
72
 
73
73
  /**
74
74
  * Free a config entry
75
+ *
76
+ * @param entry The entry to free.
75
77
  */
76
- GIT_EXTERN(void) git_config_entry_free(git_config_entry *);
78
+ GIT_EXTERN(void) git_config_entry_free(git_config_entry *entry);
77
79
 
78
80
  /**
79
81
  * A config enumeration callback
80
82
  *
81
83
  * @param entry the entry currently being enumerated
82
84
  * @param payload a user-specified pointer
85
+ * @return non-zero to terminate the iteration.
83
86
  */
84
87
  typedef int GIT_CALLBACK(git_config_foreach_cb)(const git_config_entry *entry, void *payload);
85
88
 
@@ -269,6 +272,7 @@ GIT_EXTERN(int) git_config_open_level(
269
272
  *
270
273
  * @param out pointer in which to store the config object
271
274
  * @param config the config object in which to look
275
+ * @return 0 or an error code.
272
276
  */
273
277
  GIT_EXTERN(int) git_config_open_global(git_config **out, git_config *config);
274
278
 
@@ -422,6 +426,7 @@ GIT_EXTERN(int) git_config_get_string_buf(git_buf *out, const git_config *cfg, c
422
426
  * interested in. Use NULL to indicate all
423
427
  * @param callback the function to be called on each value of the variable
424
428
  * @param payload opaque pointer to pass to the callback
429
+ * @return 0 or an error code.
425
430
  */
426
431
  GIT_EXTERN(int) git_config_get_multivar_foreach(const git_config *cfg, const char *name, const char *regexp, git_config_foreach_cb callback, void *payload);
427
432
 
@@ -437,6 +442,7 @@ GIT_EXTERN(int) git_config_get_multivar_foreach(const git_config *cfg, const cha
437
442
  * @param name the variable's name
438
443
  * @param regexp regular expression to filter which variables we're
439
444
  * interested in. Use NULL to indicate all
445
+ * @return 0 or an error code.
440
446
  */
441
447
  GIT_EXTERN(int) git_config_multivar_iterator_new(git_config_iterator **out, const git_config *cfg, const char *name, const char *regexp);
442
448
 
@@ -515,6 +521,7 @@ GIT_EXTERN(int) git_config_set_string(git_config *cfg, const char *name, const c
515
521
  * @param name the variable's name
516
522
  * @param regexp a regular expression to indicate which values to replace
517
523
  * @param value the new value.
524
+ * @return 0 or an error code.
518
525
  */
519
526
  GIT_EXTERN(int) git_config_set_multivar(git_config *cfg, const char *name, const char *regexp, const char *value);
520
527
 
@@ -524,6 +531,7 @@ GIT_EXTERN(int) git_config_set_multivar(git_config *cfg, const char *name, const
524
531
  *
525
532
  * @param cfg the configuration
526
533
  * @param name the variable to delete
534
+ * @return 0 or an error code.
527
535
  */
528
536
  GIT_EXTERN(int) git_config_delete_entry(git_config *cfg, const char *name);
529
537
 
@@ -568,7 +576,8 @@ GIT_EXTERN(int) git_config_foreach(
568
576
  * `git_config_iterator_free` when done.
569
577
  *
570
578
  * @param out pointer to store the iterator
571
- * @param cfg where to ge the variables from
579
+ * @param cfg where to get the variables from
580
+ * @return 0 or an error code.
572
581
  */
573
582
  GIT_EXTERN(int) git_config_iterator_new(git_config_iterator **out, const git_config *cfg);
574
583
 
@@ -585,6 +594,7 @@ GIT_EXTERN(int) git_config_iterator_new(git_config_iterator **out, const git_con
585
594
  * @param out pointer to store the iterator
586
595
  * @param cfg where to ge the variables from
587
596
  * @param regexp regular expression to match the names
597
+ * @return 0 or an error code.
588
598
  */
589
599
  GIT_EXTERN(int) git_config_iterator_glob_new(git_config_iterator **out, const git_config *cfg, const char *regexp);
590
600
 
@@ -662,6 +672,7 @@ GIT_EXTERN(int) git_config_get_mapped(
662
672
  * @param maps array of `git_configmap` objects specifying the possible mappings
663
673
  * @param map_n number of mapping objects in `maps`
664
674
  * @param value value to parse
675
+ * @return 0 or an error code.
665
676
  */
666
677
  GIT_EXTERN(int) git_config_lookup_map_value(
667
678
  int *out,
@@ -678,6 +689,7 @@ GIT_EXTERN(int) git_config_lookup_map_value(
678
689
  *
679
690
  * @param out place to store the result of the parsing
680
691
  * @param value value to parse
692
+ * @return 0 or an error code.
681
693
  */
682
694
  GIT_EXTERN(int) git_config_parse_bool(int *out, const char *value);
683
695
 
@@ -690,6 +702,7 @@ GIT_EXTERN(int) git_config_parse_bool(int *out, const char *value);
690
702
  *
691
703
  * @param out place to store the result of the parsing
692
704
  * @param value value to parse
705
+ * @return 0 or an error code.
693
706
  */
694
707
  GIT_EXTERN(int) git_config_parse_int32(int32_t *out, const char *value);
695
708
 
@@ -702,6 +715,7 @@ GIT_EXTERN(int) git_config_parse_int32(int32_t *out, const char *value);
702
715
  *
703
716
  * @param out place to store the result of the parsing
704
717
  * @param value value to parse
718
+ * @return 0 or an error code.
705
719
  */
706
720
  GIT_EXTERN(int) git_config_parse_int64(int64_t *out, const char *value);
707
721
 
@@ -717,6 +731,7 @@ GIT_EXTERN(int) git_config_parse_int64(int64_t *out, const char *value);
717
731
  *
718
732
  * @param out placae to store the result of parsing
719
733
  * @param value the path to evaluate
734
+ * @return 0 or an error code.
720
735
  */
721
736
  GIT_EXTERN(int) git_config_parse_path(git_buf *out, const char *value);
722
737
 
@@ -735,6 +750,7 @@ GIT_EXTERN(int) git_config_parse_path(git_buf *out, const char *value);
735
750
  * @param regexp regular expression to match against config names (can be NULL)
736
751
  * @param callback the function to call on each variable
737
752
  * @param payload the data to pass to the callback
753
+ * @return 0 or an error code.
738
754
  */
739
755
  GIT_EXTERN(int) git_config_backend_foreach_match(
740
756
  git_config_backend *backend,
@@ -75,7 +75,7 @@ typedef enum {
75
75
  *
76
76
  * @see git_credential_ssh_key_memory_new
77
77
  */
78
- GIT_CREDENTIAL_SSH_MEMORY = (1u << 6),
78
+ GIT_CREDENTIAL_SSH_MEMORY = (1u << 6)
79
79
  } git_credential_t;
80
80
 
81
81
  /**
@@ -254,6 +254,7 @@ typedef void GIT_CALLBACK(git_credential_ssh_interactive_cb)(
254
254
  * Create a new ssh keyboard-interactive based credential object.
255
255
  * The supplied credential parameter will be internally duplicated.
256
256
  *
257
+ * @param out The newly created credential object.
257
258
  * @param username Username to use to authenticate.
258
259
  * @param prompt_callback The callback method used for prompts.
259
260
  * @param payload Additional data to pass to the callback.
@@ -39,6 +39,7 @@ typedef struct git_credential_userpass_payload {
39
39
  * @param allowed_types A bitmask stating which credential types are OK to return.
40
40
  * @param payload The payload provided when specifying this callback. (This is
41
41
  * interpreted as a `git_credential_userpass_payload*`.)
42
+ * @return 0 or an error code.
42
43
  */
43
44
  GIT_EXTERN(int) git_credential_userpass(
44
45
  git_credential **out,
@@ -313,7 +313,7 @@ typedef enum {
313
313
  GIT_DIFF_FORMAT_EMAIL_NONE = 0,
314
314
 
315
315
  /** Don't insert "[PATCH]" in the subject header*/
316
- GIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER = (1 << 0),
316
+ GIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER = (1 << 0)
317
317
 
318
318
  } git_diff_format_email_flags_t;
319
319
 
@@ -30,7 +30,7 @@ GIT_BEGIN_DECL
30
30
  typedef enum {
31
31
  GIT_DESCRIBE_DEFAULT,
32
32
  GIT_DESCRIBE_TAGS,
33
- GIT_DESCRIBE_ALL,
33
+ GIT_DESCRIBE_ALL
34
34
  } git_describe_strategy_t;
35
35
 
36
36
  /**
@@ -142,6 +142,7 @@ typedef struct git_describe_result git_describe_result;
142
142
  * you're done with it.
143
143
  * @param committish a committish to describe
144
144
  * @param opts the lookup options (or NULL for defaults)
145
+ * @return 0 or an error code.
145
146
  */
146
147
  GIT_EXTERN(int) git_describe_commit(
147
148
  git_describe_result **result,
@@ -152,13 +153,14 @@ GIT_EXTERN(int) git_describe_commit(
152
153
  * Describe a commit
153
154
  *
154
155
  * Perform the describe operation on the current commit and the
155
- * worktree. After peforming describe on HEAD, a status is run and the
156
+ * worktree. After performing describe on HEAD, a status is run and the
156
157
  * description is considered to be dirty if there are.
157
158
  *
158
159
  * @param out pointer to store the result. You must free this once
159
160
  * you're done with it.
160
161
  * @param repo the repository in which to perform the describe
161
162
  * @param opts the lookup options (or NULL for defaults)
163
+ * @return 0 or an error code.
162
164
  */
163
165
  GIT_EXTERN(int) git_describe_workdir(
164
166
  git_describe_result **out,
@@ -172,6 +174,7 @@ GIT_EXTERN(int) git_describe_workdir(
172
174
  * @param result the result from `git_describe_commit()` or
173
175
  * `git_describe_workdir()`.
174
176
  * @param opts the formatting options (or NULL for defaults)
177
+ * @return 0 or an error code.
175
178
  */
176
179
  GIT_EXTERN(int) git_describe_format(
177
180
  git_buf *out,
@@ -180,6 +183,8 @@ GIT_EXTERN(int) git_describe_format(
180
183
 
181
184
  /**
182
185
  * Free the describe result.
186
+ *
187
+ * @param result The result to free.
183
188
  */
184
189
  GIT_EXTERN(void) git_describe_result_free(git_describe_result *result);
185
190