git-chopstick-core 0.1.1 → 0.1.3

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 (461) hide show
  1. package/README.md +324 -32
  2. package/dist/git/add.d.ts +9 -0
  3. package/dist/git/add.js +11 -0
  4. package/dist/git/add.js.map +1 -0
  5. package/dist/git/apply.d.ts +33 -0
  6. package/dist/git/apply.js +103 -0
  7. package/dist/git/apply.js.map +1 -0
  8. package/dist/git/authentication.d.ts +5 -0
  9. package/dist/git/authentication.js +19 -0
  10. package/dist/git/authentication.js.map +1 -0
  11. package/dist/git/branch.d.ts +43 -0
  12. package/dist/git/branch.js +150 -0
  13. package/dist/git/branch.js.map +1 -0
  14. package/dist/git/checkout-index.d.ts +19 -0
  15. package/{src/git/checkout-index.ts → dist/git/checkout-index.js} +11 -22
  16. package/dist/git/checkout-index.js.map +1 -0
  17. package/dist/git/checkout.d.ts +46 -0
  18. package/dist/git/checkout.js +126 -0
  19. package/dist/git/checkout.js.map +1 -0
  20. package/dist/git/cherry-pick.d.ts +82 -0
  21. package/dist/git/cherry-pick.js +371 -0
  22. package/dist/git/cherry-pick.js.map +1 -0
  23. package/dist/git/clean.d.ts +5 -0
  24. package/dist/git/clean.js +8 -0
  25. package/dist/git/clean.js.map +1 -0
  26. package/dist/git/clone.d.ts +22 -0
  27. package/dist/git/clone.js +58 -0
  28. package/dist/git/clone.js.map +1 -0
  29. package/dist/git/coerce-to-buffer.d.ts +1 -0
  30. package/dist/git/coerce-to-buffer.js +2 -0
  31. package/dist/git/coerce-to-buffer.js.map +1 -0
  32. package/dist/git/coerce-to-string.d.ts +1 -0
  33. package/dist/git/coerce-to-string.js +2 -0
  34. package/dist/git/coerce-to-string.js.map +1 -0
  35. package/dist/git/commit.d.ts +25 -0
  36. package/dist/git/commit.js +99 -0
  37. package/dist/git/commit.js.map +1 -0
  38. package/dist/git/config.d.ts +98 -0
  39. package/dist/git/config.js +249 -0
  40. package/dist/git/config.js.map +1 -0
  41. package/dist/git/core.d.ts +167 -0
  42. package/dist/git/core.js +368 -0
  43. package/dist/git/core.js.map +1 -0
  44. package/dist/git/create-tail-stream.d.ts +4 -0
  45. package/dist/git/create-tail-stream.js +30 -0
  46. package/dist/git/create-tail-stream.js.map +1 -0
  47. package/dist/git/credential.d.ts +5 -0
  48. package/dist/git/credential.js +64 -0
  49. package/dist/git/credential.js.map +1 -0
  50. package/dist/git/description.d.ts +5 -0
  51. package/dist/git/description.js +24 -0
  52. package/dist/git/description.js.map +1 -0
  53. package/dist/git/diff-check.d.ts +7 -0
  54. package/dist/git/diff-check.js +17 -0
  55. package/dist/git/diff-check.js.map +1 -0
  56. package/dist/git/diff-index.d.ts +31 -0
  57. package/dist/git/diff-index.js +76 -0
  58. package/dist/git/diff-index.js.map +1 -0
  59. package/dist/git/diff.d.ts +81 -0
  60. package/dist/git/diff.js +611 -0
  61. package/dist/git/diff.js.map +1 -0
  62. package/dist/git/environment.d.ts +51 -0
  63. package/dist/git/environment.js +97 -0
  64. package/dist/git/environment.js.map +1 -0
  65. package/dist/git/exec.d.ts +109 -0
  66. package/dist/git/exec.js +224 -0
  67. package/dist/git/exec.js.map +1 -0
  68. package/dist/git/fetch.d.ts +25 -0
  69. package/dist/git/fetch.js +100 -0
  70. package/dist/git/fetch.js.map +1 -0
  71. package/dist/git/for-each-ref.d.ts +13 -0
  72. package/dist/git/for-each-ref.js +114 -0
  73. package/dist/git/for-each-ref.js.map +1 -0
  74. package/dist/git/format-patch.d.ts +10 -0
  75. package/dist/git/format-patch.js +16 -0
  76. package/dist/git/format-patch.js.map +1 -0
  77. package/dist/git/git-delimiter-parser.d.ts +38 -0
  78. package/dist/git/git-delimiter-parser.js +79 -0
  79. package/dist/git/git-delimiter-parser.js.map +1 -0
  80. package/dist/git/gitignore.d.ts +26 -0
  81. package/dist/git/gitignore.js +124 -0
  82. package/dist/git/gitignore.js.map +1 -0
  83. package/dist/git/index.d.ts +46 -0
  84. package/dist/git/index.js +47 -0
  85. package/dist/git/index.js.map +1 -0
  86. package/dist/git/init.d.ts +2 -0
  87. package/dist/git/init.js +7 -0
  88. package/dist/git/init.js.map +1 -0
  89. package/{src/git/interpret-trailers.ts → dist/git/interpret-trailers.d.ts} +9 -97
  90. package/dist/git/interpret-trailers.js +130 -0
  91. package/dist/git/interpret-trailers.js.map +1 -0
  92. package/dist/git/lfs.d.ts +25 -0
  93. package/dist/git/lfs.js +73 -0
  94. package/dist/git/lfs.js.map +1 -0
  95. package/dist/git/log.d.ts +56 -0
  96. package/dist/git/log.js +258 -0
  97. package/dist/git/log.js.map +1 -0
  98. package/dist/git/merge-tree.d.ts +13 -0
  99. package/dist/git/merge-tree.js +24 -0
  100. package/dist/git/merge-tree.js.map +1 -0
  101. package/dist/git/merge.d.ts +50 -0
  102. package/dist/git/merge.js +111 -0
  103. package/dist/git/merge.js.map +1 -0
  104. package/dist/git/multi-operation-terminal-output.d.ts +20 -0
  105. package/dist/git/multi-operation-terminal-output.js +56 -0
  106. package/dist/git/multi-operation-terminal-output.js.map +1 -0
  107. package/dist/git/pull.d.ts +24 -0
  108. package/dist/git/pull.js +91 -0
  109. package/dist/git/pull.js.map +1 -0
  110. package/{src/git/push-terminal-chunk.ts → dist/git/push-terminal-chunk.d.ts} +1 -23
  111. package/dist/git/push-terminal-chunk.js +36 -0
  112. package/dist/git/push-terminal-chunk.js.map +1 -0
  113. package/dist/git/push.d.ts +42 -0
  114. package/dist/git/push.js +80 -0
  115. package/dist/git/push.js.map +1 -0
  116. package/dist/git/rebase.d.ts +119 -0
  117. package/dist/git/rebase.js +415 -0
  118. package/dist/git/rebase.js.map +1 -0
  119. package/dist/git/reflog.d.ts +14 -0
  120. package/dist/git/reflog.js +88 -0
  121. package/dist/git/reflog.js.map +1 -0
  122. package/dist/git/refs.d.ts +26 -0
  123. package/dist/git/refs.js +53 -0
  124. package/dist/git/refs.js.map +1 -0
  125. package/dist/git/remote.d.ts +31 -0
  126. package/dist/git/remote.js +81 -0
  127. package/dist/git/remote.js.map +1 -0
  128. package/dist/git/reorder.d.ts +23 -0
  129. package/dist/git/reorder.js +111 -0
  130. package/dist/git/reorder.js.map +1 -0
  131. package/dist/git/reset.d.ts +41 -0
  132. package/dist/git/reset.js +86 -0
  133. package/dist/git/reset.js.map +1 -0
  134. package/dist/git/rev-list.d.ts +67 -0
  135. package/dist/git/rev-list.js +157 -0
  136. package/dist/git/rev-list.js.map +1 -0
  137. package/dist/git/rev-parse.d.ts +24 -0
  138. package/dist/git/rev-parse.js +65 -0
  139. package/dist/git/rev-parse.js.map +1 -0
  140. package/dist/git/revert.d.ts +12 -0
  141. package/dist/git/revert.js +30 -0
  142. package/dist/git/revert.js.map +1 -0
  143. package/dist/git/rm.d.ts +12 -0
  144. package/dist/git/rm.js +22 -0
  145. package/dist/git/rm.js.map +1 -0
  146. package/dist/git/show.d.ts +42 -0
  147. package/{src/git/show.ts → dist/git/show.js} +17 -46
  148. package/dist/git/show.js.map +1 -0
  149. package/dist/git/spawn.d.ts +18 -0
  150. package/dist/git/spawn.js +16 -0
  151. package/dist/git/spawn.js.map +1 -0
  152. package/dist/git/squash.d.ts +28 -0
  153. package/dist/git/squash.js +127 -0
  154. package/dist/git/squash.js.map +1 -0
  155. package/dist/git/stage.d.ts +21 -0
  156. package/dist/git/stage.js +72 -0
  157. package/dist/git/stage.js.map +1 -0
  158. package/dist/git/stash.d.ts +53 -0
  159. package/dist/git/stash.js +204 -0
  160. package/dist/git/stash.js.map +1 -0
  161. package/dist/git/status.d.ts +39 -0
  162. package/dist/git/status.js +293 -0
  163. package/dist/git/status.js.map +1 -0
  164. package/dist/git/submodule.d.ts +20 -0
  165. package/dist/git/submodule.js +153 -0
  166. package/dist/git/submodule.js.map +1 -0
  167. package/dist/git/tag.d.ts +32 -0
  168. package/dist/git/tag.js +101 -0
  169. package/dist/git/tag.js.map +1 -0
  170. package/dist/git/update-index.d.ts +11 -0
  171. package/dist/git/update-index.js +99 -0
  172. package/dist/git/update-index.js.map +1 -0
  173. package/dist/git/update-ref.d.ts +23 -0
  174. package/{src/git/update-ref.ts → dist/git/update-ref.js} +10 -28
  175. package/dist/git/update-ref.js.map +1 -0
  176. package/dist/git/var.d.ts +18 -0
  177. package/{src/git/var.ts → dist/git/var.js} +16 -25
  178. package/dist/git/var.js.map +1 -0
  179. package/dist/git/worktree-include.d.ts +42 -0
  180. package/dist/git/worktree-include.js +109 -0
  181. package/dist/git/worktree-include.js.map +1 -0
  182. package/dist/git/worktree.d.ts +25 -0
  183. package/dist/git/worktree.js +139 -0
  184. package/dist/git/worktree.js.map +1 -0
  185. package/dist/index.d.ts +4 -0
  186. package/dist/index.js +7 -0
  187. package/dist/index.js.map +1 -0
  188. package/dist/lib/api.d.ts +2 -0
  189. package/dist/lib/api.js +7 -0
  190. package/dist/lib/api.js.map +1 -0
  191. package/dist/lib/diff-parser.d.ts +20 -0
  192. package/dist/lib/diff-parser.js +184 -0
  193. package/dist/lib/diff-parser.js.map +1 -0
  194. package/dist/lib/directory-exists.d.ts +1 -0
  195. package/dist/lib/directory-exists.js +11 -0
  196. package/dist/lib/directory-exists.js.map +1 -0
  197. package/dist/lib/errno-exception.d.ts +6 -0
  198. package/dist/lib/errno-exception.js +6 -0
  199. package/dist/lib/errno-exception.js.map +1 -0
  200. package/dist/lib/fatal-error.d.ts +4 -0
  201. package/dist/lib/fatal-error.js +18 -0
  202. package/dist/lib/fatal-error.js.map +1 -0
  203. package/dist/lib/feature-flag.d.ts +14 -0
  204. package/dist/lib/feature-flag.js +25 -0
  205. package/dist/lib/feature-flag.js.map +1 -0
  206. package/dist/lib/file-system.d.ts +1 -0
  207. package/dist/lib/file-system.js +7 -0
  208. package/dist/lib/file-system.js.map +1 -0
  209. package/dist/lib/get-old-path.d.ts +2 -0
  210. package/dist/lib/get-old-path.js +9 -0
  211. package/dist/lib/get-old-path.js.map +1 -0
  212. package/dist/lib/git/environment.d.ts +3 -0
  213. package/dist/lib/git/environment.js +7 -0
  214. package/dist/lib/git/environment.js.map +1 -0
  215. package/dist/lib/git-perf.d.ts +1 -0
  216. package/dist/lib/git-perf.js +4 -0
  217. package/dist/lib/git-perf.js.map +1 -0
  218. package/dist/lib/helpers/default-branch.d.ts +1 -0
  219. package/dist/lib/helpers/default-branch.js +4 -0
  220. package/dist/lib/helpers/default-branch.js.map +1 -0
  221. package/dist/lib/helpers/path.d.ts +1 -0
  222. package/dist/lib/helpers/path.js +5 -0
  223. package/dist/lib/helpers/path.js.map +1 -0
  224. package/dist/lib/hooks/with-hooks-env.d.ts +3 -0
  225. package/dist/lib/hooks/with-hooks-env.js +4 -0
  226. package/dist/lib/hooks/with-hooks-env.js.map +1 -0
  227. package/dist/lib/merge.d.ts +1 -0
  228. package/dist/lib/merge.js +4 -0
  229. package/dist/lib/merge.js.map +1 -0
  230. package/dist/lib/noop.d.ts +1 -0
  231. package/dist/lib/noop.js +2 -0
  232. package/dist/lib/noop.js.map +1 -0
  233. package/dist/lib/patch-formatter.d.ts +5 -0
  234. package/dist/lib/patch-formatter.js +7 -0
  235. package/dist/lib/patch-formatter.js.map +1 -0
  236. package/dist/lib/path-exists.d.ts +1 -0
  237. package/dist/lib/path-exists.js +3 -0
  238. package/dist/lib/path-exists.js.map +1 -0
  239. package/dist/lib/progress/from-process.d.ts +2 -0
  240. package/dist/lib/progress/from-process.js +4 -0
  241. package/dist/lib/progress/from-process.js.map +1 -0
  242. package/dist/lib/progress/index.d.ts +49 -0
  243. package/dist/lib/progress/index.js +32 -0
  244. package/dist/lib/progress/index.js.map +1 -0
  245. package/dist/lib/progress/revert.d.ts +8 -0
  246. package/dist/lib/progress/revert.js +15 -0
  247. package/dist/lib/progress/revert.js.map +1 -0
  248. package/dist/lib/rebase.d.ts +1 -0
  249. package/dist/lib/rebase.js +4 -0
  250. package/dist/lib/rebase.js.map +1 -0
  251. package/dist/lib/remove-remote-prefix.d.ts +1 -0
  252. package/dist/lib/remove-remote-prefix.js +5 -0
  253. package/dist/lib/remove-remote-prefix.js.map +1 -0
  254. package/dist/lib/resolve-git-proxy.d.ts +1 -0
  255. package/dist/lib/resolve-git-proxy.js +4 -0
  256. package/dist/lib/resolve-git-proxy.js.map +1 -0
  257. package/dist/lib/round.d.ts +1 -0
  258. package/dist/lib/round.js +5 -0
  259. package/dist/lib/round.js.map +1 -0
  260. package/dist/lib/split-buffer.d.ts +1 -0
  261. package/dist/lib/split-buffer.js +15 -0
  262. package/dist/lib/split-buffer.js.map +1 -0
  263. package/dist/lib/status-parser.d.ts +19 -0
  264. package/dist/lib/status-parser.js +125 -0
  265. package/dist/lib/status-parser.js.map +1 -0
  266. package/dist/lib/stores/helpers/find-default-remote.d.ts +1 -0
  267. package/dist/lib/stores/helpers/find-default-remote.js +4 -0
  268. package/dist/lib/stores/helpers/find-default-remote.js.map +1 -0
  269. package/dist/lib/trampoline/trampoline-environment.d.ts +1 -0
  270. package/dist/lib/trampoline/trampoline-environment.js +4 -0
  271. package/dist/lib/trampoline/trampoline-environment.js.map +1 -0
  272. package/dist/models/branch.d.ts +44 -0
  273. package/dist/models/branch.js +59 -0
  274. package/dist/models/branch.js.map +1 -0
  275. package/dist/models/cherry-pick.d.ts +11 -0
  276. package/dist/models/cherry-pick.js +2 -0
  277. package/dist/models/cherry-pick.js.map +1 -0
  278. package/dist/models/clone-options.d.ts +6 -0
  279. package/dist/models/clone-options.js +2 -0
  280. package/dist/models/clone-options.js.map +1 -0
  281. package/dist/models/commit-identity.d.ts +9 -0
  282. package/dist/models/commit-identity.js +34 -0
  283. package/dist/models/commit-identity.js.map +1 -0
  284. package/dist/models/commit.d.ts +30 -0
  285. package/dist/models/commit.js +32 -0
  286. package/dist/models/commit.js.map +1 -0
  287. package/dist/models/computed-action.d.ts +6 -0
  288. package/dist/models/computed-action.js +8 -0
  289. package/dist/models/computed-action.js.map +1 -0
  290. package/dist/models/diff/diff-data.d.ts +53 -0
  291. package/dist/models/diff/diff-data.js +19 -0
  292. package/dist/models/diff/diff-data.js.map +1 -0
  293. package/dist/models/diff/diff-line.d.ts +18 -0
  294. package/dist/models/diff/diff-line.js +33 -0
  295. package/dist/models/diff/diff-line.js.map +1 -0
  296. package/dist/models/diff/diff-selection.d.ts +22 -0
  297. package/dist/models/diff/diff-selection.js +127 -0
  298. package/dist/models/diff/diff-selection.js.map +1 -0
  299. package/dist/models/diff/image-diff.d.ts +6 -0
  300. package/dist/models/diff/image-diff.js +8 -0
  301. package/dist/models/diff/image-diff.js.map +1 -0
  302. package/dist/models/diff/image.d.ts +7 -0
  303. package/dist/models/diff/image.js +13 -0
  304. package/dist/models/diff/image.js.map +1 -0
  305. package/dist/models/diff/index.d.ts +6 -0
  306. package/dist/models/diff/index.js +7 -0
  307. package/dist/models/diff/index.js.map +1 -0
  308. package/dist/models/diff/raw-diff.d.ts +32 -0
  309. package/dist/models/diff/raw-diff.js +38 -0
  310. package/dist/models/diff/raw-diff.js.map +1 -0
  311. package/dist/models/git-author.d.ts +7 -0
  312. package/dist/models/git-author.js +18 -0
  313. package/dist/models/git-author.js.map +1 -0
  314. package/dist/models/index.d.ts +21 -0
  315. package/dist/models/index.js +20 -0
  316. package/dist/models/index.js.map +1 -0
  317. package/dist/models/manual-conflict-resolution.d.ts +4 -0
  318. package/dist/models/manual-conflict-resolution.js +6 -0
  319. package/dist/models/manual-conflict-resolution.js.map +1 -0
  320. package/dist/models/merge.d.ts +6 -0
  321. package/dist/models/merge.js +2 -0
  322. package/dist/models/merge.js.map +1 -0
  323. package/dist/models/multi-commit-operation.d.ts +6 -0
  324. package/dist/models/multi-commit-operation.js +8 -0
  325. package/dist/models/multi-commit-operation.js.map +1 -0
  326. package/dist/models/progress.d.ts +41 -0
  327. package/dist/models/progress.js +7 -0
  328. package/dist/models/progress.js.map +1 -0
  329. package/dist/models/rebase.d.ts +17 -0
  330. package/dist/models/rebase.js +8 -0
  331. package/dist/models/rebase.js.map +1 -0
  332. package/dist/models/remote.d.ts +5 -0
  333. package/dist/models/remote.js +8 -0
  334. package/dist/models/remote.js.map +1 -0
  335. package/dist/models/repository.d.ts +7 -0
  336. package/dist/models/repository.js +15 -0
  337. package/dist/models/repository.js.map +1 -0
  338. package/dist/models/stash-entry.d.ts +20 -0
  339. package/dist/models/stash-entry.js +7 -0
  340. package/dist/models/stash-entry.js.map +1 -0
  341. package/dist/models/status.d.ts +166 -0
  342. package/dist/models/status.js +135 -0
  343. package/dist/models/status.js.map +1 -0
  344. package/dist/models/submodule.d.ts +12 -0
  345. package/dist/models/submodule.js +2 -0
  346. package/dist/models/submodule.js.map +1 -0
  347. package/dist/models/worktree.d.ts +10 -0
  348. package/dist/models/worktree.js +2 -0
  349. package/dist/models/worktree.js.map +1 -0
  350. package/package.json +44 -5
  351. package/examples/get-status.ts +0 -84
  352. package/src/git/add.ts +0 -16
  353. package/src/git/apply.ts +0 -154
  354. package/src/git/authentication.ts +0 -19
  355. package/src/git/branch.ts +0 -206
  356. package/src/git/checkout.ts +0 -235
  357. package/src/git/cherry-pick.ts +0 -504
  358. package/src/git/clean.ts +0 -9
  359. package/src/git/clone.ts +0 -86
  360. package/src/git/coerce-to-buffer.ts +0 -4
  361. package/src/git/coerce-to-string.ts +0 -4
  362. package/src/git/commit.ts +0 -136
  363. package/src/git/config.ts +0 -392
  364. package/src/git/core.ts +0 -625
  365. package/src/git/create-tail-stream.ts +0 -36
  366. package/src/git/credential.ts +0 -83
  367. package/src/git/description.ts +0 -33
  368. package/src/git/diff-check.ts +0 -27
  369. package/src/git/diff-index.ts +0 -116
  370. package/src/git/diff.ts +0 -880
  371. package/src/git/environment.ts +0 -116
  372. package/src/git/exec.ts +0 -285
  373. package/src/git/fetch.ts +0 -141
  374. package/src/git/for-each-ref.ts +0 -160
  375. package/src/git/format-patch.ts +0 -17
  376. package/src/git/git-delimiter-parser.ts +0 -95
  377. package/src/git/gitignore.ts +0 -157
  378. package/src/git/index.ts +0 -36
  379. package/src/git/init.ts +0 -11
  380. package/src/git/lfs.ts +0 -100
  381. package/src/git/log.ts +0 -376
  382. package/src/git/merge-tree.ts +0 -42
  383. package/src/git/merge.ts +0 -154
  384. package/src/git/multi-operation-terminal-output.ts +0 -68
  385. package/src/git/pull.ts +0 -130
  386. package/src/git/push.ts +0 -119
  387. package/src/git/rebase.ts +0 -627
  388. package/src/git/reflog.ts +0 -127
  389. package/src/git/refs.ts +0 -63
  390. package/src/git/remote.ts +0 -143
  391. package/src/git/reorder.ts +0 -153
  392. package/src/git/reset.ts +0 -101
  393. package/src/git/rev-list.ts +0 -201
  394. package/src/git/rev-parse.ts +0 -92
  395. package/src/git/revert.ts +0 -55
  396. package/src/git/rm.ts +0 -31
  397. package/src/git/spawn.ts +0 -38
  398. package/src/git/squash.ts +0 -173
  399. package/src/git/stage.ts +0 -97
  400. package/src/git/stash.ts +0 -302
  401. package/src/git/status.ts +0 -502
  402. package/src/git/submodule.ts +0 -212
  403. package/src/git/tag.ts +0 -134
  404. package/src/git/update-index.ts +0 -169
  405. package/src/git/worktree-include.ts +0 -146
  406. package/src/git/worktree.ts +0 -219
  407. package/src/index.ts +0 -23
  408. package/src/lib/api.ts +0 -7
  409. package/src/lib/diff-parser.ts +0 -249
  410. package/src/lib/directory-exists.ts +0 -10
  411. package/src/lib/errno-exception.ts +0 -12
  412. package/src/lib/fatal-error.ts +0 -23
  413. package/src/lib/feature-flag.ts +0 -29
  414. package/src/lib/file-system.ts +0 -7
  415. package/src/lib/get-old-path.ts +0 -11
  416. package/src/lib/git/environment.ts +0 -14
  417. package/src/lib/git-perf.ts +0 -3
  418. package/src/lib/helpers/default-branch.ts +0 -3
  419. package/src/lib/helpers/path.ts +0 -5
  420. package/src/lib/hooks/with-hooks-env.ts +0 -7
  421. package/src/lib/merge.ts +0 -3
  422. package/src/lib/noop.ts +0 -1
  423. package/src/lib/patch-formatter.ts +0 -18
  424. package/src/lib/path-exists.ts +0 -7
  425. package/src/lib/progress/from-process.ts +0 -10
  426. package/src/lib/progress/index.ts +0 -43
  427. package/src/lib/progress/revert.ts +0 -17
  428. package/src/lib/rebase.ts +0 -3
  429. package/src/lib/remove-remote-prefix.ts +0 -4
  430. package/src/lib/resolve-git-proxy.ts +0 -3
  431. package/src/lib/round.ts +0 -4
  432. package/src/lib/split-buffer.ts +0 -14
  433. package/src/lib/status-parser.ts +0 -188
  434. package/src/lib/stores/helpers/find-default-remote.ts +0 -3
  435. package/src/lib/trampoline/trampoline-environment.ts +0 -8
  436. package/src/models/branch.ts +0 -78
  437. package/src/models/cherry-pick.ts +0 -12
  438. package/src/models/clone-options.ts +0 -6
  439. package/src/models/commit-identity.ts +0 -35
  440. package/src/models/commit.ts +0 -44
  441. package/src/models/computed-action.ts +0 -6
  442. package/src/models/diff/diff-data.ts +0 -78
  443. package/src/models/diff/diff-line.ts +0 -36
  444. package/src/models/diff/diff-selection.ts +0 -165
  445. package/src/models/diff/image-diff.ts +0 -6
  446. package/src/models/diff/image.ts +0 -8
  447. package/src/models/diff/index.ts +0 -6
  448. package/src/models/diff/raw-diff.ts +0 -41
  449. package/src/models/git-author.ts +0 -16
  450. package/src/models/manual-conflict-resolution.ts +0 -4
  451. package/src/models/merge.ts +0 -6
  452. package/src/models/multi-commit-operation.ts +0 -6
  453. package/src/models/progress.ts +0 -67
  454. package/src/models/rebase.ts +0 -20
  455. package/src/models/remote.ts +0 -10
  456. package/src/models/repository.ts +0 -16
  457. package/src/models/stash-entry.ts +0 -25
  458. package/src/models/status.ts +0 -275
  459. package/src/models/submodule.ts +0 -13
  460. package/src/models/worktree.ts +0 -11
  461. package/tsconfig.json +0 -17
