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
@@ -7,11 +7,8 @@
7
7
 
8
8
  #include "submodule.h"
9
9
 
10
- #include "git2/config.h"
11
- #include "git2/sys/config.h"
12
- #include "git2/types.h"
13
- #include "git2/index.h"
14
- #include "buffer.h"
10
+ #include "buf.h"
11
+ #include "branch.h"
15
12
  #include "vector.h"
16
13
  #include "posix.h"
17
14
  #include "config_backend.h"
@@ -19,10 +16,17 @@
19
16
  #include "repository.h"
20
17
  #include "tree.h"
21
18
  #include "iterator.h"
22
- #include "path.h"
19
+ #include "fs_path.h"
20
+ #include "str.h"
23
21
  #include "index.h"
24
22
  #include "worktree.h"
25
23
  #include "clone.h"
24
+ #include "path.h"
25
+
26
+ #include "git2/config.h"
27
+ #include "git2/sys/config.h"
28
+ #include "git2/types.h"
29
+ #include "git2/index.h"
26
30
 
27
31
  #define GIT_MODULES_FILE ".gitmodules"
28
32
 
@@ -57,14 +61,14 @@ enum {
57
61
  };
58
62
  enum {
59
63
  GITMODULES_EXISTING = 0,
60
- GITMODULES_CREATE = 1,
64
+ GITMODULES_CREATE = 1
61
65
  };
62
66
 
63
67
  static int submodule_alloc(git_submodule **out, git_repository *repo, const char *name);
64
68
  static git_config_backend *open_gitmodules(git_repository *repo, int gitmod);
65
69
  static int gitmodules_snapshot(git_config **snap, git_repository *repo);
66
- static int get_url_base(git_buf *url, git_repository *repo);
67
- static int lookup_head_remote_key(git_buf *remote_key, git_repository *repo);
70
+ static int get_url_base(git_str *url, git_repository *repo);
71
+ static int lookup_head_remote_key(git_str *remote_key, git_repository *repo);
68
72
  static int lookup_default_remote(git_remote **remote, git_repository *repo);
69
73
  static int submodule_load_each(const git_config_entry *entry, void *payload);
70
74
  static int submodule_read_config(git_submodule *sm, git_config *cfg);
@@ -79,11 +83,11 @@ static int submodule_cmp(const void *a, const void *b)
79
83
  return strcmp(((git_submodule *)a)->name, ((git_submodule *)b)->name);
80
84
  }
81
85
 
82
- static int submodule_config_key_trunc_puts(git_buf *key, const char *suffix)
86
+ static int submodule_config_key_trunc_puts(git_str *key, const char *suffix)
83
87
  {
84
- ssize_t idx = git_buf_rfind(key, '.');
85
- git_buf_truncate(key, (size_t)(idx + 1));
86
- return git_buf_puts(key, suffix);
88
+ ssize_t idx = git_str_rfind(key, '.');
89
+ git_str_truncate(key, (size_t)(idx + 1));
90
+ return git_str_puts(key, suffix);
87
91
  }
88
92
 
89
93
  /*
@@ -128,7 +132,7 @@ static int is_path_occupied(bool *occupied, git_repository *repo, const char *pa
128
132
  {
129
133
  int error = 0;
130
134
  git_index *index;
131
- git_buf dir = GIT_BUF_INIT;
135
+ git_str dir = GIT_STR_INIT;
132
136
  *occupied = false;
133
137
 
134
138
  if ((error = git_repository_index__weakptr(&index, repo)) < 0)
@@ -143,10 +147,10 @@ static int is_path_occupied(bool *occupied, git_repository *repo, const char *pa
143
147
  goto out;
144
148
  }
145
149
 
146
- if ((error = git_buf_sets(&dir, path)) < 0)
150
+ if ((error = git_str_sets(&dir, path)) < 0)
147
151
  goto out;
148
152
 
149
- if ((error = git_path_to_dir(&dir)) < 0)
153
+ if ((error = git_fs_path_to_dir(&dir)) < 0)
150
154
  goto out;
151
155
 
152
156
  if ((error = git_index_find_prefix(NULL, index, dir.ptr)) != GIT_ENOTFOUND) {
@@ -161,7 +165,7 @@ static int is_path_occupied(bool *occupied, git_repository *repo, const char *pa
161
165
  error = 0;
162
166
 
163
167
  out:
164
- git_buf_dispose(&dir);
168
+ git_str_dispose(&dir);
165
169
  return error;
166
170
  }
167
171
 
@@ -195,7 +199,7 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
195
199
  const char *key = "submodule\\..*\\.path";
196
200
  git_config_iterator *iter = NULL;
197
201
  git_config_entry *entry;
198
- git_buf buf = GIT_BUF_INIT;
202
+ git_str buf = GIT_STR_INIT;
199
203
  git_strmap *names;
200
204
  int isvalid, error;
201
205
 
@@ -219,8 +223,8 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
219
223
  goto out;
220
224
  }
221
225
 
222
- git_buf_clear(&buf);
223
- git_buf_put(&buf, fdot + 1, ldot - fdot - 1);
226
+ git_str_clear(&buf);
227
+ git_str_put(&buf, fdot + 1, ldot - fdot - 1);
224
228
  isvalid = git_submodule_name_is_valid(repo, buf.ptr, 0);
225
229
  if (isvalid < 0) {
226
230
  error = isvalid;
@@ -229,7 +233,7 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
229
233
  if (!isvalid)
230
234
  continue;
231
235
 
232
- if ((error = git_strmap_set(names, git__strdup(entry->value), git_buf_detach(&buf))) < 0) {
236
+ if ((error = git_strmap_set(names, git__strdup(entry->value), git_str_detach(&buf))) < 0) {
233
237
  git_error_set(GIT_ERROR_NOMEMORY, "error inserting submodule into hash table");
234
238
  error = -1;
235
239
  goto out;
@@ -243,7 +247,7 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
243
247
 
244
248
  out:
245
249
  free_submodule_names(names);
246
- git_buf_dispose(&buf);
250
+ git_str_dispose(&buf);
247
251
  git_config_iterator_free(iter);
248
252
  return error;
249
253
  }
@@ -329,10 +333,10 @@ int git_submodule__lookup_with_cache(
329
333
  if (location == 0 || location == GIT_SUBMODULE_STATUS_IN_WD) {
330
334
  git_config_backend *mods;
331
335
  const char *pattern = "submodule\\..*\\.path";
332
- git_buf path = GIT_BUF_INIT;
336
+ git_str path = GIT_STR_INIT;
333
337
  fbp_data data = { NULL, NULL };
334
338
 
335
- git_buf_puts(&path, name);
339
+ git_str_puts(&path, name);
336
340
  while (path.ptr[path.size-1] == '/') {
337
341
  path.ptr[--path.size] = '\0';
338
342
  }
@@ -347,14 +351,14 @@ int git_submodule__lookup_with_cache(
347
351
 
348
352
  if (error < 0) {
349
353
  git_submodule_free(sm);
350
- git_buf_dispose(&path);
354
+ git_str_dispose(&path);
351
355
  return error;
352
356
  }
353
357
 
354
358
  if (data.name) {
355
359
  git__free(sm->name);
356
360
  sm->name = data.name;
357
- sm->path = git_buf_detach(&path);
361
+ sm->path = git_str_detach(&path);
358
362
 
359
363
  /* Try to load again with the right name */
