gitx.do 0.0.1 → 0.0.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 (237) hide show
  1. package/dist/cli/commands/blame.d.ts +259 -0
  2. package/dist/cli/commands/blame.d.ts.map +1 -0
  3. package/dist/cli/commands/blame.js +609 -0
  4. package/dist/cli/commands/blame.js.map +1 -0
  5. package/dist/cli/commands/branch.d.ts +249 -0
  6. package/dist/cli/commands/branch.d.ts.map +1 -0
  7. package/dist/cli/commands/branch.js +693 -0
  8. package/dist/cli/commands/branch.js.map +1 -0
  9. package/dist/cli/commands/commit.d.ts +182 -0
  10. package/dist/cli/commands/commit.d.ts.map +1 -0
  11. package/dist/cli/commands/commit.js +437 -0
  12. package/dist/cli/commands/commit.js.map +1 -0
  13. package/dist/cli/commands/diff.d.ts +464 -0
  14. package/dist/cli/commands/diff.d.ts.map +1 -0
  15. package/dist/cli/commands/diff.js +958 -0
  16. package/dist/cli/commands/diff.js.map +1 -0
  17. package/dist/cli/commands/log.d.ts +239 -0
  18. package/dist/cli/commands/log.d.ts.map +1 -0
  19. package/dist/cli/commands/log.js +535 -0
  20. package/dist/cli/commands/log.js.map +1 -0
  21. package/dist/cli/commands/review.d.ts +457 -0
  22. package/dist/cli/commands/review.d.ts.map +1 -0
  23. package/dist/cli/commands/review.js +533 -0
  24. package/dist/cli/commands/review.js.map +1 -0
  25. package/dist/cli/commands/status.d.ts +269 -0
  26. package/dist/cli/commands/status.d.ts.map +1 -0
  27. package/dist/cli/commands/status.js +493 -0
  28. package/dist/cli/commands/status.js.map +1 -0
  29. package/dist/cli/commands/web.d.ts +199 -0
  30. package/dist/cli/commands/web.d.ts.map +1 -0
  31. package/dist/cli/commands/web.js +696 -0
  32. package/dist/cli/commands/web.js.map +1 -0
  33. package/dist/cli/fs-adapter.d.ts +656 -0
  34. package/dist/cli/fs-adapter.d.ts.map +1 -0
  35. package/dist/cli/fs-adapter.js +1179 -0
  36. package/dist/cli/fs-adapter.js.map +1 -0
  37. package/dist/cli/index.d.ts +387 -0
  38. package/dist/cli/index.d.ts.map +1 -0
  39. package/dist/cli/index.js +523 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/cli/ui/components/DiffView.d.ts +7 -0
  42. package/dist/cli/ui/components/DiffView.d.ts.map +1 -0
  43. package/dist/cli/ui/components/DiffView.js +11 -0
  44. package/dist/cli/ui/components/DiffView.js.map +1 -0
  45. package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -0
  46. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -0
  47. package/dist/cli/ui/components/ErrorDisplay.js +11 -0
  48. package/dist/cli/ui/components/ErrorDisplay.js.map +1 -0
  49. package/dist/cli/ui/components/FuzzySearch.d.ts +9 -0
  50. package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -0
  51. package/dist/cli/ui/components/FuzzySearch.js +12 -0
  52. package/dist/cli/ui/components/FuzzySearch.js.map +1 -0
  53. package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -0
  54. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -0
  55. package/dist/cli/ui/components/LoadingSpinner.js +10 -0
  56. package/dist/cli/ui/components/LoadingSpinner.js.map +1 -0
  57. package/dist/cli/ui/components/NavigationList.d.ts +9 -0
  58. package/dist/cli/ui/components/NavigationList.d.ts.map +1 -0
  59. package/dist/cli/ui/components/NavigationList.js +11 -0
  60. package/dist/cli/ui/components/NavigationList.js.map +1 -0
  61. package/dist/cli/ui/components/ScrollableContent.d.ts +8 -0
  62. package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -0
  63. package/dist/cli/ui/components/ScrollableContent.js +11 -0
  64. package/dist/cli/ui/components/ScrollableContent.js.map +1 -0
  65. package/dist/cli/ui/components/index.d.ts +7 -0
  66. package/dist/cli/ui/components/index.d.ts.map +1 -0
  67. package/dist/cli/ui/components/index.js +9 -0
  68. package/dist/cli/ui/components/index.js.map +1 -0
  69. package/dist/cli/ui/terminal-ui.d.ts +52 -0
  70. package/dist/cli/ui/terminal-ui.d.ts.map +1 -0
  71. package/dist/cli/ui/terminal-ui.js +121 -0
  72. package/dist/cli/ui/terminal-ui.js.map +1 -0
  73. package/dist/durable-object/object-store.d.ts +401 -23
  74. package/dist/durable-object/object-store.d.ts.map +1 -1
  75. package/dist/durable-object/object-store.js +414 -25
  76. package/dist/durable-object/object-store.js.map +1 -1
  77. package/dist/durable-object/schema.d.ts +188 -0
  78. package/dist/durable-object/schema.d.ts.map +1 -1
  79. package/dist/durable-object/schema.js +160 -0
  80. package/dist/durable-object/schema.js.map +1 -1
  81. package/dist/durable-object/wal.d.ts +336 -31
  82. package/dist/durable-object/wal.d.ts.map +1 -1
  83. package/dist/durable-object/wal.js +272 -27
  84. package/dist/durable-object/wal.js.map +1 -1
  85. package/dist/index.d.ts +379 -3
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +379 -7
  88. package/dist/index.js.map +1 -1
  89. package/dist/mcp/adapter.d.ts +579 -38
  90. package/dist/mcp/adapter.d.ts.map +1 -1
  91. package/dist/mcp/adapter.js +426 -33
  92. package/dist/mcp/adapter.js.map +1 -1
  93. package/dist/mcp/sandbox.d.ts +532 -29
  94. package/dist/mcp/sandbox.d.ts.map +1 -1
  95. package/dist/mcp/sandbox.js +389 -22
  96. package/dist/mcp/sandbox.js.map +1 -1
  97. package/dist/mcp/sdk-adapter.d.ts +478 -56
  98. package/dist/mcp/sdk-adapter.d.ts.map +1 -1
  99. package/dist/mcp/sdk-adapter.js +346 -44
  100. package/dist/mcp/sdk-adapter.js.map +1 -1
  101. package/dist/mcp/tools.d.ts +445 -30
  102. package/dist/mcp/tools.d.ts.map +1 -1
  103. package/dist/mcp/tools.js +363 -33
  104. package/dist/mcp/tools.js.map +1 -1
  105. package/dist/ops/blame.d.ts +424 -21
  106. package/dist/ops/blame.d.ts.map +1 -1
  107. package/dist/ops/blame.js +303 -20
  108. package/dist/ops/blame.js.map +1 -1
  109. package/dist/ops/branch.d.ts +583 -32
  110. package/dist/ops/branch.d.ts.map +1 -1
  111. package/dist/ops/branch.js +365 -23
  112. package/dist/ops/branch.js.map +1 -1
  113. package/dist/ops/commit-traversal.d.ts +164 -24
  114. package/dist/ops/commit-traversal.d.ts.map +1 -1
  115. package/dist/ops/commit-traversal.js +68 -2
  116. package/dist/ops/commit-traversal.js.map +1 -1
  117. package/dist/ops/commit.d.ts +387 -53
  118. package/dist/ops/commit.d.ts.map +1 -1
  119. package/dist/ops/commit.js +249 -29
  120. package/dist/ops/commit.js.map +1 -1
  121. package/dist/ops/merge-base.d.ts +195 -21
  122. package/dist/ops/merge-base.d.ts.map +1 -1
  123. package/dist/ops/merge-base.js +122 -12
  124. package/dist/ops/merge-base.js.map +1 -1
  125. package/dist/ops/merge.d.ts +600 -130
  126. package/dist/ops/merge.d.ts.map +1 -1
  127. package/dist/ops/merge.js +408 -60
  128. package/dist/ops/merge.js.map +1 -1
  129. package/dist/ops/tag.d.ts +67 -2
  130. package/dist/ops/tag.d.ts.map +1 -1
  131. package/dist/ops/tag.js +42 -1
  132. package/dist/ops/tag.js.map +1 -1
  133. package/dist/ops/tree-builder.d.ts +102 -6
  134. package/dist/ops/tree-builder.d.ts.map +1 -1
  135. package/dist/ops/tree-builder.js +30 -5
  136. package/dist/ops/tree-builder.js.map +1 -1
  137. package/dist/ops/tree-diff.d.ts +50 -2
  138. package/dist/ops/tree-diff.d.ts.map +1 -1
  139. package/dist/ops/tree-diff.js +50 -2
  140. package/dist/ops/tree-diff.js.map +1 -1
  141. package/dist/pack/delta.d.ts +211 -39
  142. package/dist/pack/delta.d.ts.map +1 -1
  143. package/dist/pack/delta.js +232 -46
  144. package/dist/pack/delta.js.map +1 -1
  145. package/dist/pack/format.d.ts +390 -28
  146. package/dist/pack/format.d.ts.map +1 -1
  147. package/dist/pack/format.js +344 -33
  148. package/dist/pack/format.js.map +1 -1
  149. package/dist/pack/full-generation.d.ts +313 -28
  150. package/dist/pack/full-generation.d.ts.map +1 -1
  151. package/dist/pack/full-generation.js +238 -19
  152. package/dist/pack/full-generation.js.map +1 -1
  153. package/dist/pack/generation.d.ts +346 -23
  154. package/dist/pack/generation.d.ts.map +1 -1
  155. package/dist/pack/generation.js +269 -21
  156. package/dist/pack/generation.js.map +1 -1
  157. package/dist/pack/index.d.ts +407 -86
  158. package/dist/pack/index.d.ts.map +1 -1
  159. package/dist/pack/index.js +351 -70
  160. package/dist/pack/index.js.map +1 -1
  161. package/dist/refs/branch.d.ts +517 -71
  162. package/dist/refs/branch.d.ts.map +1 -1
  163. package/dist/refs/branch.js +410 -26
  164. package/dist/refs/branch.js.map +1 -1
  165. package/dist/refs/storage.d.ts +610 -57
  166. package/dist/refs/storage.d.ts.map +1 -1
  167. package/dist/refs/storage.js +481 -29
  168. package/dist/refs/storage.js.map +1 -1
  169. package/dist/refs/tag.d.ts +677 -67
  170. package/dist/refs/tag.d.ts.map +1 -1
  171. package/dist/refs/tag.js +497 -30
  172. package/dist/refs/tag.js.map +1 -1
  173. package/dist/storage/lru-cache.d.ts +556 -53
  174. package/dist/storage/lru-cache.d.ts.map +1 -1
  175. package/dist/storage/lru-cache.js +439 -36
  176. package/dist/storage/lru-cache.js.map +1 -1
  177. package/dist/storage/object-index.d.ts +483 -38
  178. package/dist/storage/object-index.d.ts.map +1 -1
  179. package/dist/storage/object-index.js +388 -22
  180. package/dist/storage/object-index.js.map +1 -1
  181. package/dist/storage/r2-pack.d.ts +957 -94
  182. package/dist/storage/r2-pack.d.ts.map +1 -1
  183. package/dist/storage/r2-pack.js +756 -48
  184. package/dist/storage/r2-pack.js.map +1 -1
  185. package/dist/tiered/cdc-pipeline.d.ts +1610 -38
  186. package/dist/tiered/cdc-pipeline.d.ts.map +1 -1
  187. package/dist/tiered/cdc-pipeline.js +1131 -22
  188. package/dist/tiered/cdc-pipeline.js.map +1 -1
  189. package/dist/tiered/migration.d.ts +903 -41
  190. package/dist/tiered/migration.d.ts.map +1 -1
  191. package/dist/tiered/migration.js +646 -24
  192. package/dist/tiered/migration.js.map +1 -1
  193. package/dist/tiered/parquet-writer.d.ts +944 -47
  194. package/dist/tiered/parquet-writer.d.ts.map +1 -1
  195. package/dist/tiered/parquet-writer.js +667 -39
  196. package/dist/tiered/parquet-writer.js.map +1 -1
  197. package/dist/tiered/read-path.d.ts +728 -34
  198. package/dist/tiered/read-path.d.ts.map +1 -1
  199. package/dist/tiered/read-path.js +310 -27
  200. package/dist/tiered/read-path.js.map +1 -1
  201. package/dist/types/objects.d.ts +457 -0
  202. package/dist/types/objects.d.ts.map +1 -1
  203. package/dist/types/objects.js +305 -4
  204. package/dist/types/objects.js.map +1 -1
  205. package/dist/types/storage.d.ts +407 -35
  206. package/dist/types/storage.d.ts.map +1 -1
  207. package/dist/types/storage.js +27 -3
  208. package/dist/types/storage.js.map +1 -1
  209. package/dist/utils/hash.d.ts +133 -12
  210. package/dist/utils/hash.d.ts.map +1 -1
  211. package/dist/utils/hash.js +133 -12
  212. package/dist/utils/hash.js.map +1 -1
  213. package/dist/utils/sha1.d.ts +102 -9
  214. package/dist/utils/sha1.d.ts.map +1 -1
  215. package/dist/utils/sha1.js +114 -11
  216. package/dist/utils/sha1.js.map +1 -1
  217. package/dist/wire/capabilities.d.ts +896 -88
  218. package/dist/wire/capabilities.d.ts.map +1 -1
  219. package/dist/wire/capabilities.js +566 -62
  220. package/dist/wire/capabilities.js.map +1 -1
  221. package/dist/wire/pkt-line.d.ts +293 -15
  222. package/dist/wire/pkt-line.d.ts.map +1 -1
  223. package/dist/wire/pkt-line.js +251 -15
  224. package/dist/wire/pkt-line.js.map +1 -1
  225. package/dist/wire/receive-pack.d.ts +814 -64
  226. package/dist/wire/receive-pack.d.ts.map +1 -1
  227. package/dist/wire/receive-pack.js +542 -41
  228. package/dist/wire/receive-pack.js.map +1 -1
  229. package/dist/wire/smart-http.d.ts +575 -97
  230. package/dist/wire/smart-http.d.ts.map +1 -1
  231. package/dist/wire/smart-http.js +337 -46
  232. package/dist/wire/smart-http.js.map +1 -1
  233. package/dist/wire/upload-pack.d.ts +492 -98
  234. package/dist/wire/upload-pack.d.ts.map +1 -1
  235. package/dist/wire/upload-pack.js +347 -59
  236. package/dist/wire/upload-pack.js.map +1 -1
  237. package/package.json +10 -2
