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
@@ -247,7 +247,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
247
247
  int error = 0, i, valid;
248
248
  bool fallbackmode = true, foundvalid = false;
249
249
  git_reference *ref;
250
- git_buf refnamebuf = GIT_BUF_INIT, name = GIT_BUF_INIT;
250
+ git_str refnamebuf = GIT_STR_INIT, name = GIT_STR_INIT;
251
251
 
252
252
  static const char *formatters[] = {
253
253
  "%s",
@@ -260,18 +260,18 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
260
260
  };
261
261
 
262
262
  if (*refname)
263
- git_buf_puts(&name, refname);
263
+ git_str_puts(&name, refname);
264
264
  else {
265
- git_buf_puts(&name, GIT_HEAD_FILE);
265
+ git_str_puts(&name, GIT_HEAD_FILE);
266
266
  fallbackmode = false;
267
267
  }
268
268
 
269
269
  for (i = 0; formatters[i] && (fallbackmode || i == 0); i++) {
270
270
 
271
- git_buf_clear(&refnamebuf);
271
+ git_str_clear(&refnamebuf);
272
272
 
273
- if ((error = git_buf_printf(&refnamebuf, formatters[i], git_buf_cstr(&name))) < 0 ||
274
- (error = git_reference_name_is_valid(&valid, git_buf_cstr(&refnamebuf))) < 0)
273
+ if ((error = git_str_printf(&refnamebuf, formatters[i], git_str_cstr(&name))) < 0 ||
274
+ (error = git_reference_name_is_valid(&valid, git_str_cstr(&refnamebuf))) < 0)
275
275
  goto cleanup;
276
276
 
277
277
  if (!valid) {
@@ -280,7 +280,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
280
280
  }
281
281
  foundvalid = true;
282
282
 
283
- error = git_reference_lookup_resolved(&ref, repo, git_buf_cstr(&refnamebuf), -1);
283
+ error = git_reference_lookup_resolved(&ref, repo, git_str_cstr(&refnamebuf), -1);
284
284
 
285
285
  if (!error) {
286
286
  *out = ref;
@@ -296,14 +296,14 @@ cleanup:
296
296
  if (error && !foundvalid) {
297
297
  /* never found a valid reference name */
298
298
  git_error_set(GIT_ERROR_REFERENCE,
299
- "could not use '%s' as valid reference name", git_buf_cstr(&name));
299
+ "could not use '%s' as valid reference name", git_str_cstr(&name));
300
300
  }
301
301
 
302
302
  if (error == GIT_ENOTFOUND)
303
303
  git_error_set(GIT_ERROR_REFERENCE, "no reference found for shorthand '%s'", refname);
304
304
 
305
- git_buf_dispose(&name);
306
- git_buf_dispose(&refnamebuf);
305
+ git_str_dispose(&name);
306
+ git_str_dispose(&refnamebuf);
307
307
  return error;
308
308
  }
309
309
 
@@ -891,7 +891,7 @@ static bool is_all_caps_and_underscore(const char *name, size_t len)
891
891
 
892
892
  /* Inspired from https://github.com/git/git/blob/f06d47e7e0d9db709ee204ed13a8a7486149f494/refs.c#L36-100 */
893
893
  int git_reference__normalize_name(
894
- git_buf *buf,
894
+ git_str *buf,
895
895
  const char *name,
896
896
  unsigned int flags)