package/src/git/reflog.ts DELETED
@@ -1,127 +0,0 @@
1
- import { git } from './core'
2
- import { Repository } from '../models/repository'
3
-
4
- /**
5
- * Get the `limit` most recently checked out branches.
6
- */
7
- export async function getRecentBranches(
8
- repository: Repository,
9
- limit: number
10
- ): Promise<ReadonlyArray<string>> {
11
- // "git reflog show" is just an alias for "git log -g --abbrev-commit --pretty=oneline"
12
- // but by using log we can give it a max number which should prevent us from balling out
13
- // of control when there's ginormous reflogs around (as in e.g. github/github).
14
- const regex = new RegExp(
15
- /.*? (renamed|checkout)(?:: moving from|\s*) (?:refs\/heads\/|\s*)(.*?) to (?:refs\/heads\/|\s*)(.*?)$/i
16
- )
17
-
18
- const result = await git(
19
- [
20
- 'log',
21
- '-g',
22
- '--no-abbrev-commit',
23
- '--pretty=oneline',
24
- 'HEAD',
25
- '-n',
26
- '2500',
27
- '--',
28
- ],
29
- repository.path,
30
- 'getRecentBranches',
31
- { successExitCodes: new Set([0, 128]) }
32
- )
33
-
34
- if (result.exitCode === 128) {
35
- // error code 128 is returned if the branch is unborn
36
- return []
37
- }
38
-
39
- const lines = result.stdout.split('\n')
40
- const names = new Set<string>()
41
- const excludedNames = new Set<String>()
42
-
43
- for (const line of lines) {
44
- const result = regex.exec(line)
45
- if (result && result.length === 4) {
46
- const operationType = result[1]
47
- const excludeBranchName = result[2]
48
- const branchName = result[3]
49
-
50
- if (operationType === 'renamed') {
51
- // exclude intermediate-state renaming branch from recent branches
52
- excludedNames.add(excludeBranchName)
53
- }
54
-
55
- if (!excludedNames.has(branchName)) {
56
- names.add(branchName)
57
- }
58
- }
59
-
60
- if (names.size === limit) {
61
- break
62
- }
63
- }
64
-
65
- return [...names]
66
- }
67
-
68
- const noCommitsOnBranchRe = new RegExp(
69
- "fatal: your current branch '.*' does not have any commits yet"
70
- )
71
-
72
- /**
73
- * Gets the distinct list of branches that have been checked out after a specific date
74
- * Returns a map keyed on branch names
75
- *
76
- * @param repository the repository who's reflog you want to check
77
- * @param afterDate filters checkouts so that only those occurring on or after this date are returned
78
- * @returns map of branch name -> checkout date
79
- */
80
- export async function getBranchCheckouts(
81
- repository: Repository,
82
- afterDate: Date
83
- ): Promise<Map<string, Date>> {
84
- //regexr.com/46n1v
85
- const regex = new RegExp(
86
- /^[a-z0-9]{40}\sHEAD@{(.*)}\scheckout: moving from\s.*\sto\s(.*)$/
87
- )
88
- const result = await git(
89
- [
90
- 'reflog',
91
- '--date=iso',
92
- `--after="${afterDate.toISOString()}"`,
93
- '--pretty=%H %gd %gs',
94
- `--grep-reflog=checkout: moving from .* to .*$`,
95
- '--',
96
- ],
97
- repository.path,
98
- 'getCheckoutsAfterDate',
99
- { successExitCodes: new Set([0, 128]) }
100
- )
101
-
102
- const checkouts = new Map<string, Date>()
103
-
104
- // edge case where orphaned branch is created but Git raises error when
105
- // reading the reflog on this new branch as it has no commits
106
- //
107
- // see https://github.com/desktop/desktop/issues/7983 for more information
108
- if (result.exitCode === 128 && noCommitsOnBranchRe.test(result.stderr)) {
109
- return checkouts
110
- }
111
-
112
- const lines = result.stdout.split('\n')
113
- for (const line of lines) {
114
- const parsedLine = regex.exec(line)
115
-
116
- if (parsedLine === null || parsedLine.length !== 3) {
117
- continue
118
- }
119
-
120
- const [, timestamp, branchName] = parsedLine
121
- if (!checkouts.has(branchName)) {
122
- checkouts.set(branchName, new Date(timestamp))
123
- }
124
- }
125
-
126
- return checkouts
127
- }
package/src/git/refs.ts DELETED
@@ -1,63 +0,0 @@
1
- import { git } from './core'
2
- import { Repository } from '../models/repository'
3
-
4
- /**
5
- * Format a local branch in the ref syntax, ensuring situations when the branch
6
- * is ambiguous are handled.
7
- *
8
- * Examples:
9
- * - main -> refs/heads/main
10
- * - heads/Microsoft/main -> refs/heads/Microsoft/main
11
- *
12
- * @param branch The local branch name
13
- */
14
- export function formatAsLocalRef(name: string): string {
15
- if (name.startsWith('heads/')) {
16
- // In some cases, Git will report this name explicitly to distinguish from
17
- // a remote ref with the same name - this ensures we format it correctly.
18
- return `refs/${name}`
19
- } else if (!name.startsWith('refs/heads/')) {
20
- // By default Git will drop the heads prefix unless absolutely necessary
21
- // - include this to ensure the ref is fully qualified.
22
- return `refs/heads/${name}`
23
- } else {
24
- return name
25
- }
26
- }
27
-
28
- /**
29
- * Read a symbolic ref from the repository.
30
- *
31
- * Symbolic refs are used to point to other refs, similar to how symlinks work
32
- * for files. Because refs can be removed easily from a Git repository,
33
- * symbolic refs should only be used when absolutely necessary.
34
- *
35
- * @param repository The repository to lookup
36
- * @param ref The symbolic ref to resolve
37
- *
38
- * @returns the canonical ref, if found, or `null` if `ref` cannot be found or
39
- * is not a symbolic ref
40
- */
41
- export async function getSymbolicRef(
42
- repository: Repository,
43
- ref: string
44
- ): Promise<string | null> {
45
- const result = await git(
46
- ['symbolic-ref', '-q', ref],
47
- repository.path,
48
- 'getSymbolicRef',
49
- {
50
- // - 1 is the exit code that Git throws in quiet mode when the ref is not a
51
- // symbolic ref
52
- // - 128 is the generic error code that Git returns when it can't find
53
- // something
54
- successExitCodes: new Set([0, 1, 128]),
55
- }
56
- )
57
-
58
- if (result.exitCode === 1 || result.exitCode === 128) {
59
- return null
60
- }
61
-
62
- return result.stdout.trim()
63
- }
package/src/git/remote.ts DELETED
@@ -1,143 +0,0 @@
1
- import { git } from './core'
2
- import { GitError } from './exec'
3
-
4
- import { Repository } from '../models/repository'
5
- import { IRemote } from '../models/remote'
6
- import { envForRemoteOperation } from './environment'
7
- import { getSymbolicRef } from './refs'
8
- import memoizeOne from 'memoize-one'
9
-
10
- /**
11
- * List the remotes, sorted alphabetically by `name`, for a repository.
12
- */
13
- export async function getRemotes(
14
- repository: Repository
15
- ): Promise<ReadonlyArray<IRemote>> {
16
- return memoizedGetRemotesFromPath(repository.path)
17
- }
18
-
19
- /**
20
- * List the remotes, sorted alphabetically by `name`, for a repository path.
21
- */
22
- export async function getRemotesFromPath(
23
- path: string
24
- ): Promise<ReadonlyArray<IRemote>> {
25
- const result = await git(['remote', '-v'], path, 'getRemotes', {
26
- expectedErrors: new Set([GitError.NotAGitRepository]),
27
- })
28
-
29
- if (result.gitError === GitError.NotAGitRepository) {
30
- return []
31
- }
32
-
33
- return [...result.stdout.matchAll(/^(.+)\t(.+)\s\(fetch\)/gm)].map(
34
- ([, name, url]) => ({ name, url })
35
- )
36
- }
37
- export const memoizedGetRemotesFromPath = memoizeOne(getRemotesFromPath)
38
-
39
- /** Add a new remote with the given URL. */
40
- export async function addRemote(
41
- repository: Repository,
42
- name: string,
43
- url: string
44
- ): Promise<IRemote> {
45
- await git(['remote', 'add', name, url], repository.path, 'addRemote')
46
-
47
- return { url, name }
48
- }
49
-
50
- /** Removes an existing remote, or silently errors if it doesn't exist */
51
- export async function removeRemote(
52
- repository: Repository,
53
- name: string
54
- ): Promise<void> {
55
- const options = {
56
- successExitCodes: new Set([0, 2, 128]),
57
- }
58
-
59
- await git(
60
- ['remote', 'remove', name],
61
- repository.path,
62
- 'removeRemote',
63
- options
64
- )
65
- }
66
-
67
- /** Changes the URL for the remote that matches the given name */
68
- export async function setRemoteURL(
69
- repository: Repository,
70
- name: string,
71
- url: string
72
- ): Promise<true> {
73
- await git(['remote', 'set-url', name, url], repository.path, 'setRemoteURL')
74
- return true
75
- }
76
-
77
- /**
78
- * Get the URL for the remote that matches the given name.
79
- *
80
- * Returns null if the remote could not be found
81
- */
82
- export async function getRemoteURL(
83
- repository: Repository,
84
- name: string
85
- ): Promise<string | null> {
86
- const result = await git(
87
- ['remote', 'get-url', name],
88
- repository.path,
89
- 'getRemoteURL',
90
- { successExitCodes: new Set([0, 2, 128]) }
91
- )
92
-
93
- if (result.exitCode !== 0) {
94
- return null
95
- }
96
-
97
- return result.stdout
98
- }
99
-
100
- /**
101
- * Update the HEAD ref of the remote, which is the default branch.
102
- *
103
- * @param isBackgroundTask Whether the fetch is being performed as a
104
- * background task as opposed to being user initiated
105
- */
106
- export async function updateRemoteHEAD(
107
- repository: Repository,
108
- remote: IRemote,
109
- isBackgroundTask: boolean
110
- ): Promise<void> {
111
- const options = {
112
- successExitCodes: new Set([0, 1, 128]),
113
- env: await envForRemoteOperation(remote.url),
114
- isBackgroundTask,
115
- }
116
-
117
- await git(
118
- ['remote', 'set-head', '-a', remote.name],
119
- repository.path,
120
- 'updateRemoteHEAD',
121
- options
122
- )
123
- }
124
-
125
- export async function getRemoteHEAD(
126
- repository: Repository,
127
- remote: string
128
- ): Promise<string | null> {
129
- const remoteNamespace = `refs/remotes/${remote}/`
130
- const match = await getSymbolicRef(repository, `${remoteNamespace}HEAD`)
131
- if (
132
- match != null &&
133
- match.length > remoteNamespace.length &&
134
- match.startsWith(remoteNamespace)
135
- ) {
136
- // strip out everything related to the remote because this
137
- // is likely to be a tracked branch locally
138
- // e.g. `main`, `develop`, etc
139
- return match.substring(remoteNamespace.length)
140
- }
141
-
142
- return null
143
- }
@@ -1,153 +0,0 @@
1
- import { appendFile, rm } from 'fs/promises'
2
- import { getCommits, revRange } from '.'
3
- import { Commit } from '../models/commit'
4
- import { MultiCommitOperationKind } from '../models/multi-commit-operation'
5
- import { IMultiCommitOperationProgress } from '../models/progress'
6
- import { Repository } from '../models/repository'
7
- import { getTempFilePath } from '../lib/file-system'
8
- import { rebaseInteractive, RebaseResult } from './rebase'
9
-
10
- /**
11
- * Reorders provided commits by calling interactive rebase.
12
- *
13
- * Goal is to replay the commits in order from oldest to newest to reduce
14
- * conflicts with toMove commits placed in the log at the location of the
15
- * prior to the base commit.
16
- *
17
- * Example: A user's history from oldest to newest is A, B, C, D, E and they
18
- * want to move A and E (toMove) before C. Our goal: B, A, E, C, D. Thus,
19
- * maintaining that A came before E, placed in history before the the base
20
- * commit C.
21
- *
22
- * @param toMove - commits to move
23
- * @param beforeCommit - commits will be moved right before this commit. If it's
24
- * null, the commits will be moved to the end of the history.
25
- * @param lastRetainedCommitRef - sha of commit before commits to reorder or null
26
- * if base commit for reordering is the root (first in history) of the branch
27
- */
28
- export async function reorder(
29
- repository: Repository,
30
- toMove: ReadonlyArray<Commit>,
31
- beforeCommit: Commit | null,
32
- lastRetainedCommitRef: string | null,
33
- progressCallback?: (progress: IMultiCommitOperationProgress) => void
34
- ): Promise<RebaseResult> {
35
- let todoPath
36
- let result: RebaseResult
37
-
38
- try {
39
- if (toMove.length === 0) {
40
- throw new Error('[reorder] No commits provided to reorder.')
41
- }
42
-
43
- const toMoveShas = new Set(toMove.map(c => c.sha))
44
-
45
- const commits = await getCommits(
46
- repository,
47
- lastRetainedCommitRef === null
48
- ? undefined
49
- : revRange(lastRetainedCommitRef, 'HEAD')
50
- )
51
-
52
- if (commits.length === 0) {
53
- throw new Error(
54
- '[reorder] Could not find commits in log for last retained commit ref.'
55
- )
56
- }
57
-
58
- todoPath = await getTempFilePath('reorderTodo')
59
- let foundBaseCommitInLog = false
60
- const toReplayBeforeBaseCommit = []
61
- const toReplayAfterReorder = []
62
-
63
- // Traversed in reverse so we do oldest to newest (replay commits)
64
- for (let i = commits.length - 1; i >= 0; i--) {
65
- const commit = commits[i]
66
- if (toMoveShas.has(commit.sha)) {
67
- // If it is toMove commit and we have found the base commit, we
68
- // can go ahead and insert them (as we will hold any picks till after)
69
- if (foundBaseCommitInLog) {
70
- await appendFile(todoPath, `pick ${commit.sha} ${commit.summary}\n`)
71
- } else {
72
- // However, if we have not found the base commit yet we want to
73
- // keep track of them in the order of the log. Thus, we use a new
74
- // `toReplayBeforeBaseCommit` array and not trust that what was sent is in the
75
- // order of the log.
76
- toReplayBeforeBaseCommit.push(commit)
77
- }
78
-
79
- continue
80
- }
81
-
82
- // If it's the base commit, replay to the toMove in the order they
83
- // appeared on the log to reduce potential conflicts.
84
- if (beforeCommit !== null && commit.sha === beforeCommit.sha) {
85
- foundBaseCommitInLog = true
86
- toReplayAfterReorder.push(commit)
87
-
88
- for (let j = 0; j < toReplayBeforeBaseCommit.length; j++) {
89
- await appendFile(
90
- todoPath,
91
- `pick ${toReplayBeforeBaseCommit[j].sha} ${toReplayBeforeBaseCommit[j].summary}\n`
92
- )
93
- }
94
-
95
- continue
96
- }
97
-
98
- // We can't just replay a pick in case there is a commit from the toMove
99
- // commits further up in history that need to be moved. Thus, we will keep
100
- // track of these and replay after traversing the remainder of the log.
101
- if (foundBaseCommitInLog) {
102
- toReplayAfterReorder.push(commit)
103
- continue
104
- }
105
-
106
- // If it is not one toMove nor the base commit and have not found the base
107
- // commit, we simply record it is an unchanged pick (before the base commit)
108
- await appendFile(todoPath, `pick ${commit.sha} ${commit.summary}\n`)
109
- }
110
-
111
- if (toReplayAfterReorder.length > 0) {
112
- for (let i = 0; i < toReplayAfterReorder.length; i++) {
113
- await appendFile(
114
- todoPath,
115
- `pick ${toReplayAfterReorder[i].sha} ${toReplayAfterReorder[i].summary}\n`
116
- )
117
- }
118
- }
119
-
120
- if (beforeCommit === null) {
121
- for (let i = 0; i < toReplayBeforeBaseCommit.length; i++) {
122
- await appendFile(
123
- todoPath,
124
- `pick ${toReplayBeforeBaseCommit[i].sha} ${toReplayBeforeBaseCommit[i].summary}\n`
125
- )
126
- }
127
- } else if (!foundBaseCommitInLog) {
128
- throw new Error(
129
- '[reorder] The base commit onto was not in the log. Continuing would result in dropping the commits in the toMove array.'
130
- )
131
- }
132
-
133
- result = await rebaseInteractive(
134
- repository,
135
- todoPath,
136
- lastRetainedCommitRef,
137
- {
138
- action: MultiCommitOperationKind.Reorder,
139
- progressCallback,
140
- commits,
141
- }
142
- )
143
- } catch (e) {
144
- console.error(e)
145
- return RebaseResult.Error
146
- } finally {
147
- if (todoPath !== undefined) {
148
- await rm(todoPath, { recursive: true, force: true })
149
- }
150
- }
151
-
152
- return result
153
- }
package/src/git/reset.ts DELETED
@@ -1,101 +0,0 @@
1
- import { git } from './core'
2
- import { Repository } from '../models/repository'
3
- import { assertNever } from '../lib/fatal-error'
4
-
5
- /** The reset modes which are supported. */
6
- export const enum GitResetMode {
7
- /**
8
- * Resets the index and working tree. Any changes to tracked files in the
9
- * working tree since <commit> are discarded.
10
- */
11
- Hard = 0,
12
- /**
13
- * Does not touch the index file or the working tree at all (but resets the
14
- * head to <commit>, just like all modes do). This leaves all your changed
15
- * files "Changes to be committed", as git status would put it.
16
- */
17
- Soft,
18
-
19
- /**
20
- * Resets the index but not the working tree (i.e., the changed files are
21
- * preserved but not marked for commit) and reports what has not been updated.
22
- * This is the default action for git reset.
23
- */
24
- Mixed,
25
- }
26
-
27
- function resetModeToArgs(mode: GitResetMode, ref: string): string[] {
28
- switch (mode) {
29
- case GitResetMode.Hard:
30
- return ['reset', '--hard', ref]
31
- case GitResetMode.Mixed:
32
- return ['reset', ref]
33
- case GitResetMode.Soft:
34
- return ['reset', '--soft', ref]
35
- default:
36
- return assertNever(mode, `Unknown reset mode: ${mode}`)
37
- }
38
- }
39
-
40
- /** Reset with the mode to the ref. */
41
- export async function reset(
42
- repository: Repository,
43
- mode: GitResetMode,
44
- ref: string
45
- ): Promise<true> {
46
- const args = resetModeToArgs(mode, ref)
47
- await git(args, repository.path, 'reset')
48
- return true
49
- }
50
-
51
- /**
52
- * Updates the index with information from a particular tree for a given
53
- * set of paths.
54
- *
55
- * @param repository The repository in which to reset the index.
56
- *
57
- * @param mode Which mode to use when resetting, see the GitResetMode
58
- * enum for more information.
59
- *
60
- * @param ref A string which resolves to a tree, for example 'HEAD' or a
61
- * commit sha.
62
- *
63
- * @param paths The paths that should be updated in the index with information
64
- * from the given tree
65
- */
66
- export async function resetPaths(
67
- repository: Repository,
68
- mode: GitResetMode,
69
- ref: string,
70
- paths: ReadonlyArray<string>
71
- ): Promise<void> {
72
- if (!paths.length) {
73
- return
74
- }
75
-
76
- const baseArgs = resetModeToArgs(mode, ref)
77
-
78
- if (process.platform === 'win32' && mode === GitResetMode.Mixed) {
79
- // Git for Windows has experimental support for reading paths to reset
80
- // from standard input. This is helpful in situations where your file
81
- // paths are greater than 32KB in length, because of shell limitations.
82
- //
83
- // This hasn't made it to Git core, so we fallback to the default behaviour
84
- // as macOS and Linux don't have this same shell limitation. See
85
- // https://github.com/desktop/desktop/issues/2833#issuecomment-331352952
86
- // for more context.
87
- const args = [...baseArgs, '--stdin', '-z', '--']
88
- await git(args, repository.path, 'resetPaths', {
89
- stdin: paths.join('\0'),
90
- })
91
- } else {
92
- const args = [...baseArgs, '--', ...paths]
93
- await git(args, repository.path, 'resetPaths')
94
- }
95
- }
96
-
97
- /** Unstage all paths. */
98
- export async function unstageAll(repository: Repository): Promise<true> {
99
- await git(['reset', '--', '.'], repository.path, 'unstageAll')
100
- return true
101
- }