@@ -1,62 +1,179 @@
1
1
  /**
2
- * Merge Base Finding Operations
2
+ * @fileoverview Merge Base Finding Operations
3
3
  *
4
4
  * Provides functionality for finding merge bases between commits,
5
5
  * which is essential for merge operations, rebasing, and understanding
6
6
  * branch relationships in the commit graph.
7
7
  *
8
+ * ## What is a Merge Base?
9
+ *
8
10
  * A merge base is the best common ancestor(s) of two or more commits.
9
11
  * The "best" common ancestor is one that is not an ancestor of any
10
12
  * other common ancestor (i.e., a maximal common ancestor).
13
+ *
14
+ * ## Features
15
+ *
16
+ * - Find merge base(s) between two commits
17
+ * - Find merge bases for multiple commits (octopus merge)
18
+ * - Fork point detection
19
+ * - Ancestor relationship checking
20
+ * - Independent commit detection
21
+ * - Recursive merge base computation
22
+ *
23
+ * ## Usage Example
24
+ *
25
+ * ```typescript
26
+ * import { findMergeBase, isAncestor } from './ops/merge-base'
27
+ *
28
+ * // Find the merge base between two branches
29
+ * const result = await findMergeBase(provider, [branchA, branchB])
30
+ * if (result.hasCommonHistory) {
31
+ * console.log('Merge base:', result.bases[0])
32
+ * }
33
+ *
34
+ * // Check if one commit is an ancestor of another
35
+ * const isOld = await isAncestor(provider, oldCommit, newCommit)
36
+ * ```
37
+ *
38
+ * @module ops/merge-base
11
39
  */