360
364
  if ((error = git_submodule_reload(sm, false)) < 0) {
@@ -363,7 +367,7 @@ int git_submodule__lookup_with_cache(
363
367
  }
364
368
  }
365
369
 
366
- git_buf_dispose(&path);
370
+ git_str_dispose(&path);
367
371
  }
368
372
 
369
373
  if ((error = git_submodule_location(&location, sm)) < 0) {
@@ -378,17 +382,17 @@ int git_submodule__lookup_with_cache(
378
382
 
379
383
  /* If it's not configured, we still check if there's a repo at the path */
380
384
  if (git_repository_workdir(repo)) {
381
- git_buf path = GIT_BUF_INIT;
382
- if (git_buf_join3(&path, '/',
385
+ git_str path = GIT_STR_INIT;
386
+ if (git_str_join3(&path, '/',
383
387
  git_repository_workdir(repo),
384
388
  name, DOT_GIT) < 0 ||
385
- git_path_validate_workdir_buf(NULL, &path) < 0)
389
+ git_path_validate_str_length(NULL, &path) < 0)
386
390
  return -1;
387
391
 
388
- if (git_path_exists(path.ptr))
392
+ if (git_fs_path_exists(path.ptr))
389
393
  error = GIT_EEXISTS;
390
394
 
391
- git_buf_dispose(&path);
395
+ git_str_dispose(&path);
392
396
  }
393
397
 
394
398
  submodule_set_lookup_error(error, name);
@@ -405,22 +409,22 @@ int git_submodule__lookup_with_cache(
405
409
 
406
410
  int git_submodule_name_is_valid(git_repository *repo, const char *name, int flags)
407
411
  {
408
- git_buf buf = GIT_BUF_INIT;
412
+ git_str buf = GIT_STR_INIT;
409
413
  int error, isvalid;
410
414
 
411
415
  if (flags == 0)
412
- flags = GIT_PATH_REJECT_FILESYSTEM_DEFAULTS;
416
+ flags = GIT_FS_PATH_REJECT_FILESYSTEM_DEFAULTS;
413
417
 
414
418
  /* Avoid allocating a new string if we can avoid it */
415
419
  if (strchr(name, '\\') != NULL) {
416
- if ((error = git_path_normalize_slashes(&buf, name)) < 0)
420
+ if ((error = git_fs_path_normalize_slashes(&buf, name)) < 0)
417
421
  return error;
418
422
  } else {
419
- git_buf_attach_notowned(&buf, name, strlen(name));
423
+ git_str_attach_notowned(&buf, name, strlen(name));
420
424
  }
421
425
 
422
- isvalid = git_path_validate(repo, buf.ptr, 0, flags);
423
- git_buf_dispose(&buf);
426
+ isvalid = git_path_is_valid(repo, buf.ptr, 0, flags);
427
+ git_str_dispose(&buf);
424
428
 
425
429
  return isvalid;
426
430
  }
@@ -554,7 +558,7 @@ int git_submodule__map(git_repository *repo, git_strmap *map)
554
558
  int error = 0;
555
559
  git_index *idx = NULL;
556
560
  git_tree *head = NULL;
557
- git_buf path = GIT_BUF_INIT;
561
+ git_str path = GIT_STR_INIT;
558
562
  git_submodule *sm;
559
563
  git_config *mods = NULL;
560
564
  bool has_workdir;
@@ -613,7 +617,7 @@ cleanup:
613
617
  /* TODO: if we got an error, mark submodule config as invalid? */
614
618
  git_index_free(idx);
615
619
  git_tree_free(head);
616
- git_buf_dispose(&path);
620
+ git_str_dispose(&path);
617
621
  return error;
618
622
  }
619
623
 
@@ -682,7 +686,7 @@ static int submodule_repo_init(
682
686
  bool use_gitlink)
683
687
  {
684
688
  int error = 0;
685
- git_buf workdir = GIT_BUF_INIT, repodir = GIT_BUF_INIT;
689
+ git_str workdir = GIT_STR_INIT, repodir = GIT_STR_INIT;
686
690
  git_repository_init_options initopt = GIT_REPOSITORY_INIT_OPTIONS_INIT;
687
691
  git_repository *subrepo = NULL;
688
692
 
@@ -701,10 +705,10 @@ static int submodule_repo_init(
701
705
  * Old style: sub-repo goes directly into repo/<name>/.git/
702
706
  */
703
707
  if (use_gitlink) {
704
- error = git_repository_item_path(&repodir, parent_repo, GIT_REPOSITORY_ITEM_MODULES);
708
+ error = git_repository__item_path(&repodir, parent_repo, GIT_REPOSITORY_ITEM_MODULES);
705
709
  if (error < 0)
706
710
  goto cleanup;
707
- error = git_buf_joinpath(&repodir, repodir.ptr, path);
711
+ error = git_str_joinpath(&repodir, repodir.ptr, path);
708
712
  if (error < 0)
709
713
  goto cleanup;
710
714
 
@@ -718,14 +722,57 @@ static int submodule_repo_init(
718
722
  error = git_repository_init_ext(&subrepo, workdir.ptr, &initopt);
719
723
 
720
724
  cleanup:
721
- git_buf_dispose(&workdir);
722
- git_buf_dispose(&repodir);
725
+ git_str_dispose(&workdir);
726
+ git_str_dispose(&repodir);
723
727
 
724
728
  *out = subrepo;
725
729
 
726
730
  return error;
727
731
  }
728
732
 
733
+ static int git_submodule__resolve_url(
734
+ git_str *out,
735
+ git_repository *repo,
736
+ const char *url)
737
+ {
738
+ int error = 0;
739
+ git_str normalized = GIT_STR_INIT;
740
+
741
+ GIT_ASSERT_ARG(out);
742
+ GIT_ASSERT_ARG(repo);
743
+ GIT_ASSERT_ARG(url);
744
+
745
+ /* We do this in all platforms in case someone on Windows created the .gitmodules */
746
+ if (strchr(url, '\\')) {
747
+ if ((error = git_fs_path_normalize_slashes(&normalized, url)) < 0)
748
+ return error;
749
+
750
+ url = normalized.ptr;
751
+ }
752
+
753
+
754
+ if (git_fs_path_is_relative(url)) {
755
+ if (!(error = get_url_base(out, repo)))
756
+ error = git_fs_path_apply_relative(out, url);
757
+ } else if (strchr(url, ':') != NULL || url[0] == '/') {
758
+ error = git_str_sets(out, url);
759
+ } else {
760
+ git_error_set(GIT_ERROR_SUBMODULE, "invalid format for submodule URL");
761
+ error = -1;
762
+ }
763
+
764
+ git_str_dispose(&normalized);
765
+ return error;
766
+ }
767
+
768
+ int git_submodule_resolve_url(
769
+ git_buf *out,
770
+ git_repository *repo,
771
+ const char *url)
772
+ {
773
+ GIT_BUF_WRAP_PRIVATE(out, git_submodule__resolve_url, repo, url);
774
+ }
775
+
729
776
  int git_submodule_add_setup(
730
777
  git_submodule **out,
731
778
  git_repository *repo,
@@ -736,7 +783,7 @@ int git_submodule_add_setup(
736
783
  int error = 0;
737
784
  git_config_backend *mods = NULL;
738
785
  git_submodule *sm = NULL;
739
- git_buf name = GIT_BUF_INIT, real_url = GIT_BUF_INIT;
786
+ git_str name = GIT_STR_INIT, real_url = GIT_STR_INIT;
740
787
  git_repository *subrepo = NULL;
741
788
  bool path_occupied;
742
789
 
@@ -759,7 +806,7 @@ int git_submodule_add_setup(
759
806
  if (git__prefixcmp(path, git_repository_workdir(repo)) == 0)
760
807
  path += strlen(git_repository_workdir(repo));
761
808
 
762
- if (git_path_root(path) >= 0) {
809
+ if (git_fs_path_root(path) >= 0) {
763
810
  git_error_set(GIT_ERROR_SUBMODULE, "submodule path must be a relative path");
764
811
  error = -1;
765
812
  goto cleanup;
@@ -781,7 +828,7 @@ int git_submodule_add_setup(
781
828
  return -1;
782
829
  }
783
830
 
784
- if ((error = git_buf_printf(&name, "submodule.%s.path", path)) < 0 ||
831
+ if ((error = git_str_printf(&name, "submodule.%s.path", path)) < 0 ||
785
832
  (error = git_config_backend_set_string(mods, name.ptr, path)) < 0)
786
833
  goto cleanup;
787
834
 
@@ -789,7 +836,7 @@ int git_submodule_add_setup(
789
836
  (error = git_config_backend_set_string(mods, name.ptr, url)) < 0)
790
837
  goto cleanup;
791
838
 
792
- git_buf_clear(&name);
839
+ git_str_clear(&name);
793
840
 
794
841
  /* init submodule repository and add origin remote as needed */
795
842
 
@@ -800,11 +847,11 @@ int git_submodule_add_setup(
800
847
  /* if the repo does not already exist, then init a new repo and add it.
801
848
  * Otherwise, just add the existing repo.
802
849
  */
803
- if (!(git_path_exists(name.ptr) &&
804
- git_path_contains(&name, DOT_GIT))) {
850
+ if (!(git_fs_path_exists(name.ptr) &&
851
+ git_fs_path_contains(&name, DOT_GIT))) {
805
852
 
806
853
  /* resolve the actual URL to use */
807
- if ((error = git_submodule_resolve_url(&real_url, repo, url)) < 0)
854
+ if ((error = git_submodule__resolve_url(&real_url, repo, url)) < 0)
808
855
  goto cleanup;
809
856
 
810
857
  if ((error = submodule_repo_init(&subrepo, repo, path, real_url.ptr, use_gitlink)) < 0)
@@ -826,8 +873,8 @@ cleanup:
826
873
 
827
874
  git_config_backend_free(mods);
828
875
  git_repository_free(subrepo);
829
- git_buf_dispose(&real_url);
830
- git_buf_dispose(&name);
876
+ git_str_dispose(&real_url);
877
+ git_str_dispose(&name);
831
878
 
832
879
  return error;
833
880
  }
@@ -841,13 +888,13 @@ int git_submodule_repo_init(
841
888
  git_repository *sub_repo = NULL;
842
889
  const char *configured_url;
843
890
  git_config *cfg = NULL;
844
- git_buf buf = GIT_BUF_INIT;
891
+ git_str buf = GIT_STR_INIT;
845
892
 
846
893
  GIT_ASSERT_ARG(out);
847
894
  GIT_ASSERT_ARG(sm);
848
895
 
849
896
  /* get the configured remote url of the submodule */
850
- if ((error = git_buf_printf(&buf, "submodule.%s.url", sm->name)) < 0 ||
897
+ if ((error = git_str_printf(&buf, "submodule.%s.url", sm->name)) < 0 ||
851
898
  (error = git_repository_config_snapshot(&cfg, sm->repo)) < 0 ||
852
899
  (error = git_config_get_string(&configured_url, cfg, buf.ptr)) < 0 ||
853
900
  (error = submodule_repo_init(&sub_repo, sm->repo, sm->path, configured_url, use_gitlink)) < 0)
@@ -857,7 +904,7 @@ int git_submodule_repo_init(
857
904
 
858
905
  done:
859
906
  git_config_free(cfg);
860
- git_buf_dispose(&buf);
907
+ git_str_dispose(&buf);
861
908
  return error;
862
909
  }
863
910
 
@@ -881,7 +928,7 @@ int git_submodule_clone(git_repository **out, git_submodule *submodule, const gi
881
928
  {
882
929
  int error;
883
930
  git_repository *clone;
884
- git_buf rel_path = GIT_BUF_INIT;
931
+ git_str rel_path = GIT_STR_INIT;
885
932
  git_submodule_update_options sub_opts = GIT_SUBMODULE_UPDATE_OPTIONS_INIT;
886
933
  git_clone_options opts = GIT_CLONE_OPTIONS_INIT;
887
934
 
@@ -903,7 +950,7 @@ int git_submodule_clone(git_repository **out, git_submodule *submodule, const gi
903
950
  if (error < 0)
904
951
  goto cleanup;
905
952
 
906
- error = git_clone__submodule(&clone, git_submodule_url(submodule), git_buf_cstr(&rel_path), &opts);
953
+ error = git_clone__submodule(&clone, git_submodule_url(submodule), git_str_cstr(&rel_path), &opts);
907
954
  if (error < 0)
908
955
  goto cleanup;
909
956
 
@@ -913,7 +960,7 @@ int git_submodule_clone(git_repository **out, git_submodule *submodule, const gi
913
960
  *out = clone;
914
961
 
915
962
  cleanup:
916
- git_buf_dispose(&rel_path);
963
+ git_str_dispose(&rel_path);
917
964
 
918
965
  return error;
919
966
  }
@@ -937,7 +984,7 @@ int git_submodule_add_to_index(git_submodule *sm, int write_index)
937
984
  int error;
938
985
  git_repository *sm_repo = NULL;
939
986
  git_index *index;
940
- git_buf path = GIT_BUF_INIT;
987
+ git_str path = GIT_STR_INIT;
941
988
  git_commit *head;
942
989
  git_index_entry entry;
943
990
  struct stat st;
@@ -997,7 +1044,7 @@ int git_submodule_add_to_index(git_submodule *sm, int write_index)
997
1044
 
998
1045
  cleanup:
999
1046
  git_repository_free(sm_repo);
1000
- git_buf_dispose(&path);
1047
+ git_str_dispose(&path);
1001
1048
  return error;
1002
1049
  }
1003
1050
 
@@ -1034,44 +1081,9 @@ const char *git_submodule_url(git_submodule *submodule)
1034
1081
  return submodule->url;
1035
1082
  }
1036
1083
 
1037
- int git_submodule_resolve_url(git_buf *out, git_repository *repo, const char *url)
1038
- {
1039
- int error = 0;
1040
- git_buf normalized = GIT_BUF_INIT;
1041
-
1042
- GIT_ASSERT_ARG(out);
1043
- GIT_ASSERT_ARG(repo);
1044
- GIT_ASSERT_ARG(url);
1045
-
1046
- if ((error = git_buf_sanitize(out)) < 0)
1047
- return error;
1048
-
1049
- /* We do this in all platforms in case someone on Windows created the .gitmodules */
1050
- if (strchr(url, '\\')) {
1051
- if ((error = git_path_normalize_slashes(&normalized, url)) < 0)
1052
- return error;
1053
-
1054
- url = normalized.ptr;
1055
- }
1056
-
1057
-
1058
- if (git_path_is_relative(url)) {
1059
- if (!(error = get_url_base(out, repo)))
1060
- error = git_path_apply_relative(out, url);
1061
- } else if (strchr(url, ':') != NULL || url[0] == '/') {
1062
- error = git_buf_sets(out, url);
1063
- } else {
1064
- git_error_set(GIT_ERROR_SUBMODULE, "invalid format for submodule URL");
1065
- error = -1;
1066
- }
1067
-
1068
- git_buf_dispose(&normalized);
1069
- return error;
1070
- }
1071
-
1072
1084
  static int write_var(git_repository *repo, const char *name, const char *var, const char *val)
1073
1085
  {
1074
- git_buf key = GIT_BUF_INIT;
1086
+ git_str key = GIT_STR_INIT;
1075
1087
  git_config_backend *mods;
1076
1088
  int error;
1077
1089
 
@@ -1079,7 +1091,7 @@ static int write_var(git_repository *repo, const char *name, const char *var, co
1079
1091
  if (!mods)
1080
1092
  return -1;
1081
1093
 
1082
- if ((error = git_buf_printf(&key, "submodule.%s.%s", name, var)) < 0)
1094
+ if ((error = git_str_printf(&key, "submodule.%s.%s", name, var)) < 0)
1083
1095
  goto cleanup;
1084
1096
 
1085
1097
  if (val)
@@ -1087,7 +1099,7 @@ static int write_var(git_repository *repo, const char *name, const char *var, co
1087
1099
  else
1088
1100
  error = git_config_backend_delete(mods, key.ptr);
1089
1101
 
1090
- git_buf_dispose(&key);
1102
+ git_str_dispose(&key);
1091
1103
 
1092
1104
  cleanup:
1093
1105
  git_config_backend_free(mods);
@@ -1227,7 +1239,7 @@ static int submodule_repo_create(
1227
1239
  const char *path)
1228
1240
  {
1229
1241
  int error = 0;
1230
- git_buf workdir = GIT_BUF_INIT, repodir = GIT_BUF_INIT;
1242
+ git_str workdir = GIT_STR_INIT, repodir = GIT_STR_INIT;
1231
1243
  git_repository_init_options initopt = GIT_REPOSITORY_INIT_OPTIONS_INIT;
1232
1244
  git_repository *subrepo = NULL;
1233
1245
 
@@ -1249,18 +1261,18 @@ static int submodule_repo_create(
1249
1261
  * <repo-dir>/modules/<name>/ with a gitlink in the
1250
1262
  * sub-repo workdir directory to that repository.
1251
1263
  */
1252
- error = git_repository_item_path(&repodir, parent_repo, GIT_REPOSITORY_ITEM_MODULES);
1264
+ error = git_repository__item_path(&repodir, parent_repo, GIT_REPOSITORY_ITEM_MODULES);
1253
1265
  if (error < 0)
1254
1266
  goto cleanup;
1255
- error = git_buf_joinpath(&repodir, repodir.ptr, path);
1267
+ error = git_str_joinpath(&repodir, repodir.ptr, path);
1256
1268
  if (error < 0)
1257
1269
  goto cleanup;
1258
1270
 
1259
1271
  error = git_repository_init_ext(&subrepo, repodir.ptr, &initopt);
1260
1272
 
1261
1273
  cleanup:
1262
- git_buf_dispose(&workdir);
1263
- git_buf_dispose(&repodir);
1274
+ git_str_dispose(&workdir);
1275
+ git_str_dispose(&repodir);
1264
1276
 
1265
1277
  *out = subrepo;
1266
1278
 
@@ -1309,7 +1321,7 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
1309
1321
  git_repository *sub_repo = NULL;
1310
1322
  git_remote *remote = NULL;
1311
1323
  git_object *target_commit = NULL;
1312
- git_buf buf = GIT_BUF_INIT;
1324
+ git_str buf = GIT_STR_INIT;
1313
1325
  git_submodule_update_options update_options = GIT_SUBMODULE_UPDATE_OPTIONS_INIT;
1314
1326
  git_clone_options clone_options = GIT_CLONE_OPTIONS_INIT;
1315
1327
 
@@ -1337,10 +1349,10 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
1337
1349
  * info has been copied into .git/config
1338
1350
  */
1339
1351
  if ((error = git_repository_config_snapshot(&config, sm->repo)) < 0 ||
1340
- (error = git_buf_printf(&buf, "submodule.%s.url", git_submodule_name(sm))) < 0)
1352
+ (error = git_str_printf(&buf, "submodule.%s.url", git_submodule_name(sm))) < 0)
1341
1353
  goto done;
1342
1354
 
1343
- if ((error = git_config_get_string(&submodule_url, config, git_buf_cstr(&buf))) < 0) {
1355
+ if ((error = git_config_get_string(&submodule_url, config, git_str_cstr(&buf))) < 0) {
1344
1356
  /*
1345
1357
  * If the error is not "not found" or if it is "not found" and we are not
1346
1358
  * initializing the submodule, then return error.
@@ -1362,7 +1374,7 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
1362
1374
  config = NULL;
1363
1375
 
1364
1376
  if ((error = git_repository_config_snapshot(&config, sm->repo)) < 0 ||
1365
- (error = git_config_get_string(&submodule_url, config, git_buf_cstr(&buf))) < 0)
1377
+ (error = git_config_get_string(&submodule_url, config, git_str_cstr(&buf))) < 0)
1366
1378
  goto done;
1367
1379
  }
1368
1380
 
@@ -1420,7 +1432,7 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
1420
1432
  }
1421
1433
 
1422
1434
  done:
1423
- git_buf_dispose(&buf);
1435
+ git_str_dispose(&buf);
1424
1436
  git_config_free(config);
1425
1437
  git_object_free(target_commit);
1426
1438
  git_remote_free(remote);
@@ -1433,7 +1445,7 @@ int git_submodule_init(git_submodule *sm, int overwrite)
1433
1445
  {
1434
1446
  int error;
1435
1447
  const char *val;
1436
- git_buf key = GIT_BUF_INIT, effective_submodule_url = GIT_BUF_INIT;
1448
+ git_str key = GIT_STR_INIT, effective_submodule_url = GIT_STR_INIT;
1437
1449
  git_config *cfg = NULL;
1438
1450
 
1439
1451
  if (!sm->url) {
@@ -1447,8 +1459,8 @@ int git_submodule_init(git_submodule *sm, int overwrite)
1447
1459
 
1448
1460
  /* write "submodule.NAME.url" */
1449
1461
 
1450
- if ((error = git_submodule_resolve_url(&effective_submodule_url, sm->repo, sm->url)) < 0 ||
1451
- (error = git_buf_printf(&key, "submodule.%s.url", sm->name)) < 0 ||
1462
+ if ((error = git_submodule__resolve_url(&effective_submodule_url, sm->repo, sm->url)) < 0 ||
1463
+ (error = git_str_printf(&key, "submodule.%s.url", sm->name)) < 0 ||
1452
1464
  (error = git_config__update_entry(
1453
1465
  cfg, key.ptr, effective_submodule_url.ptr, overwrite != 0, false)) < 0)
1454
1466
  goto cleanup;
@@ -1458,7 +1470,7 @@ int git_submodule_init(git_submodule *sm, int overwrite)
1458
1470
  val = (sm->update == GIT_SUBMODULE_UPDATE_CHECKOUT) ?
1459
1471
  NULL : submodule_update_to_str(sm->update);
1460
1472
 
1461
- if ((error = git_buf_printf(&key, "submodule.%s.update", sm->name)) < 0 ||
1473
+ if ((error = git_str_printf(&key, "submodule.%s.update", sm->name)) < 0 ||
1462
1474
  (error = git_config__update_entry(
1463
1475
  cfg, key.ptr, val, overwrite != 0, false)) < 0)
1464
1476
  goto cleanup;
@@ -1467,15 +1479,15 @@ int git_submodule_init(git_submodule *sm, int overwrite)
1467
1479
 
1468
1480
  cleanup:
1469
1481
  git_config_free(cfg);
1470
- git_buf_dispose(&key);
1471
- git_buf_dispose(&effective_submodule_url);
1482
+ git_str_dispose(&key);
1483
+ git_str_dispose(&effective_submodule_url);
1472
1484
 
1473
1485
  return error;
1474
1486
  }
1475
1487
 
1476
1488
  int git_submodule_sync(git_submodule *sm)
1477
1489
  {
1478
- git_buf key = GIT_BUF_INIT, url = GIT_BUF_INIT, remote_name = GIT_BUF_INIT;
1490
+ git_str key = GIT_STR_INIT, url = GIT_STR_INIT, remote_name = GIT_STR_INIT;
1479
1491
  git_repository *smrepo = NULL;
1480
1492
  git_config *cfg = NULL;
1481
1493
  int error = 0;
@@ -1487,8 +1499,8 @@ int git_submodule_sync(git_submodule *sm)
1487
1499
 
1488
1500
  /* copy URL over to config only if it already exists */
1489
1501
  if ((error = git_repository_config__weakptr(&cfg, sm->repo)) < 0 ||
1490
- (error = git_buf_printf(&key, "submodule.%s.url", sm->name)) < 0 ||
1491
- (error = git_submodule_resolve_url(&url, sm->repo, sm->url)) < 0 ||
1502
+ (error = git_str_printf(&key, "submodule.%s.url", sm->name)) < 0 ||
1503
+ (error = git_submodule__resolve_url(&url, sm->repo, sm->url)) < 0 ||
1492
1504
  (error = git_config__update_entry(cfg, key.ptr, url.ptr, true, true)) < 0)
1493
1505
  goto out;
1494
1506
 
@@ -1501,9 +1513,9 @@ int git_submodule_sync(git_submodule *sm)
1501
1513
  goto out;
1502
1514
 
1503
1515
  if (lookup_head_remote_key(&remote_name, smrepo) == 0) {
1504
- if ((error = git_buf_join3(&key, '.', "remote", remote_name.ptr, "url")) < 0)
1516
+ if ((error = git_str_join3(&key, '.', "remote", remote_name.ptr, "url")) < 0)
1505
1517
  goto out;
1506
- } else if ((error = git_buf_sets(&key, "remote.origin.url")) < 0) {
1518
+ } else if ((error = git_str_sets(&key, "remote.origin.url")) < 0) {
1507
1519
  goto out;
1508
1520
  }
1509
1521
 
@@ -1512,9 +1524,9 @@ int git_submodule_sync(git_submodule *sm)
1512
1524
 
1513
1525
  out:
1514
1526
  git_repository_free(smrepo);
1515
- git_buf_dispose(&remote_name);
1516
- git_buf_dispose(&key);
1517
- git_buf_dispose(&url);
1527
+ git_str_dispose(&remote_name);
1528
+ git_str_dispose(&key);
1529
+ git_str_dispose(&url);
1518
1530
  return error;
1519
1531
  }
1520
1532
 
@@ -1522,7 +1534,7 @@ static int git_submodule__open(
1522
1534
  git_repository **subrepo, git_submodule *sm, bool bare)
1523
1535
  {
1524
1536
  int error;
1525
- git_buf path = GIT_BUF_INIT;
1537
+ git_str path = GIT_STR_INIT;
1526
1538
  unsigned int flags = GIT_REPOSITORY_OPEN_NO_SEARCH;
1527
1539
  const char *wd;
1528
1540
 
@@ -1535,7 +1547,7 @@ static int git_submodule__open(
1535
1547
 
1536
1548
  wd = git_repository_workdir(sm->repo);
1537
1549
 
1538
- if (git_buf_join3(&path, '/', wd, sm->path, DOT_GIT) < 0)
1550
+ if (git_str_join3(&path, '/', wd, sm->path, DOT_GIT) < 0)
1539
1551
  return -1;
1540
1552
 
1541
1553
  sm->flags = sm->flags &
@@ -1557,17 +1569,17 @@ static int git_submodule__open(
1557
1569
  sm->flags |= GIT_SUBMODULE_STATUS__WD_OID_VALID;
1558
1570
  else
1559
1571
  git_error_clear();
1560
- } else if (git_path_exists(path.ptr)) {
1572
+ } else if (git_fs_path_exists(path.ptr)) {
1561
1573
  sm->flags |= GIT_SUBMODULE_STATUS__WD_SCANNED |
1562
1574
  GIT_SUBMODULE_STATUS_IN_WD;
1563
1575
  } else {
1564
- git_buf_rtruncate_at_char(&path, '/'); /* remove "/.git" */
1576
+ git_str_rtruncate_at_char(&path, '/'); /* remove "/.git" */
1565
1577
 
1566
- if (git_path_isdir(path.ptr))
1578
+ if (git_fs_path_isdir(path.ptr))
1567
1579
  sm->flags |= GIT_SUBMODULE_STATUS__WD_SCANNED;
1568
1580
  }
1569
1581
 
1570
- git_buf_dispose(&path);
1582
+ git_str_dispose(&path);
1571
1583
 
1572
1584
  return error;
1573
1585
  }
@@ -1921,13 +1933,13 @@ static int submodule_parse_recurse(git_submodule_recurse_t *out, const char *val
1921
1933
  return 0;
1922
1934
  }
1923
1935
 
1924
- static int get_value(const char **out, git_config *cfg, git_buf *buf, const char *name, const char *field)
1936
+ static int get_value(const char **out, git_config *cfg, git_str *buf, const char *name, const char *field)
1925
1937
  {
1926
1938
  int error;
1927
1939
 
1928
- git_buf_clear(buf);
1940
+ git_str_clear(buf);
1929
1941
 
1930
- if ((error = git_buf_printf(buf, "submodule.%s.%s", name, field)) < 0 ||
1942
+ if ((error = git_str_printf(buf, "submodule.%s.%s", name, field)) < 0 ||
1931
1943
  (error = git_config_get_string(out, cfg, buf->ptr)) < 0)
1932
1944
  return error;
1933
1945
 
@@ -1944,7 +1956,7 @@ static bool looks_like_command_line_option(const char *s)
1944
1956
 
1945
1957
  static int submodule_read_config(git_submodule *sm, git_config *cfg)
1946
1958
  {
1947
- git_buf key = GIT_BUF_INIT;
1959
+ git_str key = GIT_STR_INIT;
1948
1960
  const char *value;
1949
1961
  int error, in_config = 0;
1950
1962
 
@@ -2025,7 +2037,7 @@ static int submodule_read_config(git_submodule *sm, git_config *cfg)
2025
2037
  error = 0;
2026
2038
 
2027
2039
  cleanup:
2028
- git_buf_dispose(&key);
2040
+ git_str_dispose(&key);
2029
2041
  return error;
2030
2042
  }
2031
2043
 
@@ -2034,7 +2046,7 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
2034
2046
  lfc_data *data = payload;
2035
2047
  const char *namestart, *property;
2036
2048
  git_strmap *map = data->map;
2037
- git_buf name = GIT_BUF_INIT;
2049
+ git_str name = GIT_STR_INIT;
2038
2050
  git_submodule *sm;
2039
2051
  int error, isvalid;
2040
2052
 
@@ -2049,7 +2061,7 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
2049
2061
 
2050
2062
  property++;
2051
2063
 
2052
- if ((error = git_buf_set(&name, namestart, property - namestart -1)) < 0)
2064
+ if ((error = git_str_set(&name, namestart, property - namestart -1)) < 0)
2053
2065
  return error;
2054
2066
 
2055
2067
  isvalid = git_submodule_name_is_valid(data->repo, name.ptr, 0);
@@ -2083,24 +2095,24 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
2083
2095
  error = 0;
2084
2096
 
2085
2097
  done:
2086
- git_buf_dispose(&name);
2098
+ git_str_dispose(&name);
2087
2099
  return error;
2088
2100
  }
2089
2101
 
2090
2102
  static int submodule_load_from_wd_lite(git_submodule *sm)
2091
2103
  {
2092
- git_buf path = GIT_BUF_INIT;
2104
+ git_str path = GIT_STR_INIT;
2093
2105
 
2094
2106
  if (git_repository_workdir_path(&path, sm->repo, sm->path) < 0)
2095
2107
  return -1;
2096
2108
 
2097
- if (git_path_isdir(path.ptr))
2109
+ if (git_fs_path_isdir(path.ptr))
2098
2110
  sm->flags |= GIT_SUBMODULE_STATUS__WD_SCANNED;
2099
2111
 
2100
- if (git_path_contains(&path, DOT_GIT))
2112
+ if (git_fs_path_contains(&path, DOT_GIT))
2101
2113
  sm->flags |= GIT_SUBMODULE_STATUS_IN_WD;
2102
2114
 
2103
- git_buf_dispose(&path);
2115
+ git_str_dispose(&path);
2104
2116
  return 0;
2105
2117
  }
2106
2118
 
@@ -2112,7 +2124,7 @@ static int submodule_load_from_wd_lite(git_submodule *sm)
2112
2124
  static int gitmodules_snapshot(git_config **snap, git_repository *repo)
2113
2125
  {
2114
2126
  git_config *mods = NULL;
2115
- git_buf path = GIT_BUF_INIT;
2127
+ git_str path = GIT_STR_INIT;
2116
2128
  int error;
2117
2129
 
2118
2130
  if (git_repository_workdir(repo) == NULL)
@@ -2123,7 +2135,7 @@ static int gitmodules_snapshot(git_config **snap, git_repository *repo)
2123
2135
 
2124
2136
  if ((error = git_config_open_ondisk(&mods, path.ptr)) < 0)
2125
2137
  goto cleanup;
2126
- git_buf_dispose(&path);
2138
+ git_str_dispose(&path);
2127
2139
 
2128
2140
  if ((error = git_config_snapshot(snap, mods)) < 0)
2129
2141
  goto cleanup;
@@ -2133,7 +2145,7 @@ static int gitmodules_snapshot(git_config **snap, git_repository *repo)
2133
2145
  cleanup:
2134
2146
  if (mods)
2135
2147
  git_config_free(mods);
2136
- git_buf_dispose(&path);
2148
+ git_str_dispose(&path);
2137
2149
 
2138
2150
  return error;
2139
2151
  }
@@ -2142,14 +2154,14 @@ static git_config_backend *open_gitmodules(
2142
2154
  git_repository *repo,
2143
2155
  int okay_to_create)
2144
2156
  {
2145
- git_buf path = GIT_BUF_INIT;
2157
+ git_str path = GIT_STR_INIT;
2146
2158
  git_config_backend *mods = NULL;
2147
2159
 
2148
2160
  if (git_repository_workdir(repo) != NULL) {
2149
2161
  if (git_repository_workdir_path(&path, repo, GIT_MODULES_FILE) != 0)
2150
2162
  return NULL;
2151
2163
 
2152
- if (okay_to_create || git_path_isfile(path.ptr)) {
2164
+ if (okay_to_create || git_fs_path_isfile(path.ptr)) {
2153
2165
  /* git_config_backend_from_file should only fail if OOM */
2154
2166
  if (git_config_backend_from_file(&mods, path.ptr) < 0)
2155
2167
  mods = NULL;
@@ -2161,17 +2173,17 @@ static git_config_backend *open_gitmodules(
2161
2173
  }
2162
2174
  }
2163
2175
 
2164
- git_buf_dispose(&path);
2176
+ git_str_dispose(&path);
2165
2177
 
2166
2178
  return mods;
2167
2179
  }
2168
2180
 
2169
2181
  /* Lookup name of remote of the local tracking branch HEAD points to */
2170
- static int lookup_head_remote_key(git_buf *remote_name, git_repository *repo)
2182
+ static int lookup_head_remote_key(git_str *remote_name, git_repository *repo)
2171
2183
  {
2172
2184
  int error;
2173
2185
  git_reference *head = NULL;
2174
- git_buf upstream_name = GIT_BUF_INIT;
2186
+ git_str upstream_name = GIT_STR_INIT;
2175
2187
 
2176
2188
  /* lookup and dereference HEAD */
2177
2189
  if ((error = git_repository_head(&head, repo)) < 0)
@@ -2190,18 +2202,18 @@ static int lookup_head_remote_key(git_buf *remote_name, git_repository *repo)
2190
2202
  }
2191
2203
 
2192
2204
  /* lookup remote tracking branch of HEAD */
2193
- if ((error = git_branch_upstream_name(
2205
+ if ((error = git_branch__upstream_name(
2194
2206
  &upstream_name,
2195
2207
  repo,
2196
2208
  git_reference_name(head))) < 0)
2197
2209
  goto done;
2198
2210
 
2199
2211
  /* lookup remote of remote tracking branch */
2200
- if ((error = git_branch_remote_name(remote_name, repo, upstream_name.ptr)) < 0)
2212
+ if ((error = git_branch__remote_name(remote_name, repo, upstream_name.ptr)) < 0)
2201
2213
  goto done;
2202
2214
 
2203
2215
  done:
2204
- git_buf_dispose(&upstream_name);
2216
+ git_str_dispose(&upstream_name);
2205
2217
  git_reference_free(head);
2206
2218
 
2207
2219
  return error;
@@ -2211,13 +2223,13 @@ done:
2211
2223
  static int lookup_head_remote(git_remote **remote, git_repository *repo)
2212
2224
  {
2213
2225
  int error;
2214
- git_buf remote_name = GIT_BUF_INIT;
2226
+ git_str remote_name = GIT_STR_INIT;
2215
2227
 
2216
2228
  /* lookup remote of remote tracking branch name */
2217
2229
  if (!(error = lookup_head_remote_key(&remote_name, repo)))
2218
2230
  error = git_remote_lookup(remote, repo, remote_name.ptr);
2219
2231
 
2220
- git_buf_dispose(&remote_name);
2232
+ git_str_dispose(&remote_name);
2221
2233
 
2222
2234
  return error;
2223
2235
  }
@@ -2240,14 +2252,14 @@ static int lookup_default_remote(git_remote **remote, git_repository *repo)
2240
2252
  return error;
2241
2253
  }
2242
2254
 
2243
- static int get_url_base(git_buf *url, git_repository *repo)
2255
+ static int get_url_base(git_str *url, git_repository *repo)
2244
2256
  {
2245
2257
  int error;
2246
2258
  git_worktree *wt = NULL;
2247
2259
  git_remote *remote = NULL;
2248
2260
 
2249
2261
  if ((error = lookup_default_remote(&remote, repo)) == 0) {
2250
- error = git_buf_sets(url, git_remote_url(remote));
2262
+ error = git_str_sets(url, git_remote_url(remote));
2251
2263
  goto out;
2252
2264
  } else if (error != GIT_ENOTFOUND)
2253
2265
  goto out;
@@ -2258,9 +2270,9 @@ static int get_url_base(git_buf *url, git_repository *repo)
2258
2270
  if (git_repository_is_worktree(repo)) {
2259
2271
  if ((error = git_worktree_open_from_repository(&wt, repo)) < 0)
2260
2272
  goto out;
2261
- error = git_buf_sets(url, wt->parent_path);
2273
+ error = git_str_sets(url, wt->parent_path);
2262
2274
  } else {
2263
- error = git_buf_sets(url, git_repository_workdir(repo));
2275
+ error = git_str_sets(url, git_repository_workdir(repo));
2264
2276
  }
2265
2277
 
2266
2278
  out: