rugged 1.3.2 → 1.6.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 (547) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +7 -4
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_blame.c +2 -0
  7. data/ext/rugged/rugged_blob.c +3 -0
  8. data/ext/rugged/rugged_commit.c +1 -0
  9. data/ext/rugged/rugged_config.c +9 -2
  10. data/ext/rugged/rugged_diff.c +1 -0
  11. data/ext/rugged/rugged_index.c +2 -0
  12. data/ext/rugged/rugged_patch.c +1 -0
  13. data/ext/rugged/rugged_rebase.c +1 -0
  14. data/ext/rugged/rugged_reference.c +1 -0
  15. data/ext/rugged/rugged_remote.c +28 -10
  16. data/ext/rugged/rugged_repo.c +7 -9
  17. data/ext/rugged/rugged_revwalk.c +5 -1
  18. data/ext/rugged/rugged_settings.c +5 -0
  19. data/ext/rugged/rugged_submodule.c +1 -0
  20. data/ext/rugged/rugged_tag.c +1 -0
  21. data/ext/rugged/rugged_tree.c +4 -0
  22. data/lib/rugged/index.rb +1 -1
  23. data/lib/rugged/tree.rb +5 -1
  24. data/lib/rugged/version.rb +1 -1
  25. data/vendor/libgit2/CMakeLists.txt +132 -288
  26. data/vendor/libgit2/COPYING +106 -19
  27. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  28. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  29. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  30. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  31. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  32. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  33. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  34. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  35. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  36. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  37. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  38. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  39. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  40. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  41. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  42. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  43. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  44. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  45. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  46. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  47. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  48. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  49. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  50. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  51. data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
  52. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  53. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  54. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  55. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  56. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  57. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  58. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
  59. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  60. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  61. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  62. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  63. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  64. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  65. data/vendor/libgit2/deps/zlib/crc32.c +975 -288
  66. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  67. data/vendor/libgit2/deps/zlib/deflate.c +83 -31
  68. data/vendor/libgit2/deps/zlib/deflate.h +12 -15
  69. data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
  70. data/vendor/libgit2/deps/zlib/infback.c +2 -1
  71. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  72. data/vendor/libgit2/deps/zlib/inflate.c +39 -8
  73. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  74. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  75. data/vendor/libgit2/deps/zlib/trees.c +27 -48
  76. data/vendor/libgit2/deps/zlib/zlib.h +126 -100
  77. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  78. data/vendor/libgit2/deps/zlib/zutil.h +12 -9
  79. data/vendor/libgit2/include/git2/apply.h +16 -2
  80. data/vendor/libgit2/include/git2/attr.h +11 -2
  81. data/vendor/libgit2/include/git2/blame.h +4 -1
  82. data/vendor/libgit2/include/git2/blob.h +14 -1
  83. data/vendor/libgit2/include/git2/branch.h +4 -2
  84. data/vendor/libgit2/include/git2/buffer.h +18 -78
  85. data/vendor/libgit2/include/git2/cert.h +2 -2
  86. data/vendor/libgit2/include/git2/checkout.h +5 -2
  87. data/vendor/libgit2/include/git2/clone.h +3 -3
  88. data/vendor/libgit2/include/git2/commit.h +2 -0
  89. data/vendor/libgit2/include/git2/common.h +28 -7
  90. data/vendor/libgit2/include/git2/config.h +25 -9
  91. data/vendor/libgit2/include/git2/credential.h +2 -1
  92. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  93. data/vendor/libgit2/include/git2/deprecated.h +9 -1
  94. data/vendor/libgit2/include/git2/describe.h +7 -2
  95. data/vendor/libgit2/include/git2/diff.h +18 -10
  96. data/vendor/libgit2/include/git2/email.h +1 -1
  97. data/vendor/libgit2/include/git2/errors.h +17 -3
  98. data/vendor/libgit2/include/git2/experimental.h +20 -0
  99. data/vendor/libgit2/include/git2/filter.h +7 -2
  100. data/vendor/libgit2/include/git2/graph.h +1 -0
  101. data/vendor/libgit2/include/git2/ignore.h +1 -1
  102. data/vendor/libgit2/include/git2/index.h +11 -5
  103. data/vendor/libgit2/include/git2/indexer.h +48 -0
  104. data/vendor/libgit2/include/git2/merge.h +24 -4
  105. data/vendor/libgit2/include/git2/message.h +2 -0
  106. data/vendor/libgit2/include/git2/object.h +49 -0
  107. data/vendor/libgit2/include/git2/odb.h +94 -13
  108. data/vendor/libgit2/include/git2/odb_backend.h +107 -19
  109. data/vendor/libgit2/include/git2/oid.h +115 -15
  110. data/vendor/libgit2/include/git2/pack.h +24 -8
  111. data/vendor/libgit2/include/git2/patch.h +8 -0
  112. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  113. data/vendor/libgit2/include/git2/proxy.h +1 -1
  114. data/vendor/libgit2/include/git2/rebase.h +9 -1
  115. data/vendor/libgit2/include/git2/refdb.h +3 -0
  116. data/vendor/libgit2/include/git2/reflog.h +1 -1
  117. data/vendor/libgit2/include/git2/refs.h +2 -2
  118. data/vendor/libgit2/include/git2/remote.h +184 -37
  119. data/vendor/libgit2/include/git2/repository.h +34 -10
  120. data/vendor/libgit2/include/git2/reset.h +2 -2
  121. data/vendor/libgit2/include/git2/revparse.h +1 -1
  122. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  123. data/vendor/libgit2/include/git2/signature.h +1 -1
  124. data/vendor/libgit2/include/git2/stash.h +61 -7
  125. data/vendor/libgit2/include/git2/status.h +14 -5
  126. data/vendor/libgit2/include/git2/strarray.h +0 -13
  127. data/vendor/libgit2/include/git2/submodule.h +7 -2
  128. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  129. data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
  130. data/vendor/libgit2/include/git2/sys/remote.h +46 -0
  131. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  132. data/vendor/libgit2/include/git2/sys/transport.h +46 -39
  133. data/vendor/libgit2/include/git2/tag.h +1 -0
  134. data/vendor/libgit2/include/git2/tree.h +4 -3
  135. data/vendor/libgit2/include/git2/types.h +7 -7
  136. data/vendor/libgit2/include/git2/version.h +27 -6
  137. data/vendor/libgit2/include/git2/worktree.h +12 -2
  138. data/vendor/libgit2/include/git2.h +1 -0
  139. data/vendor/libgit2/src/CMakeLists.txt +177 -419
  140. data/vendor/libgit2/src/README.md +12 -0
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
  142. data/vendor/libgit2/src/cli/README.md +26 -0
  143. data/vendor/libgit2/src/cli/cli.h +20 -0
  144. data/vendor/libgit2/src/cli/cmd.c +21 -0
  145. data/vendor/libgit2/src/cli/cmd.h +33 -0
  146. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  147. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
  149. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  150. data/vendor/libgit2/src/cli/error.h +51 -0
  151. data/vendor/libgit2/src/cli/main.c +106 -0
  152. data/vendor/libgit2/src/cli/opt.c +669 -0
  153. data/vendor/libgit2/src/cli/opt.h +349 -0
  154. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  155. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  156. data/vendor/libgit2/src/cli/progress.c +345 -0
  157. data/vendor/libgit2/src/cli/progress.h +117 -0
  158. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  159. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  160. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  161. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  162. data/vendor/libgit2/src/libgit2/CMakeLists.txt +141 -0
  163. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
  164. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  165. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
  166. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  167. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
  168. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
  169. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
  170. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
  171. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
  172. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
  173. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  174. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  175. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  176. data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +15 -3
  177. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  178. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  179. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
  180. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
  181. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
  182. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
  183. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  184. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
  185. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
  186. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
  187. data/vendor/libgit2/src/libgit2/common.h +55 -0
  188. data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
  189. data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
  190. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
  191. data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
  192. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
  193. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  194. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
  195. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
  196. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
  197. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
  198. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
  199. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
  200. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
  201. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  202. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
  203. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  204. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  205. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +13 -8
  206. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  207. data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
  208. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  209. data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
  210. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  211. data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
  212. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
  213. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
  214. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
  215. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
  216. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  217. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  218. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
  219. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  220. data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
  221. data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
  222. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
  223. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
  224. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
  225. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
  226. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
  227. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
  228. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  229. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
  230. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
  231. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  232. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
  233. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
  234. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
  235. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
  236. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
  237. data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
  238. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
  239. data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
  240. data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
  241. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
  242. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  243. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  244. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +18 -5
  245. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
  246. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
  247. data/vendor/libgit2/src/libgit2/oid.h +273 -0
  248. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  249. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
  250. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
  251. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
  252. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
  253. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
  254. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  255. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
  256. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
  257. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  258. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
  259. data/vendor/libgit2/src/libgit2/path.c +375 -0
  260. data/vendor/libgit2/src/libgit2/path.h +68 -0
  261. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +6 -6
  262. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  263. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  264. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  265. data/vendor/libgit2/src/{push.c → libgit2/push.c} +43 -38
  266. data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -16
  267. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  268. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  269. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +119 -107
  270. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
  271. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
  272. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
  273. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
  274. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
  275. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
  276. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
  277. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
  278. data/vendor/libgit2/src/libgit2/remote.h +100 -0
  279. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
  280. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
  281. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  282. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
  283. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
  284. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
  285. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
  286. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
  287. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
  288. data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
  289. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  290. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  291. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +8 -6
  292. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
  293. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
  294. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
  295. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
  296. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
  297. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
  298. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  299. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
  300. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
  301. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  302. data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
  303. data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +2 -2
  304. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  305. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  306. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +1 -1
  307. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
  308. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
  309. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  310. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
  311. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
  312. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
  313. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
  314. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
  315. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
  316. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
  317. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
  318. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  319. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
  320. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
  321. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
  322. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
  323. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
  324. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
  325. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
  326. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
  327. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
  328. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
  329. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
  330. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
  331. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  332. data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
  333. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
  334. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
  335. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
  336. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
  337. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
  338. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
  339. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
  340. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
  341. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
  342. data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
  343. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  344. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  345. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  346. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  347. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  348. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
  349. data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
  350. data/vendor/libgit2/src/util/date.h +33 -0
  351. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
  352. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
  353. data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
  354. data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
  355. data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
  356. data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
  357. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
  358. data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -59
  359. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  360. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  361. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  362. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  363. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  364. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  365. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  366. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  367. data/vendor/libgit2/src/util/hash/openssl.c +195 -0
  368. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  369. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  370. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  371. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  372. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  373. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  374. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  375. data/vendor/libgit2/src/util/hash.c +158 -0
  376. data/vendor/libgit2/src/util/hash.h +61 -0
  377. data/vendor/libgit2/src/{khash.h → util/khash.h} +1 -1
  378. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  379. data/vendor/libgit2/src/util/net.c +1003 -0
  380. data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
  381. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  382. data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
  383. data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
  384. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
  385. data/vendor/libgit2/src/util/rand.c +234 -0
  386. data/vendor/libgit2/src/util/rand.h +37 -0
  387. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
  388. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  389. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  390. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  391. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +1 -1
  392. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
  393. data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
  394. data/vendor/libgit2/src/util/str.h +357 -0
  395. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  396. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  397. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  398. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  399. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  400. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -4
  401. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
  402. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  403. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  404. data/vendor/libgit2/src/{util.c → util/util.c} +15 -15
  405. data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
  406. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  407. data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
  408. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  409. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  410. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  411. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  412. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
  413. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  414. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  415. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +12 -28
  416. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  417. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  418. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  419. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  420. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  421. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  422. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  423. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  424. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  425. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  426. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  427. metadata +402 -356
  428. data/vendor/libgit2/src/buffer.h +0 -374
  429. data/vendor/libgit2/src/commit.h +0 -46
  430. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  431. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  432. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  433. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  434. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  435. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  436. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  437. data/vendor/libgit2/src/hash/sha1.h +0 -38
  438. data/vendor/libgit2/src/hash.c +0 -110
  439. data/vendor/libgit2/src/hash.h +0 -46
  440. data/vendor/libgit2/src/message.h +0 -17
  441. data/vendor/libgit2/src/net.c +0 -540
  442. data/vendor/libgit2/src/oid.h +0 -51
  443. data/vendor/libgit2/src/remote.h +0 -55
  444. data/vendor/libgit2/src/sysdir.c +0 -347
  445. data/vendor/libgit2/src/win32/findfile.c +0 -230
  446. data/vendor/libgit2/src/win32/findfile.h +0 -19
  447. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  448. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  449. /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  450. /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  451. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  452. /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  453. /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  454. /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  455. /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  456. /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  457. /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  458. /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  459. /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  460. /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  461. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  462. /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  463. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  464. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  465. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  466. /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  467. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  468. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  469. /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  470. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  471. /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  472. /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  473. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  474. /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  475. /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  476. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  477. /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  478. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  479. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  480. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  481. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  482. /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  483. /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  484. /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  485. /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  486. /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  487. /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  488. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  489. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  490. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  491. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  492. /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  493. /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  494. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  495. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  496. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  497. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  498. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  499. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  500. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  501. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  502. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  503. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  504. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  505. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  506. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  507. /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  508. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  509. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  510. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  511. /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  512. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  513. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  514. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  515. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  516. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  517. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  518. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  519. /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  520. /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  521. /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  522. /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  523. /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  524. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  525. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  526. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  527. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  528. /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  529. /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  530. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  531. /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  532. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  533. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  534. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  535. /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  536. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  537. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  538. /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  539. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  540. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  541. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  542. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  543. /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  544. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  545. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  546. /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  547. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -7,32 +7,34 @@
7
7
 
8
8
  #include "worktree.h"
9
9
 
10
+ #include "buf.h"
11
+ #include "repository.h"
12
+ #include "path.h"
13
+
10
14
  #include "git2/branch.h"
11
15
  #include "git2/commit.h"
12
16
  #include "git2/worktree.h"
13
17
 
14
- #include "repository.h"
15
-
16
18
  static bool is_worktree_dir(const char *dir)
17
19
  {
18
- git_buf buf = GIT_BUF_INIT;
20
+ git_str buf = GIT_STR_INIT;
19
21
  int error;
20
22
 
21
- if (git_buf_sets(&buf, dir) < 0)
23
+ if (git_str_sets(&buf, dir) < 0)
22
24
  return -1;
23
25
 
24
- error = git_path_contains_file(&buf, "commondir")
25
- && git_path_contains_file(&buf, "gitdir")
26
- && git_path_contains_file(&buf, "HEAD");
26
+ error = git_fs_path_contains_file(&buf, "commondir")
27
+ && git_fs_path_contains_file(&buf, "gitdir")
28
+ && git_fs_path_contains_file(&buf, "HEAD");
27
29
 
28
- git_buf_dispose(&buf);
30
+ git_str_dispose(&buf);
29
31
  return error;
30
32
  }