12
40
  import type { BasicCommitProvider as CommitProvider } from '../types/storage';
41
+ /**
42
+ * CommitProvider interface for merge base operations.
43
+ * Re-exported from storage types for convenience.
44
+ */
13
45
  export type { CommitProvider };
14
46
  /**
15
- * Result of a merge base operation
47
+ * Result of a merge base operation.
48
+ *
49
+ * Contains the merge base SHA(s) and metadata about the result.
50
+ *
51
+ * @interface MergeBaseResult
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const result = await findMergeBase(provider, [commitA, commitB])
56
+ *
57
+ * if (result.hasCommonHistory) {
58
+ * if (result.isUnique) {
59
+ * console.log('Single merge base:', result.bases[0])
60
+ * } else {
61
+ * console.log('Multiple merge bases (criss-cross):', result.bases)
62
+ * }
63
+ * } else {
64
+ * console.log('No common history (unrelated branches)')
65
+ * }
66
+ * ```
16
67
  */
17
68
  export interface MergeBaseResult {
18
- /** The merge base commit SHA(s) */
69
+ /**
70
+ * The merge base commit SHA(s).
71
+ * Empty if no common history exists.
72
+ */
19
73
  bases: string[];
20
- /** Whether a unique merge base was found */
74
+ /**
75
+ * Whether a unique merge base was found.
76
+ * False if multiple merge bases exist (criss-cross merge situation).
77
+ */
21
78
  isUnique: boolean;
22
- /** Whether the commits share any common history */
79
+ /**
80
+ * Whether the commits share any common history.
81
+ * False for unrelated branches (e.g., different repos merged together).
82
+ */
23
83
  hasCommonHistory: boolean;
24
84
  /** The number of merge bases found */
25
85
  count: number;
26
86
  }