897
897
  {
@@ -902,7 +902,7 @@ int git_reference__normalize_name(
902
902
  bool validate = (flags & GIT_REFERENCE_FORMAT__VALIDATION_DISABLE) == 0;
903
903
 
904
904
  #ifdef GIT_USE_ICONV
905
- git_path_iconv_t ic = GIT_PATH_ICONV_INIT;
905
+ git_fs_path_iconv_t ic = GIT_PATH_ICONV_INIT;
906
906
  #endif
907
907
 
908
908
  GIT_ASSERT_ARG(name);
@@ -914,22 +914,22 @@ int git_reference__normalize_name(
914
914
  goto cleanup;
915
915
 
916
916
  if (normalize)
917
- git_buf_clear(buf);
917
+ git_str_clear(buf);
918
918
 
919
919
  #ifdef GIT_USE_ICONV
920
920
  if ((flags & GIT_REFERENCE_FORMAT__PRECOMPOSE_UNICODE) != 0) {
921
921
  size_t namelen = strlen(current);
922
- if ((error = git_path_iconv_init_precompose(&ic)) < 0 ||
923
- (error = git_path_iconv(&ic, &current, &namelen)) < 0)
922
+ if ((error = git_fs_path_iconv_init_precompose(&ic)) < 0 ||
923
+ (error = git_fs_path_iconv(&ic, &current, &namelen)) < 0)
924
924
  goto cleanup;
925
925
  error = GIT_EINVALIDSPEC;
926
926
  }
927
927
  #endif
928
928
 
929
929
  if (!validate) {
930
- git_buf_sets(buf, current);
930
+ git_str_sets(buf, current);
931
931
 
932
- error = git_buf_oom(buf) ? -1 : 0;
932
+ error = git_str_oom(buf) ? -1 : 0;
933
933
  goto cleanup;
934
934
  }
935
935
 
@@ -949,13 +949,13 @@ int git_reference__normalize_name(
949
949
  process_flags &= ~GIT_REFERENCE_FORMAT_REFSPEC_PATTERN;
950
950
 
951
951
  if (normalize) {
952
- size_t cur_len = git_buf_len(buf);
952
+ size_t cur_len = git_str_len(buf);
953
953
 
954
- git_buf_joinpath(buf, git_buf_cstr(buf), current);
955
- git_buf_truncate(buf,
954
+ git_str_joinpath(buf, git_str_cstr(buf), current);
955
+ git_str_truncate(buf,
956
956
  cur_len + segment_len + (segments_count ? 1 : 0));
957
957
 
958
- if (git_buf_oom(buf)) {
958
+ if (git_str_oom(buf)) {
959
959
  error = -1;
960
960
  goto cleanup;
961
961
  }
@@ -1008,10 +1008,10 @@ cleanup:
1008
1008
  "the given reference name '%s' is not valid", name);
1009
1009
 
1010
1010
  if (error && normalize)
1011
- git_buf_dispose(buf);
1011
+ git_str_dispose(buf);
1012
1012
 
1013
1013
  #ifdef GIT_USE_ICONV
1014
- git_path_iconv_clear(&ic);
1014
+ git_fs_path_iconv_clear(&ic);
1015
1015
  #endif
1016
1016
 
1017
1017
  return error;
@@ -1023,13 +1023,13 @@ int git_reference_normalize_name(
1023
1023
  const char *name,
1024
1024
  unsigned int flags)
1025
1025
  {
1026
- git_buf buf = GIT_BUF_INIT;
1026
+ git_str buf = GIT_STR_INIT;
1027
1027
  int error;
1028
1028
 
1029
1029
  if ((error = git_reference__normalize_name(&buf, name, flags)) < 0)
1030
1030
  goto cleanup;
1031
1031
 
1032
- if (git_buf_len(&buf) > buffer_size - 1) {
1032
+ if (git_str_len(&buf) > buffer_size - 1) {
1033
1033
  git_error_set(
1034
1034
  GIT_ERROR_REFERENCE,
1035
1035
  "the provided buffer is too short to hold the normalization of '%s'", name);
@@ -1037,13 +1037,13 @@ int git_reference_normalize_name(
1037
1037
  goto cleanup;
1038
1038
  }
1039
1039
 
1040
- if ((error = git_buf_copy_cstr(buffer_out, buffer_size, &buf)) < 0)
1040
+ if ((error = git_str_copy_cstr(buffer_out, buffer_size, &buf)) < 0)
1041
1041
  goto cleanup;
1042
1042
 
1043
1043
  error = 0;
1044
1044
 
1045
1045
  cleanup:
1046
- git_buf_dispose(&buf);
1046
+ git_str_dispose(&buf);
1047
1047
  return error;
1048
1048
  }
1049
1049
 
@@ -1143,12 +1143,12 @@ int git_reference__update_for_commit(
1143
1143
  {
1144
1144
  git_reference *ref_new = NULL;
1145
1145
  git_commit *commit = NULL;
1146
- git_buf reflog_msg = GIT_BUF_INIT;
1146
+ git_str reflog_msg = GIT_STR_INIT;
1147
1147
  const git_signature *who;
1148
1148
  int error;
1149
1149
 
1150
1150
  if ((error = git_commit_lookup(&commit, repo, id)) < 0 ||
1151
- (error = git_buf_printf(&reflog_msg, "%s%s: %s",
1151
+ (error = git_str_printf(&reflog_msg, "%s%s: %s",
1152
1152
  operation ? operation : "commit",
1153
1153
  commit_type(commit),
1154
1154
  git_commit_summary(commit))) < 0)
@@ -1161,15 +1161,15 @@ int git_reference__update_for_commit(
1161
1161
  return error;
1162
1162
 
1163
1163
  error = reference__create(&ref_new, repo, ref->name, id, NULL, 1, who,
1164
- git_buf_cstr(&reflog_msg), &ref->target.oid, NULL);
1164
+ git_str_cstr(&reflog_msg), &ref->target.oid, NULL);
1165
1165
  }
1166
1166
  else
1167
1167
  error = git_reference__update_terminal(
1168
- repo, ref_name, id, who, git_buf_cstr(&reflog_msg));
1168
+ repo, ref_name, id, who, git_str_cstr(&reflog_msg));
1169
1169
 
1170
1170
  done:
1171
1171
  git_reference_free(ref_new);
1172
- git_buf_dispose(&reflog_msg);
1172
+ git_str_dispose(&reflog_msg);
1173
1173
  git_commit_free(commit);
1174
1174
  return error;
1175
1175
  }
@@ -13,7 +13,7 @@
13
13
  #include "git2/refs.h"
14
14
  #include "git2/refdb.h"
15
15
  #include "strmap.h"
16
- #include "buffer.h"
16
+ #include "str.h"
17
17
  #include "oid.h"
18
18
 
19
19
  extern bool git_reference__enable_symbolic_ref_target_validation;
@@ -83,7 +83,7 @@ struct git_reference {
83
83
  */
84
84
  git_reference *git_reference__realloc(git_reference **ptr_to_ref, const char *name);
85
85
 
86
- int git_reference__normalize_name(git_buf *buf, const char *name, unsigned int flags);
86
+ int git_reference__normalize_name(git_str *buf, const char *name, unsigned int flags);
87
87
  int git_reference__update_terminal(git_repository *repo, const char *ref_name, const git_oid *oid, const git_signature *sig, const char *log_message);
88
88
  int git_reference__name_is_valid(int *valid, const char *name, unsigned int flags);
89
89
  int git_reference__is_branch(const char *ref_name);
@@ -7,8 +7,7 @@
7
7
 
8
8
  #include "refspec.h"
9
9
 
10
- #include "git2/errors.h"
11
-
10
+ #include "buf.h"
12
11
  #include "refs.h"
13
12
  #include "util.h"
14
13
  #include "vector.h"
@@ -243,16 +242,12 @@ int git_refspec_dst_matches(const git_refspec *refspec, const char *refname)
243
242
  }
244
243
 
245
244
  static int refspec_transform(
246
- git_buf *out, const char *from, const char *to, const char *name)
245
+ git_str *out, const char *from, const char *to, const char *name)
247
246
  {
248
247
  const char *from_star, *to_star;
249
248
  size_t replacement_len, star_offset;
250
- int error;
251
-
252
- if ((error = git_buf_sanitize(out)) < 0)
253
- return error;
254
249
 
255
- git_buf_clear(out);
250
+ git_str_clear(out);
256
251
 
257
252
  /*
258
253
  * There are two parts to each side of a refspec, the bit
@@ -269,72 +264,72 @@ static int refspec_transform(
269
264
  star_offset = from_star - from;
270
265
 
271
266
  /* the first half is copied over */
272
- git_buf_put(out, to, to_star - to);
267
+ git_str_put(out, to, to_star - to);
273
268
 
274
269
  /*
275
270
  * Copy over the name, but exclude the trailing part in "from" starting
276
271
  * after the glob
277
272
  */
278
273
  replacement_len = strlen(name + star_offset) - strlen(from_star + 1);
279
- git_buf_put(out, name + star_offset, replacement_len);
274
+ git_str_put(out, name + star_offset, replacement_len);
280
275
 
281
- return git_buf_puts(out, to_star + 1);
276
+ return git_str_puts(out, to_star + 1);
282
277
  }
283
278
 
284
279
  int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name)
285
280
  {
286
- int error;
281
+ GIT_BUF_WRAP_PRIVATE(out, git_refspec__transform, spec, name);
282
+ }
287
283
 
284
+ int git_refspec__transform(git_str *out, const git_refspec *spec, const char *name)
285
+ {
288
286
  GIT_ASSERT_ARG(out);
289
287
  GIT_ASSERT_ARG(spec);
290
288
  GIT_ASSERT_ARG(name);
291
289
 
292
- if ((error = git_buf_sanitize(out)) < 0)
293
- return error;
294
-
295
290
  if (!git_refspec_src_matches(spec, name)) {
296
291
  git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the source", name);
297
292
  return -1;
298
293
  }
299
294
 
300
295
  if (!spec->pattern)
301
- return git_buf_puts(out, spec->dst ? spec->dst : "");
296
+ return git_str_puts(out, spec->dst ? spec->dst : "");
302
297
 
303
298
  return refspec_transform(out, spec->src, spec->dst, name);
304
299
  }
305
300
 
306
301
  int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name)
307
302
  {
308
- int error;
303
+ GIT_BUF_WRAP_PRIVATE(out, git_refspec__rtransform, spec, name);
304
+ }
309
305
 
306
+ int git_refspec__rtransform(git_str *out, const git_refspec *spec, const char *name)
307
+ {
310
308
  GIT_ASSERT_ARG(out);
311
309
  GIT_ASSERT_ARG(spec);
312
310
  GIT_ASSERT_ARG(name);
313
311
 
314
- if ((error = git_buf_sanitize(out)) < 0)
315
- return error;
316
-
317
312
  if (!git_refspec_dst_matches(spec, name)) {
318
313
  git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the destination", name);
319
314
  return -1;
320
315
  }
321
316
 
322
317
  if (!spec->pattern)
323
- return git_buf_puts(out, spec->src);
318
+ return git_str_puts(out, spec->src);
324
319
 
325
320
  return refspec_transform(out, spec->dst, spec->src, name);
326
321
  }
327
322
 
328
- int git_refspec__serialize(git_buf *out, const git_refspec *refspec)
323
+ int git_refspec__serialize(git_str *out, const git_refspec *refspec)
329
324
  {
330
325
  if (refspec->force)
331
- git_buf_putc(out, '+');
326
+ git_str_putc(out, '+');
332
327
 
333
- git_buf_printf(out, "%s:%s",
328
+ git_str_printf(out, "%s:%s",
334
329
  refspec->src != NULL ? refspec->src : "",
335
330
  refspec->dst != NULL ? refspec->dst : "");
336
331
 
337
- return git_buf_oom(out) == false;
332
+ return git_str_oom(out) == false;
338
333
  }
339
334
 
340
335
  int git_refspec_is_wildcard(const git_refspec *spec)
@@ -354,7 +349,7 @@ git_direction git_refspec_direction(const git_refspec *spec)
354
349
 
355
350
  int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
356
351
  {
357
- git_buf buf = GIT_BUF_INIT;
352
+ git_str buf = GIT_STR_INIT;
358
353
  size_t j, pos;
359
354
  git_remote_head key;
360
355
  git_refspec *cur;
@@ -382,14 +377,14 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
382
377
  /* shorthand on the lhs */
383
378
  if (git__prefixcmp(spec->src, GIT_REFS_DIR)) {
384
379
  for (j = 0; formatters[j]; j++) {
385
- git_buf_clear(&buf);
386
- git_buf_printf(&buf, formatters[j], spec->src);
387
- GIT_ERROR_CHECK_ALLOC_BUF(&buf);
380
+ git_str_clear(&buf);
381
+ git_str_printf(&buf, formatters[j], spec->src);
382
+ GIT_ERROR_CHECK_ALLOC_STR(&buf);
388
383
 
389
- key.name = (char *) git_buf_cstr(&buf);
384
+ key.name = (char *) git_str_cstr(&buf);
390
385
  if (!git_vector_search(&pos, refs, &key)) {
391
386
  /* we found something to match the shorthand, set src to that */
392
- cur->src = git_buf_detach(&buf);
387
+ cur->src = git_str_detach(&buf);
393
388
  }
394
389
  }
395
390
  }
@@ -403,18 +398,18 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
403
398
  if (spec->dst && git__prefixcmp(spec->dst, GIT_REFS_DIR)) {
404
399
  /* if it starts with "remotes" then we just prepend "refs/" */
405
400
  if (!git__prefixcmp(spec->dst, "remotes/")) {
406
- git_buf_puts(&buf, GIT_REFS_DIR);
401
+ git_str_puts(&buf, GIT_REFS_DIR);
407
402
  } else {
408
- git_buf_puts(&buf, GIT_REFS_HEADS_DIR);
403
+ git_str_puts(&buf, GIT_REFS_HEADS_DIR);
409
404
  }
410
405
 
411
- git_buf_puts(&buf, spec->dst);
412
- GIT_ERROR_CHECK_ALLOC_BUF(&buf);
406
+ git_str_puts(&buf, spec->dst);
407
+ GIT_ERROR_CHECK_ALLOC_STR(&buf);
413
408
 
414
- cur->dst = git_buf_detach(&buf);
409
+ cur->dst = git_str_detach(&buf);
415
410
  }
416
411
 
417
- git_buf_dispose(&buf);
412
+ git_str_dispose(&buf);
418
413
 
419
414
  if (cur->dst == NULL && spec->dst != NULL) {
420
415
  cur->dst = git__strdup(spec->dst);
@@ -10,7 +10,7 @@
10
10
  #include "common.h"
11
11
 
12
12
  #include "git2/refspec.h"
13
- #include "buffer.h"
13
+ #include "str.h"
14
14
  #include "vector.h"
15
15
 
16
16
  struct git_refspec {
@@ -25,6 +25,9 @@ struct git_refspec {
25
25
 
26
26
  #define GIT_REFSPEC_TAGS "refs/tags/*:refs/tags/*"
27
27
 
28
+ int git_refspec__transform(git_str *out, const git_refspec *spec, const char *name);
29
+ int git_refspec__rtransform(git_str *out, const git_refspec *spec, const char *name);
30
+
28
31
  int git_refspec__parse(
29
32
  struct git_refspec *refspec,
30
33
  const char *str,
@@ -32,7 +35,7 @@ int git_refspec__parse(
32
35
 
33
36
  void git_refspec__dispose(git_refspec *refspec);
34
37
 
35
- int git_refspec__serialize(git_buf *out, const git_refspec *refspec);
38
+ int git_refspec__serialize(git_str *out, const git_refspec *refspec);
36
39
 
37
40
  /**
38
41
  * Determines if a refspec is a wildcard refspec.
@@ -45,7 +45,7 @@ int git_regexp_search(const git_regexp *r, const char *string, size_t nmatches,
45
45
  int error;
46
46
  size_t i;
47
47
 
48
- /* The ovec array always needs to be a mutiple of three */
48
+ /* The ovec array always needs to be a multiple of three */
49
49
  if (nmatches <= ARRAY_SIZE(static_ovec) / 3)
50
50
  ovec = static_ovec;
51
51
  else