31
33
 
32
34
  int git_worktree_list(git_strarray *wts, git_repository *repo)
33
35
  {
34
36
  git_vector worktrees = GIT_VECTOR_INIT;
35
- git_buf path = GIT_BUF_INIT;
37
+ git_str path = GIT_STR_INIT;
36
38
  char *worktree;
37
39
  size_t i, len;
38
40
  int error;
@@ -43,18 +45,18 @@ int git_worktree_list(git_strarray *wts, git_repository *repo)
43
45
  wts->count = 0;
44
46
  wts->strings = NULL;
45
47
 
46
- if ((error = git_buf_joinpath(&path, repo->commondir, "worktrees/")) < 0)
48
+ if ((error = git_str_joinpath(&path, repo->commondir, "worktrees/")) < 0)
47
49
  goto exit;
48
- if (!git_path_exists(path.ptr) || git_path_is_empty_dir(path.ptr))
50
+ if (!git_fs_path_exists(path.ptr) || git_fs_path_is_empty_dir(path.ptr))
49
51
  goto exit;
50
- if ((error = git_path_dirload(&worktrees, path.ptr, path.size, 0x0)) < 0)
52
+ if ((error = git_fs_path_dirload(&worktrees, path.ptr, path.size, 0x0)) < 0)
51
53
  goto exit;
52
54
 
53
55
  len = path.size;
54
56
 
55
57
  git_vector_foreach(&worktrees, i, worktree) {
56
- git_buf_truncate(&path, len);
57
- git_buf_puts(&path, worktree);
58
+ git_str_truncate(&path, len);
59
+ git_str_puts(&path, worktree);
58
60
 
59
61
  if (!is_worktree_dir(path.ptr)) {
60
62
  git_vector_remove(&worktrees, i);
@@ -65,68 +67,68 @@ int git_worktree_list(git_strarray *wts, git_repository *repo)
65
67
  wts->strings = (char **)git_vector_detach(&wts->count, NULL, &worktrees);
66
68
 
67
69
  exit:
68
- git_buf_dispose(&path);
70
+ git_str_dispose(&path);
69
71
 
70
72
  return error;
71
73
  }
72
74
 
73
75
  char *git_worktree__read_link(const char *base, const char *file)
74
76
  {
75
- git_buf path = GIT_BUF_INIT, buf = GIT_BUF_INIT;
77
+ git_str path = GIT_STR_INIT, buf = GIT_STR_INIT;
76
78
 
77
79
  GIT_ASSERT_ARG_WITH_RETVAL(base, NULL);
78
80
  GIT_ASSERT_ARG_WITH_RETVAL(file, NULL);
79
81
 
80
- if (git_buf_joinpath(&path, base, file) < 0)
82
+ if (git_str_joinpath(&path, base, file) < 0)
81
83
  goto err;
82
84
  if (git_futils_readbuffer(&buf, path.ptr) < 0)
83
85
  goto err;
84
- git_buf_dispose(&path);
86
+ git_str_dispose(&path);
85
87
 
86
- git_buf_rtrim(&buf);
88
+ git_str_rtrim(&buf);
87
89
 
88
- if (!git_path_is_relative(buf.ptr))
89
- return git_buf_detach(&buf);
90
+ if (!git_fs_path_is_relative(buf.ptr))
91
+ return git_str_detach(&buf);
90
92
 
91
- if (git_buf_sets(&path, base) < 0)
93
+ if (git_str_sets(&path, base) < 0)
92
94
  goto err;
93
- if (git_path_apply_relative(&path, buf.ptr) < 0)
95
+ if (git_fs_path_apply_relative(&path, buf.ptr) < 0)
94
96
  goto err;
95
- git_buf_dispose(&buf);
97
+ git_str_dispose(&buf);
96
98
 
97
- return git_buf_detach(&path);
99
+ return git_str_detach(&path);
98
100
 
99
101
  err:
100
- git_buf_dispose(&buf);
101
- git_buf_dispose(&path);
102
+ git_str_dispose(&buf);
103
+ git_str_dispose(&path);
102
104
 
103
105
  return NULL;
104
106
  }
105
107
 
106
- static int write_wtfile(const char *base, const char *file, const git_buf *buf)
108
+ static int write_wtfile(const char *base, const char *file, const git_str *buf)
107
109
  {
108
- git_buf path = GIT_BUF_INIT;
110
+ git_str path = GIT_STR_INIT;
109
111
  int err;
110
112
 
111
113
  GIT_ASSERT_ARG(base);
112
114
  GIT_ASSERT_ARG(file);
113
115
  GIT_ASSERT_ARG(buf);
114
116
 
115
- if ((err = git_buf_joinpath(&path, base, file)) < 0)
117
+ if ((err = git_str_joinpath(&path, base, file)) < 0)
116
118
  goto out;
117
119
 
118
120
  if ((err = git_futils_writebuffer(buf, path.ptr, O_CREAT|O_EXCL|O_WRONLY, 0644)) < 0)
119
121
  goto out;
120
122
 
121
123
  out:
122
- git_buf_dispose(&path);
124
+ git_str_dispose(&path);
123
125
 
124
126
  return err;
125
127
  }
126
128
 
127
129
  static int open_worktree_dir(git_worktree **out, const char *parent, const char *dir, const char *name)
128
130
  {
129
- git_buf gitdir = GIT_BUF_INIT;
131
+ git_str gitdir = GIT_STR_INIT;
130
132
  git_worktree *wt = NULL;
131
133
  int error = 0;
132
134
 
@@ -135,7 +137,7 @@ static int open_worktree_dir(git_worktree **out, const char *parent, const char
135
137
  goto out;
136
138
  }
137
139
 
138
- if ((error = git_path_validate_workdir(NULL, dir)) < 0)
140
+ if ((error = git_path_validate_length(NULL, dir)) < 0)
139
141
  goto out;
140
142
 
141
143
  if ((wt = git__calloc(1, sizeof(*wt))) == NULL) {
@@ -147,14 +149,14 @@ static int open_worktree_dir(git_worktree **out, const char *parent, const char
147
149
  (wt->commondir_path = git_worktree__read_link(dir, "commondir")) == NULL ||
148
150
  (wt->gitlink_path = git_worktree__read_link(dir, "gitdir")) == NULL ||
149
151
  (parent && (wt->parent_path = git__strdup(parent)) == NULL) ||
150
- (wt->worktree_path = git_path_dirname(wt->gitlink_path)) == NULL) {
152
+ (wt->worktree_path = git_fs_path_dirname(wt->gitlink_path)) == NULL) {
151
153
  error = -1;
152
154
  goto out;
153
155
  }
154
156
 
155
- if ((error = git_path_prettify_dir(&gitdir, dir, NULL)) < 0)
157
+ if ((error = git_fs_path_prettify_dir(&gitdir, dir, NULL)) < 0)
156
158
  goto out;
157
- wt->gitdir_path = git_buf_detach(&gitdir);
159
+ wt->gitdir_path = git_str_detach(&gitdir);
158
160
 
159
161
  if ((error = git_worktree_is_locked(NULL, wt)) < 0)
160
162
  goto out;
@@ -166,14 +168,14 @@ static int open_worktree_dir(git_worktree **out, const char *parent, const char
166
168
  out:
167
169
  if (error)
168
170
  git_worktree_free(wt);
169
- git_buf_dispose(&gitdir);
171
+ git_str_dispose(&gitdir);
170
172
 
171
173
  return error;
172
174
  }
173
175
 
174
176
  int git_worktree_lookup(git_worktree **out, git_repository *repo, const char *name)
175
177
  {
176
- git_buf path = GIT_BUF_INIT;
178
+ git_str path = GIT_STR_INIT;
177
179
  git_worktree *wt = NULL;
178
180
  int error;
179
181
 
@@ -182,14 +184,19 @@ int git_worktree_lookup(git_worktree **out, git_repository *repo, const char *na
182
184
 
183
185
  *out = NULL;
184
186
 
185
- if ((error = git_buf_join3(&path, '/', repo->commondir, "worktrees", name)) < 0)
187
+ if ((error = git_str_join3(&path, '/', repo->commondir, "worktrees", name)) < 0)
186
188
  goto out;
187
189
 
190
+ if (!git_fs_path_isdir(path.ptr)) {
191
+ error = GIT_ENOTFOUND;
192
+ goto out;
193
+ }
194
+
188
195
  if ((error = (open_worktree_dir(out, git_repository_workdir(repo), path.ptr, name))) < 0)
189
196
  goto out;
190
197
 
191
198
  out:
192
- git_buf_dispose(&path);
199
+ git_str_dispose(&path);
193
200
 
194
201
  if (error)
195
202
  git_worktree_free(wt);
@@ -199,7 +206,7 @@ out:
199
206
 
200
207
  int git_worktree_open_from_repository(git_worktree **out, git_repository *repo)
201
208
  {
202
- git_buf parent = GIT_BUF_INIT;
209
+ git_str parent = GIT_STR_INIT;
203
210
  const char *gitdir, *commondir;
204
211
  char *name = NULL;
205
212
  int error = 0;
@@ -213,18 +220,18 @@ int git_worktree_open_from_repository(git_worktree **out, git_repository *repo)
213
220
  gitdir = git_repository_path(repo);
214
221
  commondir = git_repository_commondir(repo);
215
222
 
216
- if ((error = git_path_prettify_dir(&parent, "..", commondir)) < 0)
223
+ if ((error = git_fs_path_prettify_dir(&parent, "..", commondir)) < 0)
217
224
  goto out;
218
225
 
219
226
  /* The name is defined by the last component in '.git/worktree/%s' */
220
- name = git_path_basename(gitdir);
227
+ name = git_fs_path_basename(gitdir);
221
228
 
222
229
  if ((error = open_worktree_dir(out, parent.ptr, gitdir, name)) < 0)
223
230
  goto out;
224
231
 
225
232
  out:
226
233
  git__free(name);
227
- git_buf_dispose(&parent);
234
+ git_str_dispose(&parent);
228
235
 
229
236
  return error;
230
237
  }
@@ -254,21 +261,21 @@ int git_worktree_validate(const git_worktree *wt)
254
261
  return GIT_ERROR;
255
262
  }
256
263
 
257
- if (wt->parent_path && !git_path_exists(wt->parent_path)) {
264
+ if (wt->parent_path && !git_fs_path_exists(wt->parent_path)) {
258
265
  git_error_set(GIT_ERROR_WORKTREE,
259
266
  "worktree parent directory ('%s') does not exist ",
260
267
  wt->parent_path);
261
268
  return GIT_ERROR;
262
269
  }
263
270
 
264
- if (!git_path_exists(wt->commondir_path)) {
271
+ if (!git_fs_path_exists(wt->commondir_path)) {
265
272
  git_error_set(GIT_ERROR_WORKTREE,
266
273
  "worktree common directory ('%s') does not exist ",
267
274
  wt->commondir_path);
268
275
  return GIT_ERROR;
269
276
  }
270
277
 
271
- if (!git_path_exists(wt->worktree_path)) {
278
+ if (!git_fs_path_exists(wt->worktree_path)) {
272
279
  git_error_set(GIT_ERROR_WORKTREE,
273
280
  "worktree directory '%s' does not exist",
274
281
  wt->worktree_path);
@@ -298,20 +305,17 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
298
305
  const char *name, const char *worktree,
299
306
  const git_worktree_add_options *opts)
300
307
  {
301
- git_buf gitdir = GIT_BUF_INIT, wddir = GIT_BUF_INIT, buf = GIT_BUF_INIT;
308
+ git_str gitdir = GIT_STR_INIT, wddir = GIT_STR_INIT, buf = GIT_STR_INIT;
302
309
  git_reference *ref = NULL, *head = NULL;
303
310
  git_commit *commit = NULL;
304
311
  git_repository *wt = NULL;
305
- git_checkout_options coopts = GIT_CHECKOUT_OPTIONS_INIT;
312
+ git_checkout_options coopts;
306
313
  git_worktree_add_options wtopts = GIT_WORKTREE_ADD_OPTIONS_INIT;
307
314
  int err;
308
315
 
309
316
  GIT_ERROR_CHECK_VERSION(
310
317
  opts, GIT_WORKTREE_ADD_OPTIONS_VERSION, "git_worktree_add_options");
311
318
 
312
- if (opts)
313
- memcpy(&wtopts, opts, sizeof(wtopts));
314
-
315
319
  GIT_ASSERT_ARG(out);
316
320
  GIT_ASSERT_ARG(repo);
317
321
  GIT_ASSERT_ARG(name);
@@ -319,6 +323,11 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
319
323
 
320
324
  *out = NULL;
321
325
 
326
+ if (opts)
327
+ memcpy(&wtopts, opts, sizeof(wtopts));
328
+
329
+ memcpy(&coopts, &wtopts.checkout_options, sizeof(coopts));
330
+
322
331
  if (wtopts.ref) {
323
332
  if (!git_reference_is_branch(wtopts.ref)) {
324
333
  git_error_set(GIT_ERROR_WORKTREE, "reference is not a branch");
@@ -334,28 +343,28 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
334
343
  }
335
344
 
336
345
  /* Create gitdir directory ".git/worktrees/<name>" */
337
- if ((err = git_buf_joinpath(&gitdir, repo->commondir, "worktrees")) < 0)
346
+ if ((err = git_str_joinpath(&gitdir, repo->commondir, "worktrees")) < 0)
338
347
  goto out;
339
- if (!git_path_exists(gitdir.ptr))
348
+ if (!git_fs_path_exists(gitdir.ptr))
340
349
  if ((err = git_futils_mkdir(gitdir.ptr, 0755, GIT_MKDIR_EXCL)) < 0)
341
350
  goto out;
342
- if ((err = git_buf_joinpath(&gitdir, gitdir.ptr, name)) < 0)
351
+ if ((err = git_str_joinpath(&gitdir, gitdir.ptr, name)) < 0)
343
352
  goto out;
344
353
  if ((err = git_futils_mkdir(gitdir.ptr, 0755, GIT_MKDIR_EXCL)) < 0)
345
354
  goto out;
346
- if ((err = git_path_prettify_dir(&gitdir, gitdir.ptr, NULL)) < 0)
355
+ if ((err = git_fs_path_prettify_dir(&gitdir, gitdir.ptr, NULL)) < 0)
347
356
  goto out;
348
357
 
349
358
  /* Create worktree work dir */
350
359
  if ((err = git_futils_mkdir(worktree, 0755, GIT_MKDIR_EXCL)) < 0)
351
360
  goto out;
352
- if ((err = git_path_prettify_dir(&wddir, worktree, NULL)) < 0)
361
+ if ((err = git_fs_path_prettify_dir(&wddir, worktree, NULL)) < 0)
353
362
  goto out;
354
363
 
355
364
  if (wtopts.lock) {
356
365
  int fd;
357
366
 
358
- if ((err = git_buf_joinpath(&buf, gitdir.ptr, "locked")) < 0)
367
+ if ((err = git_str_joinpath(&buf, gitdir.ptr, "locked")) < 0)
359
368
  goto out;
360
369
 
361
370
  if ((fd = p_creat(buf.ptr, 0644)) < 0) {
@@ -364,22 +373,22 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
364
373
  }
365
374
 
366
375
  p_close(fd);
367
- git_buf_clear(&buf);
376
+ git_str_clear(&buf);
368
377
  }
369
378
 
370
379
  /* Create worktree .git file */
371
- if ((err = git_buf_printf(&buf, "gitdir: %s\n", gitdir.ptr)) < 0)
380
+ if ((err = git_str_printf(&buf, "gitdir: %s\n", gitdir.ptr)) < 0)
372
381
  goto out;
373
382
  if ((err = write_wtfile(wddir.ptr, ".git", &buf)) < 0)
374
383
  goto out;
375
384
 
376
385
  /* Create gitdir files */
377
- if ((err = git_path_prettify_dir(&buf, repo->commondir, NULL) < 0)
378
- || (err = git_buf_putc(&buf, '\n')) < 0
386
+ if ((err = git_fs_path_prettify_dir(&buf, repo->commondir, NULL) < 0)
387
+ || (err = git_str_putc(&buf, '\n')) < 0
379
388
  || (err = write_wtfile(gitdir.ptr, "commondir", &buf)) < 0)
380
389
  goto out;
381
- if ((err = git_buf_joinpath(&buf, wddir.ptr, ".git")) < 0
382
- || (err = git_buf_putc(&buf, '\n')) < 0
390
+ if ((err = git_str_joinpath(&buf, wddir.ptr, ".git")) < 0
391
+ || (err = git_str_putc(&buf, '\n')) < 0
383
392
  || (err = write_wtfile(gitdir.ptr, "gitdir", &buf)) < 0)
384
393
  goto out;
385
394
 
@@ -403,7 +412,6 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
403
412
  goto out;
404
413
 
405
414
  /* Checkout worktree's HEAD */
406
- coopts.checkout_strategy = GIT_CHECKOUT_FORCE;
407
415
  if ((err = git_checkout_head(wt, &coopts)) < 0)
408
416
  goto out;
409
417
 
@@ -412,9 +420,9 @@ int git_worktree_add(git_worktree **out, git_repository *repo,
412
420
  goto out;
413
421
 
414
422
  out:
415
- git_buf_dispose(&gitdir);
416
- git_buf_dispose(&wddir);
417
- git_buf_dispose(&buf);
423
+ git_str_dispose(&gitdir);
424
+ git_str_dispose(&wddir);
425
+ git_str_dispose(&buf);
418
426
  git_reference_free(ref);
419
427
  git_reference_free(head);
420
428
  git_commit_free(commit);
@@ -425,7 +433,7 @@ out:
425
433
 
426
434
  int git_worktree_lock(git_worktree *wt, const char *reason)
427
435
  {
428
- git_buf buf = GIT_BUF_INIT, path = GIT_BUF_INIT;
436
+ git_str buf = GIT_STR_INIT, path = GIT_STR_INIT;
429
437
  int error;
430
438
 
431
439
  GIT_ASSERT_ARG(wt);
@@ -437,11 +445,11 @@ int git_worktree_lock(git_worktree *wt, const char *reason)
437
445
  goto out;
438
446
  }
439
447
 
440
- if ((error = git_buf_joinpath(&path, wt->gitdir_path, "locked")) < 0)
448
+ if ((error = git_str_joinpath(&path, wt->gitdir_path, "locked")) < 0)
441
449
  goto out;
442
450
 
443
451
  if (reason)
444
- git_buf_attach_notowned(&buf, reason, strlen(reason));
452
+ git_str_attach_notowned(&buf, reason, strlen(reason));
445
453
 
446
454
  if ((error = git_futils_writebuffer(&buf, path.ptr, O_CREAT|O_EXCL|O_WRONLY, 0644)) < 0)
447
455
  goto out;
@@ -449,14 +457,14 @@ int git_worktree_lock(git_worktree *wt, const char *reason)
449
457
  wt->locked = 1;
450
458
 
451
459
  out:
452
- git_buf_dispose(&path);
460
+ git_str_dispose(&path);
453
461
 
454
462
  return error;
455
463
  }
456
464
 
457
465
  int git_worktree_unlock(git_worktree *wt)
458
466
  {
459
- git_buf path = GIT_BUF_INIT;
467
+ git_str path = GIT_STR_INIT;
460
468
  int error;
461
469
 
462
470
  GIT_ASSERT_ARG(wt);
@@ -466,42 +474,61 @@ int git_worktree_unlock(git_worktree *wt)
466
474
  if (!error)
467
475
  return 1;
468
476
 
469
- if (git_buf_joinpath(&path, wt->gitdir_path, "locked") < 0)
477
+ if (git_str_joinpath(&path, wt->gitdir_path, "locked") < 0)
470
478
  return -1;
471
479
 
472
480
  if (p_unlink(path.ptr) != 0) {
473
- git_buf_dispose(&path);
481
+ git_str_dispose(&path);
474
482
  return -1;
475
483
  }
476
484
 
477
485
  wt->locked = 0;
478
486
 
479
- git_buf_dispose(&path);
487
+ git_str_dispose(&path);
480
488
 
481
489
  return 0;
482
490
  }
483
491
 
484
- int git_worktree_is_locked(git_buf *reason, const git_worktree *wt)
492
+ static int git_worktree__is_locked(git_str *reason, const git_worktree *wt)
485
493
  {
486
- git_buf path = GIT_BUF_INIT;
494
+ git_str path = GIT_STR_INIT;
487
495
  int error, locked;
488
496
 
489
497
  GIT_ASSERT_ARG(wt);
490
498
 
491
499
  if (reason)
492
- git_buf_clear(reason);
500
+ git_str_clear(reason);
493
501
 
494
- if ((error = git_buf_joinpath(&path, wt->gitdir_path, "locked")) < 0)
502
+ if ((error = git_str_joinpath(&path, wt->gitdir_path, "locked")) < 0)
495
503
  goto out;
496
- locked = git_path_exists(path.ptr);
504
+ locked = git_fs_path_exists(path.ptr);
497
505
  if (locked && reason &&
498
506
  (error = git_futils_readbuffer(reason, path.ptr)) < 0)
499
507
  goto out;
500
508
 
501
509
  error = locked;
502
510
  out:
503
- git_buf_dispose(&path);
511
+ git_str_dispose(&path);
512
+
513
+ return error;
514
+ }
515
+
516
+ int git_worktree_is_locked(git_buf *reason, const git_worktree *wt)
517
+ {
518
+ git_str str = GIT_STR_INIT;
519
+ int error = 0;
520
+
521
+ if (reason && (error = git_buf_tostr(&str, reason)) < 0)
522
+ return error;
523
+
524
+ error = git_worktree__is_locked(reason ? &str : NULL, wt);
525
+
526
+ if (error >= 0 && reason) {
527
+ if (git_buf_fromstr(reason, &str) < 0)
528
+ error = -1;
529
+ }
504
530
 
531
+ git_str_dispose(&str);
505
532
  return error;
506
533
  }
507
534
 
@@ -547,17 +574,17 @@ int git_worktree_is_prunable(git_worktree *wt,
547
574
  memcpy(&popts, opts, sizeof(popts));
548
575
 
549
576
  if ((popts.flags & GIT_WORKTREE_PRUNE_LOCKED) == 0) {
550
- git_buf reason = GIT_BUF_INIT;
577
+ git_str reason = GIT_STR_INIT;
551
578
  int error;
552
579
 
553
- if ((error = git_worktree_is_locked(&reason, wt)) < 0)
580
+ if ((error = git_worktree__is_locked(&reason, wt)) < 0)
554
581
  return error;
555
582
 
556
583
  if (error) {
557
584
  if (!reason.size)
558
- git_buf_attach_notowned(&reason, "no reason given", 15);
585
+ git_str_attach_notowned(&reason, "no reason given", 15);
559
586
  git_error_set(GIT_ERROR_WORKTREE, "not pruning locked working tree: '%s'", reason.ptr);
560
- git_buf_dispose(&reason);
587
+ git_str_dispose(&reason);
561
588
  return 0;
562
589
  }
563
590
  }
@@ -575,7 +602,7 @@ int git_worktree_prune(git_worktree *wt,
575
602
  git_worktree_prune_options *opts)
576
603
  {
577
604
  git_worktree_prune_options popts = GIT_WORKTREE_PRUNE_OPTIONS_INIT;
578
- git_buf path = GIT_BUF_INIT;
605
+ git_str path = GIT_STR_INIT;
579
606
  char *wtpath;
580
607
  int err;
581
608
 
@@ -592,9 +619,9 @@ int git_worktree_prune(git_worktree *wt,
592
619
  }
593
620
 
594
621
  /* Delete gitdir in parent repository */
595
- if ((err = git_buf_join3(&path, '/', wt->commondir_path, "worktrees", wt->name)) < 0)
622
+ if ((err = git_str_join3(&path, '/', wt->commondir_path, "worktrees", wt->name)) < 0)
596
623
  goto out;
597
- if (!git_path_exists(path.ptr))
624
+ if (!git_fs_path_exists(path.ptr))
598
625
  {
599
626
  git_error_set(GIT_ERROR_WORKTREE, "worktree gitdir '%s' does not exist", path.ptr);
600
627
  err = -1;
@@ -606,15 +633,15 @@ int git_worktree_prune(git_worktree *wt,
606
633
  /* Skip deletion of the actual working tree if it does
607
634
  * not exist or deletion was not requested */
608
635
  if ((popts.flags & GIT_WORKTREE_PRUNE_WORKING_TREE) == 0 ||
609
- !git_path_exists(wt->gitlink_path))
636
+ !git_fs_path_exists(wt->gitlink_path))
610
637
  {
611
638
  goto out;
612
639
  }
613
640
 
614
- if ((wtpath = git_path_dirname(wt->gitlink_path)) == NULL)
641
+ if ((wtpath = git_fs_path_dirname(wt->gitlink_path)) == NULL)
615
642
  goto out;
616
- git_buf_attach(&path, wtpath, 0);
617
- if (!git_path_exists(path.ptr))
643
+ git_str_attach(&path, wtpath, 0);
644
+ if (!git_fs_path_exists(path.ptr))
618
645
  {
619
646
  git_error_set(GIT_ERROR_WORKTREE, "working tree '%s' does not exist", path.ptr);
620
647
  err = -1;
@@ -624,7 +651,7 @@ int git_worktree_prune(git_worktree *wt,
624
651
  goto out;
625
652
 
626
653
  out:
627
- git_buf_dispose(&path);
654
+ git_str_dispose(&path);
628
655
 
629
656
  return err;
630
657
  }
@@ -31,7 +31,7 @@ struct git_worktree {
31
31
  /* Path to the parent's working directory */
32
32
  char *parent_path;
33
33
 
34
- int locked:1;
34
+ unsigned int locked:1;
35
35
  };
36
36
 
37
37
  char *git_worktree__read_link(const char *base, const char *file);
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ /*
9
+ * This file provides the necessary indirection between xdiff and
10
+ * libgit2. libgit2-specific functionality should live here, so
11
+ * that git and libgit2 can share a common xdiff implementation.
12
+ */
13
+
14
+ #ifndef INCLUDE_git_xdiff_h__
15
+ #define INCLUDE_git_xdiff_h__
16
+
17
+ #include "regexp.h"
18
+
19
+ /* Work around C90-conformance issues */
20
+ #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
21
+ # if defined(_MSC_VER)
22
+ # define inline __inline
23
+ # elif defined(__GNUC__)
24
+ # define inline __inline__
25
+ # else
26
+ # define inline
27
+ # endif
28
+ #endif
29
+
30
+ #define xdl_malloc(x) git__malloc(x)
31
+ #define xdl_free(ptr) git__free(ptr)
32
+ #define xdl_realloc(ptr, x) git__realloc(ptr, x)
33
+
34
+ #define XDL_BUG(msg) GIT_ASSERT(msg)
35
+
36
+ #define xdl_regex_t git_regexp
37
+ #define xdl_regmatch_t git_regmatch
38
+
39
+ GIT_INLINE(int) xdl_regexec_buf(
40
+ const xdl_regex_t *preg, const char *buf, size_t size,
41
+ size_t nmatch, xdl_regmatch_t pmatch[], int eflags)
42
+ {
43
+ GIT_UNUSED(preg);
44
+ GIT_UNUSED(buf);
45
+ GIT_UNUSED(size);
46
+ GIT_UNUSED(nmatch);
47
+ GIT_UNUSED(pmatch);
48
+ GIT_UNUSED(eflags);
49
+ GIT_ASSERT("not implemented");
50
+ return -1;
51
+ }
52
+
53
+ #endif