27
87
  /**
28
- * Options for merge base finding
88
+ * Options for merge base finding.
89
+ *
90
+ * @interface MergeBaseOptions
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * // Find all merge bases (for criss-cross detection)
95
+ * const result = await findMergeBase(provider, [a, b], { all: true })
96
+ *
97
+ * // Find independent commits from a list
98
+ * const independent = await findMergeBase(provider, commits, { independent: true })
99
+ * ```
29
100
  */
30
101
  export interface MergeBaseOptions {
31
- /** Return all merge bases instead of just one */
102
+ /**
103
+ * Return all merge bases instead of just one.
104
+ * Useful for detecting criss-cross merge situations.
105
+ * @default false
106
+ */
32
107
  all?: boolean;
33
- /** Use octopus merge strategy (for >2 commits) */
108
+ /**
109
+ * Use octopus merge strategy (for >2 commits).
110
+ * Finds a merge base suitable for merging multiple branches.
111
+ * @default false (auto-enabled when >2 commits provided)
112
+ */
34
113
  octopus?: boolean;
35
- /** Return independent refs (refs that cannot be reached from each other) */
114
+ /**
115
+ * Return independent refs (refs that cannot be reached from each other).
116
+ * Filters the input to only commits that are not ancestors of any other.
117
+ * @default false
118
+ */
36
119
  independent?: boolean;
37
- /** Include fork point calculation */
120
+ /**
121
+ * Include fork point calculation.
122
+ * Uses reflog information when available for more accurate detection.
123
+ * @default false
124
+ */
38
125
  forkPoint?: boolean;
39
126
  }
40
127
  /**
41
- * Result of fork point detection
128
+ * Result of fork point detection.
129
+ *
130
+ * A fork point is where a branch diverged from another branch,
131
+ * taking into account any rebases that may have occurred.
132
+ *
133
+ * @interface ForkPointResult
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const result = await findForkPoint(provider, 'feature', 'main')
138
+ * if (result.found) {
139
+ * console.log(`Feature forked from main at ${result.forkPoint}`)
140
+ * console.log(`${result.commitsSinceFork} commits since then`)
141
+ * }
142
+ * ```
42
143
  */
43
144
  export interface ForkPointResult {
44
- /** The fork point commit SHA, or null if not found */
145
+ /**
146
+ * The fork point commit SHA.
147
+ * Null if no fork point could be determined.
148
+ */
45
149
  forkPoint: string | null;
46
150
  /** The branch ref that was analyzed */
47
151
  ref: string;
48
152
  /** Whether the fork point could be determined */
49
153
  found: boolean;
50
- /** Commits on the branch since the fork point */
154
+ /** Number of commits on the branch since the fork point */
51
155
  commitsSinceFork: number;
52
156
  }
53
157
  /**
54
- * Result of ancestor check
158
+ * Result of an ancestor check operation.
159
+ *
160
+ * @interface AncestorCheckResult
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * const result = await checkAncestor(provider, oldCommit, newCommit)
165
+ * if (result.isAncestor) {
166
+ * console.log(`${oldCommit} is ${result.distance} commits behind ${newCommit}`)
167
+ * }
168
+ * ```
55
169
  */
56
170
  export interface AncestorCheckResult {
57
171
  /** Whether the first commit is an ancestor of the second */
58
172
  isAncestor: boolean;
59
- /** The distance (number of commits) if ancestor, -1 otherwise */
173
+ /**
174
+ * The distance (number of commits) if ancestor, -1 otherwise.
175
+ * A distance of 0 means the commits are the same.
176
+ */
60
177
  distance: number;
61
178
  }
62
179
  /**
@@ -150,12 +267,34 @@ export declare function findForkPoint(provider: CommitProvider, ref: string, bas
150
267
  */
151
268
  export declare function isAncestor(provider: CommitProvider, potentialAncestor: string, commit: string): Promise<boolean>;
152
269
  /**
153
- * Check ancestor relationship and return additional information
270
+ * Checks ancestor relationship and returns additional information.
271
+ *
272
+ * Unlike `isAncestor`, this function also computes the distance
273
+ * (number of commits) between the two commits if they are related.
274
+ *
275
+ * @description
276
+ * Uses BFS to find the shortest path from `commit` to `potentialAncestor`,
277
+ * which gives the minimum distance between them.
154
278
  *
155
279
  * @param provider - The commit provider for fetching commits
156
280
  * @param potentialAncestor - The commit to check as potential ancestor
157
281
  * @param commit - The commit to start walking from
158
- * @returns Detailed ancestor check result
282
+ * @returns Detailed ancestor check result with distance information
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * const result = await checkAncestor(provider, 'abc123', 'def456')
287
+ *
288
+ * if (result.isAncestor) {
289
+ * if (result.distance === 0) {
290
+ * console.log('Same commit')
291
+ * } else {
292
+ * console.log(`abc123 is ${result.distance} commits behind def456`)
293
+ * }
294
+ * } else {
295
+ * console.log('Not an ancestor')
296
+ * }
297
+ * ```
159
298
  */
160
299
  export declare function checkAncestor(provider: CommitProvider, potentialAncestor: string, commit: string): Promise<AncestorCheckResult>;
161
300
  /**
@@ -201,23 +340,58 @@ export declare function findOctopusMergeBase(provider: CommitProvider, commits:
201
340
  */
202
341
  export declare function computeThreeWayMergeBase(provider: CommitProvider, ours: string, theirs: string): Promise<MergeBaseResult>;
203
342
  /**
204
- * Check if commits have any common history
343
+ * Checks if commits have any common history.
344
+ *
345
+ * For multiple commits to share common history, every pair of commits
346
+ * must have at least one common ancestor.
347
+ *
348
+ * @description
349
+ * This is useful for detecting if branches can be merged without
350
+ * creating unrelated histories.
205
351
  *
206
352
  * @param provider - The commit provider for fetching commits
207
353
  * @param commits - List of commit SHAs to check
208
354
  * @returns True if all commits share common history
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * const canMerge = await hasCommonHistory(provider, [branchA, branchB, branchC])
359
+ * if (!canMerge) {
360
+ * console.log('Warning: branches have unrelated histories')
361
+ * }
362
+ * ```
209
363
  */
210
364
  export declare function hasCommonHistory(provider: CommitProvider, commits: string[]): Promise<boolean>;
211
365
  /**
212
- * Calculate merge base for a recursive merge
366
+ * Calculates merge base for a recursive merge.
213
367
  *
214
368
  * When there are multiple merge bases (criss-cross merge situation),
215
- * this creates a virtual merge base by merging the merge bases.
369
+ * this creates a virtual merge base by recursively merging the merge bases.
370
+ *
371
+ * @description
372
+ * In a criss-cross merge situation, there can be multiple merge bases.
373
+ * The recursive strategy handles this by first finding the merge base
374
+ * of the merge bases, creating a "virtual" common ancestor.
375
+ *
376
+ * This is similar to Git's recursive merge strategy.
216
377
  *
217
378
  * @param provider - The commit provider for fetching commits
218
379
  * @param commit1 - First commit SHA
219
380
  * @param commit2 - Second commit SHA
220
- * @returns The recursive merge base
381
+ * @returns The recursive merge base result
382
+ *
383
+ * @example
384
+ * ```typescript
385
+ * // For a criss-cross merge situation:
386
+ * // A---B---C (branch1)
387
+ * // / \ / \
388
+ * // O X (merge)
389
+ * // \ / \ /
390
+ * // D---E---F (branch2)
391
+ *
392
+ * const result = await computeRecursiveMergeBase(provider, 'C', 'F')
393
+ * // Returns a single merge base by recursively merging B and E's common ancestor
394
+ * ```
221
395
  */
222
396
  export declare function computeRecursiveMergeBase(provider: CommitProvider, commit1: string, commit2: string): Promise<MergeBaseResult>;
223
397
  //# sourceMappingURL=merge-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-base.d.ts","sourceRoot":"","sources":["../../src/ops/merge-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-base.d.ts","sourceRoot":"","sources":["../../src/ops/merge-base.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,56 @@
1
1
  /**
2
- * Merge Base Finding Operations
2
+ * @fileoverview Merge Base Finding Operations
3
3
  *
4
4
  * Provides functionality for finding merge bases between commits,
5
5
  * which is essential for merge operations, rebasing, and understanding
6
6
  * branch relationships in the commit graph.
7
7
  *
8
+ * ## What is a Merge Base?
9
+ *
8
10
  * A merge base is the best common ancestor(s) of two or more commits.
9
11
  * The "best" common ancestor is one that is not an ancestor of any
10
12
  * other common ancestor (i.e., a maximal common ancestor).
13
+ *
14
+ * ## Features
15
+ *
16
+ * - Find merge base(s) between two commits
17
+ * - Find merge bases for multiple commits (octopus merge)
18
+ * - Fork point detection
19
+ * - Ancestor relationship checking
20
+ * - Independent commit detection
21
+ * - Recursive merge base computation
22
+ *
23
+ * ## Usage Example
24
+ *
25
+ * ```typescript
26
+ * import { findMergeBase, isAncestor } from './ops/merge-base'
27
+ *
28
+ * // Find the merge base between two branches
29
+ * const result = await findMergeBase(provider, [branchA, branchB])
30
+ * if (result.hasCommonHistory) {
31
+ * console.log('Merge base:', result.bases[0])
32
+ * }
33
+ *
34
+ * // Check if one commit is an ancestor of another
35
+ * const isOld = await isAncestor(provider, oldCommit, newCommit)
36
+ * ```
37
+ *
38
+ * @module ops/merge-base
11
39
  */
12
40
  // ============================================================================
13
41
  // Helper Functions
14
42
  // ============================================================================
15
43
  /**
16
- * Get all ancestors of a commit (including itself)
17
- * Uses iterative BFS to avoid stack overflow with deep histories
44
+ * Gets all ancestors of a commit (including itself).
45
+ *
46
+ * Uses iterative BFS to avoid stack overflow with deep histories.
47
+ * This is the core function used by merge base finding algorithms.
48
+ *
49
+ * @param provider - The commit provider for fetching commits
50
+ * @param sha - The starting commit SHA
51
+ * @returns Set of all ancestor SHAs including the starting commit
52
+ *
53
+ * @internal
18
54
  */
19
55
  async function getAncestors(provider, sha) {
20
56
  const visited = new Set();
@@ -38,7 +74,16 @@ async function getAncestors(provider, sha) {
38
74
  return visited;
39
75
  }
40
76
  /**
41
- * Find all common ancestors of two commits
77
+ * Finds all common ancestors of two commits.
78
+ *
79
+ * Computes the intersection of ancestor sets for both commits.
80
+ *
81
+ * @param provider - The commit provider for fetching commits
82
+ * @param sha1 - First commit SHA
83
+ * @param sha2 - Second commit SHA
84
+ * @returns Set of all common ancestor SHAs
85
+ *
86
+ * @internal
42
87
  */
43
88
  async function findCommonAncestors(provider, sha1, sha2) {
44
89
  const ancestors1 = await getAncestors(provider, sha1);
@@ -52,8 +97,16 @@ async function findCommonAncestors(provider, sha1, sha2) {
52
97
  return common;
53
98
  }
54
99
  /**
55
- * Filter common ancestors to only keep maximal ones
56
- * (those that are not ancestors of any other common ancestor)
100
+ * Filters common ancestors to only keep maximal ones.
101
+ *
102
+ * A maximal ancestor is one that is not an ancestor of any other
103
+ * common ancestor. These are the "best" merge bases.
104
+ *
105
+ * @param provider - The commit provider for fetching commits
106
+ * @param commonAncestors - Set of all common ancestors
107
+ * @returns Array of maximal ancestor SHAs (the merge bases)
108
+ *
109
+ * @internal
57
110
  */
58
111
  async function filterToMaximalAncestors(provider, commonAncestors) {
59
112
  const ancestorsList = Array.from(commonAncestors);
@@ -355,12 +408,34 @@ export async function isAncestor(provider, potentialAncestor, commit) {
355
408
  return ancestors.has(potentialAncestor);
356
409
  }
357
410
  /**
358
- * Check ancestor relationship and return additional information
411
+ * Checks ancestor relationship and returns additional information.
412
+ *
413
+ * Unlike `isAncestor`, this function also computes the distance
414
+ * (number of commits) between the two commits if they are related.
415
+ *
416
+ * @description
417
+ * Uses BFS to find the shortest path from `commit` to `potentialAncestor`,
418
+ * which gives the minimum distance between them.
359
419
  *
360
420
  * @param provider - The commit provider for fetching commits
361
421
  * @param potentialAncestor - The commit to check as potential ancestor
362
422
  * @param commit - The commit to start walking from
363
- * @returns Detailed ancestor check result
423
+ * @returns Detailed ancestor check result with distance information
424
+ *
425
+ * @example
426
+ * ```typescript
427
+ * const result = await checkAncestor(provider, 'abc123', 'def456')
428
+ *
429
+ * if (result.isAncestor) {
430
+ * if (result.distance === 0) {
431
+ * console.log('Same commit')
432
+ * } else {
433
+ * console.log(`abc123 is ${result.distance} commits behind def456`)
434
+ * }
435
+ * } else {
436
+ * console.log('Not an ancestor')
437
+ * }
438
+ * ```
364
439
  */
365
440
  export async function checkAncestor(provider, potentialAncestor, commit) {
366
441
  // Same commit
@@ -511,11 +586,26 @@ export async function computeThreeWayMergeBase(provider, ours, theirs) {
511
586
  return findMergeBase(provider, [ours, theirs]);
512
587
  }
513
588
  /**
514
- * Check if commits have any common history
589
+ * Checks if commits have any common history.
590
+ *
591
+ * For multiple commits to share common history, every pair of commits
592
+ * must have at least one common ancestor.
593
+ *
594
+ * @description
595
+ * This is useful for detecting if branches can be merged without
596
+ * creating unrelated histories.
515
597
  *
516
598
  * @param provider - The commit provider for fetching commits
517
599
  * @param commits - List of commit SHAs to check
518
600
  * @returns True if all commits share common history
601
+ *
602
+ * @example
603
+ * ```typescript
604
+ * const canMerge = await hasCommonHistory(provider, [branchA, branchB, branchC])
605
+ * if (!canMerge) {
606
+ * console.log('Warning: branches have unrelated histories')
607
+ * }
608
+ * ```
519
609
  */
520
610
  export async function hasCommonHistory(provider, commits) {
521
611
  if (commits.length <= 1) {
@@ -533,15 +623,35 @@ export async function hasCommonHistory(provider, commits) {
533
623
  return true;
534
624
  }
535
625
  /**
536
- * Calculate merge base for a recursive merge
626
+ * Calculates merge base for a recursive merge.
537
627
  *
538
628
  * When there are multiple merge bases (criss-cross merge situation),
539
- * this creates a virtual merge base by merging the merge bases.
629
+ * this creates a virtual merge base by recursively merging the merge bases.
630
+ *
631
+ * @description
632
+ * In a criss-cross merge situation, there can be multiple merge bases.
633
+ * The recursive strategy handles this by first finding the merge base
634
+ * of the merge bases, creating a "virtual" common ancestor.
635
+ *
636
+ * This is similar to Git's recursive merge strategy.
540
637
  *
541
638
  * @param provider - The commit provider for fetching commits
542
639
  * @param commit1 - First commit SHA
543
640
  * @param commit2 - Second commit SHA
544
- * @returns The recursive merge base
641
+ * @returns The recursive merge base result
642
+ *
643
+ * @example
644
+ * ```typescript
645
+ * // For a criss-cross merge situation:
646
+ * // A---B---C (branch1)
647
+ * // / \ / \
648
+ * // O X (merge)
649
+ * // \ / \ /
650
+ * // D---E---F (branch2)
651
+ *
652
+ * const result = await computeRecursiveMergeBase(provider, 'C', 'F')
653
+ * // Returns a single merge base by recursively merging B and E's common ancestor
654
+ * ```
545
655
  */
546
656
  export async function computeRecursiveMergeBase(provider, commit1, commit2) {
547
657
  const allBases = await findAllMergeBases(provider, commit1, commit2);
@@ -1 +1 @@
1
- {"version":3,"file":"merge-base.js","sourceRoot":"","sources":["../../src/ops/merge-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-base.js","sourceRoot":"","sources":["../../src/ops/merge-base.ts"],"names":[],"mappings":"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"}