@renaiss-shipflow/cli 0.27.8 → 0.27.9
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.
- package/dist/commands/pr.d.ts +216 -22
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +428 -55
- package/dist/commands/pr.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/pr.d.ts
CHANGED
|
@@ -14,22 +14,80 @@ export declare function buildShipFlowHeader(project: string, issueNumber?: numbe
|
|
|
14
14
|
/** What `pr sync --keep-conflicts` prints as the resolution recipe. NEVER
|
|
15
15
|
* `git add -A`: the UNMERGED index state is the ONLY thing that makes git
|
|
16
16
|
* refuse to commit a file still containing `<<<<<<<`, and `add -A` clears
|
|
17
|
-
* exactly that. Stage the paths you actually resolved, then re-gate.
|
|
18
|
-
|
|
17
|
+
* exactly that. Stage the paths you actually resolved, then re-gate.
|
|
18
|
+
*
|
|
19
|
+
* A FUNCTION of the base (issue #412, finding 3): the printed gate command has
|
|
20
|
+
* to carry `--base`, because the moment `git rebase --continue` commits the
|
|
21
|
+
* markers a bare `pr conflict-check` has nothing left to enumerate and reports
|
|
22
|
+
* clean. This is also what step 5 of `references/conflict-resolution.md` tells
|
|
23
|
+
* the agent to run, so the two now say the same thing.
|
|
24
|
+
*
|
|
25
|
+
* `root` anchors the printed `git add` (see `anchoredGit`) so it runs from a
|
|
26
|
+
* subdirectory too — the paths the operator substitutes come from the gate, and
|
|
27
|
+
* those are repo-root-relative. Injected, not probed, so the recipe stays pure. */
|
|
28
|
+
export declare function resolutionRecipe(baseRef: string, root?: string | null): readonly string[];
|
|
29
|
+
/** The ONE place the gate's re-check invocation is spelled (PR #434 review).
|
|
30
|
+
*
|
|
31
|
+
* `pr sync` printed a base-less `pr conflict-check` on both of its refusal
|
|
32
|
+
* paths while `resolutionRecipe` — three lines away, in the same
|
|
33
|
+
* command — threaded the base. That is the vacuous form this PR exists to stop
|
|
34
|
+
* recommending: it makes the operator re-resolve a base the caller already
|
|
35
|
+
* knows, and auto-resolution can land on a DIFFERENT ref than the one `pr sync`
|
|
36
|
+
* actually rebased onto, so the re-check would certify a tree against the wrong
|
|
37
|
+
* base. Every printed invocation now goes through here, so the base-less form
|
|
38
|
+
* can't reappear in one message while the others are correct. Where no concrete
|
|
39
|
+
* ref is in scope, pass the `origin/<base>` placeholder — never nothing. */
|
|
40
|
+
export declare function recheckCommand(baseRef: string): string;
|
|
41
|
+
/** A git command the operator can paste into ANY shell, at ANY depth in the
|
|
42
|
+
* worktree (PR #434 review, finding 2).
|
|
43
|
+
*
|
|
44
|
+
* The gate reports **repo-root-relative** paths — `gitPaths` pins its CWD to
|
|
45
|
+
* `repoToplevel()` so enumeration and grep share one frame of reference — so a
|
|
46
|
+
* printed `git add -- sub/app.ts` pasted from `sub/` resolves `sub/sub/app.ts`
|
|
47
|
+
* and dies with `could not open directory 'sub/sub/'`. `-C <root>` puts the
|
|
48
|
+
* printed command in the same frame the printed path is expressed in, which is
|
|
49
|
+
* the only way one string can be correct from every CWD. (Under the default
|
|
50
|
+
* `diff.relative=false` the un-anchored form was already wrong from a subdir;
|
|
51
|
+
* anchoring makes every printed path-bearing command runnable, not just this
|
|
52
|
+
* one.)
|
|
53
|
+
*
|
|
54
|
+
* Root unknown → print the plain form. A `git -C '' …` would be worse than no
|
|
55
|
+
* anchor, and a gate that cannot locate its own toplevel is already failing
|
|
56
|
+
* loudly for that reason. */
|
|
57
|
+
export declare function anchoredGit(root: string | null, args: string): string;
|
|
58
|
+
/** The repo root to anchor a PRINTED command to, or `null` when it can't be
|
|
59
|
+
* located. `repoToplevel()` throws by design (a gate that cannot find its tree
|
|
60
|
+
* has proved nothing); a *hint string* must never be the thing that crashes the
|
|
61
|
+
* process, so this degrades to the un-anchored form instead. */
|
|
62
|
+
export declare function printedRoot(): string | null;
|
|
19
63
|
/** One conflict-marker line found in a tracked file. */
|
|
20
64
|
export interface ConflictMarkerHit {
|
|
21
65
|
path: string;
|
|
22
66
|
line: number;
|
|
23
67
|
text: string;
|
|
24
68
|
}
|
|
69
|
+
/** What a `git grep -z -n` stream parse recovered.
|
|
70
|
+
*
|
|
71
|
+
* `hits` are the marker lines of files that carry a REAL conflict. `paths` is
|
|
72
|
+
* every path the parse read a well-formed record for — INCLUDING files whose
|
|
73
|
+
* only match was a bare `=======`. The two are deliberately different sets, and
|
|
74
|
+
* `paths` (never `hits`) is the parser's coverage claim: it is what the
|
|
75
|
+
* authoritative files-with-matches pass is checked against in
|
|
76
|
+
* `scanConflictMarkers`. Checking against `hits` instead would hard-block every
|
|
77
|
+
* push over any file containing a lone 7-equals line — the parser is *designed*
|
|
78
|
+
* not to trip on those, and `git grep -l` cannot tell one from a real conflict. */
|
|
79
|
+
export interface ConflictMarkerParse {
|
|
80
|
+
hits: ConflictMarkerHit[];
|
|
81
|
+
paths: string[];
|
|
82
|
+
}
|
|
25
83
|
/** The `git grep -E` pattern for the four marker families git can leave behind
|
|
26
84
|
* (`<<<<<<<`, `|||||||` in diff3 mode, `=======`, `>>>>>>>`). */
|
|
27
85
|
export declare const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
|
|
28
86
|
/**
|
|
29
|
-
* Parse `git grep -z -n` output
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
87
|
+
* Parse `git grep -z -n` output: a file counts as conflicted when it has a
|
|
88
|
+
* `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone diff3
|
|
89
|
+
* `|||||||`) never trips the gate on its own — that's the only line a changelog
|
|
90
|
+
* or a rule of prose plausibly starts with.
|
|
33
91
|
*
|
|
34
92
|
* This used to require BOTH arms (the "triad rule"), which let a half-resolved
|
|
35
93
|
* file through: delete one arm, leave `<<<<<<< HEAD` behind, and since `git add`
|
|
@@ -49,8 +107,23 @@ export declare const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
|
|
|
49
107
|
* (PR #394 review). git prints colons in paths unquoted, so no colon-based
|
|
50
108
|
* parse can be correct; NUL is the only unambiguous delimiter.
|
|
51
109
|
*
|
|
110
|
+
* The walk is POSITIONAL, not a `split("\0")` field walk (issue #412, finding 1).
|
|
111
|
+
* A `split` treats fields as fixed pairs, so ONE extra NUL anywhere in the stream
|
|
112
|
+
* shifts parity for everything after it. A matched LINE can legitimately contain
|
|
113
|
+
* a NUL: git's binary heuristic only inspects the first 8000 bytes, so a >8 KB
|
|
114
|
+
* text file with an embedded NUL further in is scanned as text and printed
|
|
115
|
+
* verbatim. Measured: a `======= \0Y` line in a 9.9 KB file desynced the walk and
|
|
116
|
+
* dropped EVERY later file in sorted-path order — a victim with three live
|
|
117
|
+
* markers reported CLEAN. `--text` does not fix this; the NUL is still inside the
|
|
118
|
+
* matched line. Reading each field to its own terminator does: a path cannot
|
|
119
|
+
* contain a NUL (POSIX), so field 1 ends at the 1st NUL and field 2 at the 2nd,
|
|
120
|
+
* and a grep match is exactly one line, so the text ends at the next LF —
|
|
121
|
+
* whatever bytes it contains.
|
|
122
|
+
*
|
|
52
123
|
* Pure + testable (`pr sync` shells out to gh+git and has no harness).
|
|
53
124
|
*/
|
|
125
|
+
export declare function parseConflictMarkerRecords(out: string): ConflictMarkerParse;
|
|
126
|
+
/** The marker hits alone — see `parseConflictMarkerRecords` for the coverage set. */
|
|
54
127
|
export declare function parseConflictMarkerGrep(out: string): ConflictMarkerHit[];
|
|
55
128
|
/** The outcome of enumerating paths for the gate. `ok: false` means the git
|
|
56
129
|
* command FAILED — which is emphatically NOT the same as "nothing changed".
|
|
@@ -67,29 +140,137 @@ export interface PathEnumeration {
|
|
|
67
140
|
* pathspecs — which would silently drop that file from the marker scan.
|
|
68
141
|
* Failure is REPORTED (`ok: false`), never flattened into an empty result:
|
|
69
142
|
* `scanConflictMarkers([])` is `[]`, so a swallowed error would have read as a
|
|
70
|
-
* clean tree and let the push through (PR #394 review).
|
|
143
|
+
* clean tree and let the push through (PR #394 review).
|
|
144
|
+
*
|
|
145
|
+
* Runs from `repoToplevel()`, and that is LOAD-BEARING (issue #412, finding 4 —
|
|
146
|
+
* PR #434 review). Enumeration and grep are a PAIR and must share one frame of
|
|
147
|
+
* reference: `git grep` always runs from the root (see `grepConflictMarkers`),
|
|
148
|
+
* so the paths handed to it must be root-relative too. `git diff --name-only`
|
|
149
|
+
* honours `diff.relative` — set to true (config, or a `--relative` in the
|
|
150
|
+
* command) it emits CWD-relative paths AND drops everything outside the CWD.
|
|
151
|
+
* Run the gate from `sub/` and `sub/app.ts` was enumerated as `app.ts`, which
|
|
152
|
+
* the root-anchored grep matched nothing for: exit 1 ("no match") read as a
|
|
153
|
+
* CLEAN tree over three live markers. Pinning the CWD here fixes it at the
|
|
154
|
+
* source, for every call site, and needs no `--no-relative` flag (git ≥2.30):
|
|
155
|
+
* at the toplevel, relative and absolute are the same thing.
|
|
156
|
+
*
|
|
157
|
+
* A root that cannot be located degrades to `ok: false` rather than throwing —
|
|
158
|
+
* callers rely on this never throwing (`pr sync`'s best-effort listing), and a
|
|
159
|
+
* gate that cannot find its tree has enumerated nothing, which is exactly what
|
|
160
|
+
* `ok: false` means. */
|
|
71
161
|
export declare function gitPaths(cmd: string): PathEnumeration;
|
|
72
162
|
/** Files this branch changed relative to `baseRef` — the only place a rebase
|
|
73
163
|
* can have left markers, so the gate never scans (or trips on) unrelated files. */
|
|
74
164
|
export declare function changedPaths(baseRef: string): PathEnumeration;
|
|
75
|
-
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
|
|
165
|
+
/** The repository root, as the CWD every gate git command runs FROM — BOTH the
|
|
166
|
+
* `git diff` that enumerates (`gitPaths`) and the `git grep` that scans
|
|
167
|
+
* (`grepConflictMarkers`).
|
|
168
|
+
*
|
|
169
|
+
* Load-bearing (issue #412, finding 4): `git grep` resolves pathspecs relative
|
|
170
|
+
* to the CWD, so paths enumerated in one frame and grepped in another match
|
|
171
|
+
* nothing — `git grep` exits 1 ("no match"), which the gate reads as CLEAN over
|
|
172
|
+
* live markers. Anchoring only one half is worse than anchoring neither: under
|
|
173
|
+
* `diff.relative=true` the two halves then disagree where before they at least
|
|
174
|
+
* agreed (PR #434 review). It must be a toplevel CWD and NOT a `:(top)`
|
|
175
|
+
* pathspec prefix: `--literal-pathspecs`, which the `:leading.ts` regression
|
|
176
|
+
* requires, disables pathspec magic outright. Failure to locate the root throws
|
|
177
|
+
* — a gate that cannot find the tree it is certifying has proved nothing.
|
|
178
|
+
* (`gitPaths` catches that throw and degrades to `ok: false`, its own way of
|
|
179
|
+
* saying the same thing.) */
|
|
180
|
+
export declare function repoToplevel(): string;
|
|
181
|
+
/** Split paths into `git grep`-sized batches, budgeting the QUOTED byte length
|
|
182
|
+
* actually spent on the command line. A single path over budget still gets its
|
|
183
|
+
* own chunk rather than looping forever. Pure, so the budgeting is testable
|
|
184
|
+
* without building a 100 KB fixture. */
|
|
185
|
+
export declare function chunkPathspecs(paths: string[], maxFiles?: number, maxBytes?: number): string[][];
|
|
186
|
+
/**
|
|
187
|
+
* Scan the working tree for leftover conflict markers in `paths`.
|
|
188
|
+
*
|
|
189
|
+
* Two passes per chunk, and the split is the point (issue #412, finding 1):
|
|
190
|
+
*
|
|
191
|
+
* 1. `-l` — the AUTHORITY on WHICH files match. `-z -l` emits NUL-terminated
|
|
192
|
+
* paths, so `split("\0")` is exact and no parse can lose a file.
|
|
193
|
+
* 2. `-n` — the line/text DETAIL, positionally parsed.
|
|
194
|
+
*
|
|
195
|
+
* Then fail CLOSED if the `-l` set is not covered by the paths the `-n` parse
|
|
196
|
+
* recovered: the detail pass lost a file the authority saw, so this scan cannot
|
|
197
|
+
* certify anything. The comparison is against `parse.paths` — every path a
|
|
198
|
+
* record was read for — and emphatically NOT against the filtered `hits`. `-l`
|
|
199
|
+
* cannot distinguish a bare `=======` from a real conflict and the parser
|
|
200
|
+
* deliberately does not trip on one, so checking `hits` would make any file
|
|
201
|
+
* containing a lone 7-equals line permanently unpushable.
|
|
202
|
+
*/
|
|
203
|
+
export declare function scanConflictMarkers(paths: string[], budget?: {
|
|
204
|
+
maxFiles?: number;
|
|
205
|
+
maxBytes?: number;
|
|
206
|
+
}): ConflictMarkerHit[];
|
|
207
|
+
/** Files the `-l` authority matched that the `-n` parse recovered no record for.
|
|
208
|
+
* Non-empty ⇒ the scan lost coverage and must fail closed.
|
|
209
|
+
*
|
|
210
|
+
* ⚠️ `recovered` is `ConflictMarkerParse.paths` — every path a record was read
|
|
211
|
+
* for — and NEVER the filtered hits. `git grep -l` matches a bare `=======` the
|
|
212
|
+
* same as a real `<<<<<<<`, while the parser deliberately does not trip on a
|
|
213
|
+
* lone separator. Comparing against hits would therefore report every file
|
|
214
|
+
* containing a single 7-equals line as "lost", hard-blocking its push forever:
|
|
215
|
+
* a repo-wide denial of service on the gate, invisible today only because this
|
|
216
|
+
* repo happens to contain zero such lines. */
|
|
217
|
+
export declare function unrecoveredMatches(matched: string[], recovered: string[]): string[];
|
|
90
218
|
/** Which rebase state git has left in this worktree, if any. Reads the
|
|
91
219
|
* worktree's own git dir, so it is correct inside `git worktree` checkouts. */
|
|
92
220
|
export declare function rebaseInProgress(): "rebase-merge" | "rebase-apply" | null;
|
|
221
|
+
/** The commit an in-flight rebase is replaying ONTO, read from the rebase state
|
|
222
|
+
* git itself wrote (`.git/rebase-merge/onto` or `.git/rebase-apply/onto`).
|
|
223
|
+
* `rebaseInProgress()` already names the directory, so this is a file read. */
|
|
224
|
+
export declare function rebaseOnto(): string | null;
|
|
225
|
+
/** The remote's default branch, from `refs/remotes/origin/HEAD`. */
|
|
226
|
+
export declare function originHeadRef(): string | null;
|
|
227
|
+
/** Last-ditch default branch when `origin/HEAD` was never set (a plain `git
|
|
228
|
+
* clone --depth` or a hand-added remote leaves it unset). */
|
|
229
|
+
export declare function defaultBranchRef(): string | null;
|
|
230
|
+
/** Which ref `conflict-check` diffs against, and where that ref came from. */
|
|
231
|
+
export type BaseSource = "rebase-onto" | "origin-head" | "default-branch" | "explicit";
|
|
232
|
+
export interface ResolvedBase {
|
|
233
|
+
base: string;
|
|
234
|
+
source: BaseSource;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Resolve the base `conflict-check` scans against (issue #412, finding 3).
|
|
238
|
+
*
|
|
239
|
+
* Without a base the check is VACUOUS at exactly the moment it matters. Once
|
|
240
|
+
* `git rebase --continue` has COMMITTED the markers, nothing is unmerged and
|
|
241
|
+
* nothing differs from HEAD, so both of the local enumeration sources are empty
|
|
242
|
+
* and the gate prints `{"clean":true,"scanned":0}` and exits 0 — over a tree
|
|
243
|
+
* whose HEAD blob literally contains `<<<<<<< HEAD`. The same tree with
|
|
244
|
+
* `--base main` yields 3 hits and exit 8.
|
|
245
|
+
*
|
|
246
|
+
* Precedence, most-specific first:
|
|
247
|
+
* 1. `rebase-onto` — mid-rebase, the commit git is actually replaying onto is
|
|
248
|
+
* the true base, whatever anyone typed.
|
|
249
|
+
* 2. `origin-head` / 3. `default-branch` — the repo's own default branch.
|
|
250
|
+
* 4. `explicit` — the operator's `--base`.
|
|
251
|
+
*
|
|
252
|
+
* NOT `@{upstream}`: that resolves to `origin/<same-branch>`, which is the
|
|
253
|
+
* branch's own remote copy and not the PR base at all — diffing a branch against
|
|
254
|
+
* itself is a vacuous scan wearing a base's clothes — and it is unset on any
|
|
255
|
+
* freshly created branch anyway.
|
|
256
|
+
*
|
|
257
|
+
* Ranking `explicit` LAST is deliberate and must stay that way: a stale `--base`
|
|
258
|
+
* flag must not override the commit git is actually replaying onto mid-rebase,
|
|
259
|
+
* and ranking it up would change which single ref `base` reports as covered.
|
|
260
|
+
*
|
|
261
|
+
* `--base` keeps its documented ADDITIVE contract at the call site: an explicit
|
|
262
|
+
* ref the precedence didn't pick is still scanned, it just isn't what gets
|
|
263
|
+
* reported as the resolved base — the caller reports the FULL set it diffed
|
|
264
|
+
* against as `bases`, so nothing scanned goes unnamed (PR #434 review). Pure
|
|
265
|
+
* (probes are injected) so the precedence is unit-testable without a rebase
|
|
266
|
+
* fixture.
|
|
267
|
+
*/
|
|
268
|
+
export declare function resolveScanBase(i: {
|
|
269
|
+
onto: string | null;
|
|
270
|
+
originHead: string | null;
|
|
271
|
+
defaultBranch: string | null;
|
|
272
|
+
explicit?: string;
|
|
273
|
+
}): ResolvedBase | null;
|
|
93
274
|
export type SyncEntryVerdict = {
|
|
94
275
|
ok: true;
|
|
95
276
|
} | {
|
|
@@ -103,11 +284,24 @@ export type SyncEntryVerdict = {
|
|
|
103
284
|
* misleading `On branch "HEAD" but PR #N is "x"` and every later loop git op
|
|
104
285
|
* failed. Each refusal names the state AND the exact command that clears it.
|
|
105
286
|
* Pure (state is injected) so it's unit-testable without a git fixture.
|
|
287
|
+
*
|
|
288
|
+
* `base` is the ref the printed re-check names, and it must be CONCRETE (PR #434
|
|
289
|
+
* review, finding 1). This branch fires only when a rebase IS in progress, so
|
|
290
|
+
* the caller always has one — the rebase's own `onto`, else `origin/<the PR's
|
|
291
|
+
* base>` — and the `origin/<base>` placeholder printed here before was a command
|
|
292
|
+
* the operator could not run: `conflict-check --base 'origin/<base>'` fails to
|
|
293
|
+
* resolve the ref and exits 8 via `enumerationFailed`, i.e. the recovery hint
|
|
294
|
+
* itself reported "the gate proved nothing". The placeholder survives only as
|
|
295
|
+
* the last resort for a caller that truly has neither source.
|
|
296
|
+
*
|
|
297
|
+
* `root` anchors the printed `git add` for a subdirectory shell (`anchoredGit`).
|
|
106
298
|
*/
|
|
107
299
|
export declare function syncEntryGuard(i: {
|
|
108
300
|
rebase: "rebase-merge" | "rebase-apply" | null;
|
|
109
301
|
currentBranch: string;
|
|
110
302
|
head: string;
|
|
111
303
|
number: number;
|
|
304
|
+
base?: string | null;
|
|
305
|
+
root?: string | null;
|
|
112
306
|
}): SyncEntryVerdict;
|
|
113
307
|
//# sourceMappingURL=pr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pr.js
CHANGED
|
@@ -252,11 +252,19 @@ export function registerPRCommand(program) {
|
|
|
252
252
|
// abandoned `--keep-conflicts` turn leaves it mid-rebase on a DETACHED
|
|
253
253
|
// HEAD. The old check then reported the misleading `On branch "HEAD" but
|
|
254
254
|
// PR #N is "x"`. Name the real state and the exact recovery command.
|
|
255
|
+
//
|
|
256
|
+
// The re-check it prints names a CONCRETE ref (PR #434 review, finding 1):
|
|
257
|
+
// the guard's rebase arm only fires mid-rebase, so `rebaseOnto()` is the
|
|
258
|
+
// exact commit git is replaying onto, and `origin/${base}` — the ref this
|
|
259
|
+
// very command rebases onto three lines down — backs it up. The
|
|
260
|
+
// `origin/<base>` placeholder would have exited 8 as an unresolvable ref.
|
|
255
261
|
const guard = syncEntryGuard({
|
|
256
262
|
rebase: rebaseInProgress(),
|
|
257
263
|
currentBranch: execSync("git rev-parse --abbrev-ref HEAD").toString().trim(),
|
|
258
264
|
head,
|
|
259
265
|
number,
|
|
266
|
+
base: rebaseOnto() ?? `origin/${base}`,
|
|
267
|
+
root: printedRoot(),
|
|
260
268
|
});
|
|
261
269
|
if (!guard.ok) {
|
|
262
270
|
console.error(guard.message);
|
|
@@ -300,7 +308,7 @@ export function registerPRCommand(program) {
|
|
|
300
308
|
console.log(`🔀 PR #${number}: rebase onto ${base} conflicts — left IN PROGRESS for resolution.`);
|
|
301
309
|
for (const f of conflictedFiles)
|
|
302
310
|
console.log(` [U] ${f}`);
|
|
303
|
-
for (const l of
|
|
311
|
+
for (const l of resolutionRecipe(`origin/${base}`, printedRoot()))
|
|
304
312
|
console.log(l);
|
|
305
313
|
});
|
|
306
314
|
}
|
|
@@ -320,7 +328,7 @@ export function registerPRCommand(program) {
|
|
|
320
328
|
emit(opts, { number, rebased: true, conflict: false, base, pushed: false, enumerationFailed: [changed.cmd] }, () => {
|
|
321
329
|
console.error(`⛔ PR #${number}: could not enumerate the files changed against ${base} — refusing to push.`);
|
|
322
330
|
console.error(` failed: ${changed.cmd}`);
|
|
323
|
-
console.error(`The marker gate cannot certify a tree it could not read. Re-check with:
|
|
331
|
+
console.error(`The marker gate cannot certify a tree it could not read. Re-check with: ${recheckCommand(`origin/${base}`)}`);
|
|
324
332
|
});
|
|
325
333
|
process.exit(8);
|
|
326
334
|
}
|
|
@@ -330,7 +338,7 @@ export function registerPRCommand(program) {
|
|
|
330
338
|
console.error(`⛔ PR #${number}: rebase onto ${base} succeeded but ${markers.length} conflict marker(s) remain — refusing to push.`);
|
|
331
339
|
for (const h of markers.slice(0, 20))
|
|
332
340
|
console.error(` ${h.path}:${h.line}: ${h.text.slice(0, 60)}`);
|
|
333
|
-
console.error(`Remove the markers, re-run the tests, then push. Re-check with:
|
|
341
|
+
console.error(`Remove the markers, re-run the tests, then push. Re-check with: ${recheckCommand(`origin/${base}`)}`);
|
|
334
342
|
});
|
|
335
343
|
process.exit(8);
|
|
336
344
|
}
|
|
@@ -351,33 +359,86 @@ export function registerPRCommand(program) {
|
|
|
351
359
|
pr
|
|
352
360
|
.command("conflict-check")
|
|
353
361
|
.description("Fail if the working tree still has unmerged paths or leftover conflict markers — the gate to run BEFORE `git rebase --continue` and before any force-with-lease push (exit 8 = not clean). Local only, no network.")
|
|
354
|
-
.option("--base <ref>", "Also scan every file this branch changed against <ref> (e.g. origin/main),
|
|
362
|
+
.option("--base <ref>", "Also scan every file this branch changed against <ref> (e.g. origin/main) — additive, never a replacement. Omitted, the base is resolved automatically: the in-flight rebase's `onto`, else origin/HEAD, else the repo default branch. Every ref actually scanned is listed in the JSON `bases`")
|
|
355
363
|
.option("--json", "Output JSON")
|
|
356
364
|
.action(runAction(async (opts) => {
|
|
365
|
+
// Resolve a base ALWAYS (issue #412, finding 3). The two local sources go
|
|
366
|
+
// empty the moment `git rebase --continue` commits the markers, and a gate
|
|
367
|
+
// with nothing to scan reported `{"clean":true,"scanned":0}` exit 0 over a
|
|
368
|
+
// HEAD blob full of `<<<<<<<`. See `resolveScanBase` for the precedence.
|
|
369
|
+
const resolved = resolveScanBase({
|
|
370
|
+
onto: rebaseOnto(),
|
|
371
|
+
originHead: originHeadRef(),
|
|
372
|
+
defaultBranch: defaultBranchRef(),
|
|
373
|
+
explicit: opts.base,
|
|
374
|
+
});
|
|
375
|
+
// Every base we can name gets scanned: the resolved one, plus an explicit
|
|
376
|
+
// `--base` the precedence didn't pick — `--base` is documented as ADDITIVE
|
|
377
|
+
// ("ALSO scan"), so auto-resolution must never shrink what it covers.
|
|
378
|
+
//
|
|
379
|
+
// Reported as `bases` (PR #434 review): `base`/`baseSource` name the ONE
|
|
380
|
+
// ref the precedence picked, which is not the whole story — `--base
|
|
381
|
+
// origin/dev` in a repo whose origin/HEAD resolves is scanned, but was
|
|
382
|
+
// reported as `base:"origin/main"`, telling a consumer the gate ran
|
|
383
|
+
// against a ref the operator never named. Coverage was never the problem
|
|
384
|
+
// (it is a strict superset); the reporting was. Fixed by naming every ref
|
|
385
|
+
// actually diffed against, NOT by re-ranking: `rebase-onto` outranking
|
|
386
|
+
// `explicit` is deliberate, so a stale `--base` flag can't override the
|
|
387
|
+
// commit git is really replaying onto, and re-ranking could shrink what
|
|
388
|
+
// `base` reports as covered.
|
|
389
|
+
const baseRefs = Array.from(new Set([resolved?.base, opts.base].filter((b) => !!b)));
|
|
357
390
|
// `--base` is USER-supplied and unvalidated, so its diff really can fail.
|
|
358
391
|
// A failed enumeration must never read as a clean tree (PR #394 review):
|
|
359
392
|
// collect each source's ok/failed state and let a failure block `clean`.
|
|
360
393
|
const sources = [
|
|
361
394
|
gitPaths("git diff --name-only --diff-filter=U"),
|
|
362
395
|
gitPaths("git diff --name-only HEAD"), // index + worktree vs HEAD: what a resolution touched
|
|
363
|
-
...(
|
|
396
|
+
...baseRefs.map((b) => gitPaths(`git diff --name-only ${shellQuote(b)}...HEAD`)),
|
|
364
397
|
];
|
|
365
398
|
const enumerationFailed = sources.filter((s) => !s.ok).map((s) => s.cmd);
|
|
366
399
|
const unmerged = sources[0].paths;
|
|
367
400
|
const paths = Array.from(new Set(sources.flatMap((s) => s.paths)));
|
|
368
401
|
const markers = scanConflictMarkers(paths);
|
|
369
402
|
const rebase = rebaseInProgress();
|
|
370
|
-
|
|
371
|
-
|
|
403
|
+
// No base AND nothing scanned = the gate examined zero bytes. That is not
|
|
404
|
+
// a clean tree, it is an absence of evidence — report it as such (exit 8,
|
|
405
|
+
// the existing "do not continue" code; the loop's contract reads 8).
|
|
406
|
+
const indeterminate = !resolved && paths.length === 0;
|
|
407
|
+
const clean = !indeterminate && enumerationFailed.length === 0 && unmerged.length === 0 && markers.length === 0;
|
|
408
|
+
// Refs the resolved base did not account for — an additive `--base` the
|
|
409
|
+
// precedence ranked below what it picked. Named separately so the operator
|
|
410
|
+
// sees their own flag was honoured even when it isn't the reported `base`.
|
|
411
|
+
const alsoScanned = baseRefs.filter((b) => b !== resolved?.base);
|
|
412
|
+
const via = resolved
|
|
413
|
+
? ` vs ${resolved.base} (${resolved.source})${alsoScanned.length ? ` + ${alsoScanned.join(", ")}` : ""}`
|
|
414
|
+
: "";
|
|
415
|
+
emit(opts, {
|
|
416
|
+
clean, indeterminate, unmerged, conflictMarkers: markers, rebaseInProgress: rebase,
|
|
417
|
+
base: resolved?.base ?? null, baseSource: resolved?.source ?? null, bases: baseRefs,
|
|
418
|
+
scanned: paths.length, enumerationFailed,
|
|
419
|
+
}, () => {
|
|
372
420
|
if (clean) {
|
|
373
|
-
console.log(`✅ No unmerged paths, no conflict markers (${paths.length} file(s) scanned)${rebase ? ` — rebase still in progress, safe to \`git rebase --continue\`` : ""}.`);
|
|
421
|
+
console.log(`✅ No unmerged paths, no conflict markers (${paths.length} file(s) scanned${via})${rebase ? ` — rebase still in progress, safe to \`git rebase --continue\`` : ""}.`);
|
|
374
422
|
return;
|
|
375
423
|
}
|
|
376
424
|
console.error(`⛔ Not clean — do NOT continue the rebase or push.`);
|
|
425
|
+
if (via)
|
|
426
|
+
console.error(` scanned ${paths.length} file(s)${via}`);
|
|
427
|
+
if (indeterminate) {
|
|
428
|
+
// The one site where the placeholder is honest: `indeterminate` means
|
|
429
|
+
// no base could be resolved, so there is no concrete ref to name.
|
|
430
|
+
console.error(` [?] indeterminate: no base ref could be resolved and 0 file(s) were scanned — the gate proved nothing.`);
|
|
431
|
+
console.error(` Name one explicitly: ${recheckCommand("origin/<base>")}`);
|
|
432
|
+
}
|
|
433
|
+
// Anchored so the operator can paste it from ANY directory: `f` is
|
|
434
|
+
// repo-root-relative (`gitPaths` runs from the toplevel), and an
|
|
435
|
+
// un-anchored `git add -- sub/app.ts` run from `sub/` looks for
|
|
436
|
+
// `sub/sub/app.ts` (PR #434 review, finding 2).
|
|
437
|
+
const root = unmerged.length ? printedRoot() : null;
|
|
377
438
|
for (const c of enumerationFailed)
|
|
378
439
|
console.error(` [E] could not enumerate paths: ${c} — the gate cannot certify a tree it could not read`);
|
|
379
440
|
for (const f of unmerged)
|
|
380
|
-
console.error(` [U] ${f} — still unmerged; resolve it, then:
|
|
441
|
+
console.error(` [U] ${f} — still unmerged; resolve it, then: ${anchoredGit(root, `add -- ${shellQuote(f)}`)}`);
|
|
381
442
|
for (const h of markers.slice(0, 20))
|
|
382
443
|
console.error(` [M] ${h.path}:${h.line}: ${h.text.slice(0, 60)}`);
|
|
383
444
|
if (markers.length > 20)
|
|
@@ -604,23 +665,80 @@ export function buildShipFlowHeader(project, issueNumber, issueUrl, linkMode = "
|
|
|
604
665
|
/** What `pr sync --keep-conflicts` prints as the resolution recipe. NEVER
|
|
605
666
|
* `git add -A`: the UNMERGED index state is the ONLY thing that makes git
|
|
606
667
|
* refuse to commit a file still containing `<<<<<<<`, and `add -A` clears
|
|
607
|
-
* exactly that. Stage the paths you actually resolved, then re-gate.
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
668
|
+
* exactly that. Stage the paths you actually resolved, then re-gate.
|
|
669
|
+
*
|
|
670
|
+
* A FUNCTION of the base (issue #412, finding 3): the printed gate command has
|
|
671
|
+
* to carry `--base`, because the moment `git rebase --continue` commits the
|
|
672
|
+
* markers a bare `pr conflict-check` has nothing left to enumerate and reports
|
|
673
|
+
* clean. This is also what step 5 of `references/conflict-resolution.md` tells
|
|
674
|
+
* the agent to run, so the two now say the same thing.
|
|
675
|
+
*
|
|
676
|
+
* `root` anchors the printed `git add` (see `anchoredGit`) so it runs from a
|
|
677
|
+
* subdirectory too — the paths the operator substitutes come from the gate, and
|
|
678
|
+
* those are repo-root-relative. Injected, not probed, so the recipe stays pure. */
|
|
679
|
+
export function resolutionRecipe(baseRef, root = null) {
|
|
680
|
+
return [
|
|
681
|
+
`Resolve each file, then stage ONLY the paths you resolved: ${anchoredGit(root, "add -- <file>…")}`,
|
|
682
|
+
" (never `git add -A` here — it clears the UNMERGED state that stops git committing conflict markers)",
|
|
683
|
+
`Gate before continuing: ${recheckCommand(baseRef)} # exit 8 = markers/unmerged remain`,
|
|
684
|
+
"Then: git rebase --continue (repeat per commit), run the FULL test suite, gate again, and push --force-with-lease.",
|
|
685
|
+
];
|
|
686
|
+
}
|
|
687
|
+
/** The ONE place the gate's re-check invocation is spelled (PR #434 review).
|
|
688
|
+
*
|
|
689
|
+
* `pr sync` printed a base-less `pr conflict-check` on both of its refusal
|
|
690
|
+
* paths while `resolutionRecipe` — three lines away, in the same
|
|
691
|
+
* command — threaded the base. That is the vacuous form this PR exists to stop
|
|
692
|
+
* recommending: it makes the operator re-resolve a base the caller already
|
|
693
|
+
* knows, and auto-resolution can land on a DIFFERENT ref than the one `pr sync`
|
|
694
|
+
* actually rebased onto, so the re-check would certify a tree against the wrong
|
|
695
|
+
* base. Every printed invocation now goes through here, so the base-less form
|
|
696
|
+
* can't reappear in one message while the others are correct. Where no concrete
|
|
697
|
+
* ref is in scope, pass the `origin/<base>` placeholder — never nothing. */
|
|
698
|
+
export function recheckCommand(baseRef) {
|
|
699
|
+
return `renaiss-shipflow pr conflict-check --base ${baseRef}`;
|
|
700
|
+
}
|
|
701
|
+
/** A git command the operator can paste into ANY shell, at ANY depth in the
|
|
702
|
+
* worktree (PR #434 review, finding 2).
|
|
703
|
+
*
|
|
704
|
+
* The gate reports **repo-root-relative** paths — `gitPaths` pins its CWD to
|
|
705
|
+
* `repoToplevel()` so enumeration and grep share one frame of reference — so a
|
|
706
|
+
* printed `git add -- sub/app.ts` pasted from `sub/` resolves `sub/sub/app.ts`
|
|
707
|
+
* and dies with `could not open directory 'sub/sub/'`. `-C <root>` puts the
|
|
708
|
+
* printed command in the same frame the printed path is expressed in, which is
|
|
709
|
+
* the only way one string can be correct from every CWD. (Under the default
|
|
710
|
+
* `diff.relative=false` the un-anchored form was already wrong from a subdir;
|
|
711
|
+
* anchoring makes every printed path-bearing command runnable, not just this
|
|
712
|
+
* one.)
|
|
713
|
+
*
|
|
714
|
+
* Root unknown → print the plain form. A `git -C '' …` would be worse than no
|
|
715
|
+
* anchor, and a gate that cannot locate its own toplevel is already failing
|
|
716
|
+
* loudly for that reason. */
|
|
717
|
+
export function anchoredGit(root, args) {
|
|
718
|
+
return root ? `git -C ${shellQuote(root)} ${args}` : `git ${args}`;
|
|
719
|
+
}
|
|
720
|
+
/** The repo root to anchor a PRINTED command to, or `null` when it can't be
|
|
721
|
+
* located. `repoToplevel()` throws by design (a gate that cannot find its tree
|
|
722
|
+
* has proved nothing); a *hint string* must never be the thing that crashes the
|
|
723
|
+
* process, so this degrades to the un-anchored form instead. */
|
|
724
|
+
export function printedRoot() {
|
|
725
|
+
try {
|
|
726
|
+
return repoToplevel();
|
|
727
|
+
}
|
|
728
|
+
catch {
|
|
729
|
+
return null;
|
|
730
|
+
}
|
|
731
|
+
}
|
|
614
732
|
/** The `git grep -E` pattern for the four marker families git can leave behind
|
|
615
733
|
* (`<<<<<<<`, `|||||||` in diff3 mode, `=======`, `>>>>>>>`). */
|
|
616
734
|
export const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
|
|
617
735
|
const MARKER_START = /^<{7}( |$)/;
|
|
618
736
|
const MARKER_END = /^>{7}( |$)/;
|
|
619
737
|
/**
|
|
620
|
-
* Parse `git grep -z -n` output
|
|
621
|
-
*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
738
|
+
* Parse `git grep -z -n` output: a file counts as conflicted when it has a
|
|
739
|
+
* `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone diff3
|
|
740
|
+
* `|||||||`) never trips the gate on its own — that's the only line a changelog
|
|
741
|
+
* or a rule of prose plausibly starts with.
|
|
624
742
|
*
|
|
625
743
|
* This used to require BOTH arms (the "triad rule"), which let a half-resolved
|
|
626
744
|
* file through: delete one arm, leave `<<<<<<< HEAD` behind, and since `git add`
|
|
@@ -640,27 +758,48 @@ const MARKER_END = /^>{7}( |$)/;
|
|
|
640
758
|
* (PR #394 review). git prints colons in paths unquoted, so no colon-based
|
|
641
759
|
* parse can be correct; NUL is the only unambiguous delimiter.
|
|
642
760
|
*
|
|
761
|
+
* The walk is POSITIONAL, not a `split("\0")` field walk (issue #412, finding 1).
|
|
762
|
+
* A `split` treats fields as fixed pairs, so ONE extra NUL anywhere in the stream
|
|
763
|
+
* shifts parity for everything after it. A matched LINE can legitimately contain
|
|
764
|
+
* a NUL: git's binary heuristic only inspects the first 8000 bytes, so a >8 KB
|
|
765
|
+
* text file with an embedded NUL further in is scanned as text and printed
|
|
766
|
+
* verbatim. Measured: a `======= \0Y` line in a 9.9 KB file desynced the walk and
|
|
767
|
+
* dropped EVERY later file in sorted-path order — a victim with three live
|
|
768
|
+
* markers reported CLEAN. `--text` does not fix this; the NUL is still inside the
|
|
769
|
+
* matched line. Reading each field to its own terminator does: a path cannot
|
|
770
|
+
* contain a NUL (POSIX), so field 1 ends at the 1st NUL and field 2 at the 2nd,
|
|
771
|
+
* and a grep match is exactly one line, so the text ends at the next LF —
|
|
772
|
+
* whatever bytes it contains.
|
|
773
|
+
*
|
|
643
774
|
* Pure + testable (`pr sync` shells out to gh+git and has no harness).
|
|
644
775
|
*/
|
|
645
|
-
export function
|
|
776
|
+
export function parseConflictMarkerRecords(out) {
|
|
646
777
|
const byPath = new Map();
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
const
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
const
|
|
778
|
+
const paths = [];
|
|
779
|
+
let i = 0;
|
|
780
|
+
while (i < out.length) {
|
|
781
|
+
const pathEnd = out.indexOf("\0", i);
|
|
782
|
+
if (pathEnd === -1)
|
|
783
|
+
break; // truncated: no path terminator, nothing recovered
|
|
784
|
+
const path = out.slice(i, pathEnd);
|
|
785
|
+
const lineEnd = out.indexOf("\0", pathEnd + 1);
|
|
786
|
+
if (lineEnd === -1)
|
|
787
|
+
break; // truncated: no line-number terminator
|
|
788
|
+
const line = parseInt(out.slice(pathEnd + 1, lineEnd), 10);
|
|
789
|
+
const nl = out.indexOf("\n", lineEnd + 1);
|
|
790
|
+
const text = nl === -1 ? out.slice(lineEnd + 1) : out.slice(lineEnd + 1, nl);
|
|
658
791
|
if (Number.isFinite(line)) {
|
|
659
|
-
|
|
792
|
+
let list = byPath.get(path);
|
|
793
|
+
if (!list) {
|
|
794
|
+
list = [];
|
|
795
|
+
byPath.set(path, list);
|
|
796
|
+
paths.push(path);
|
|
797
|
+
}
|
|
660
798
|
list.push({ path, line, text });
|
|
661
|
-
byPath.set(path, list);
|
|
662
799
|
}
|
|
663
|
-
|
|
800
|
+
if (nl === -1)
|
|
801
|
+
break; // last record had no terminating LF
|
|
802
|
+
i = nl + 1;
|
|
664
803
|
}
|
|
665
804
|
const hits = [];
|
|
666
805
|
for (const list of byPath.values()) {
|
|
@@ -669,17 +808,38 @@ export function parseConflictMarkerGrep(out) {
|
|
|
669
808
|
if (hasStart || hasEnd)
|
|
670
809
|
hits.push(...list);
|
|
671
810
|
}
|
|
672
|
-
return hits;
|
|
811
|
+
return { hits, paths };
|
|
812
|
+
}
|
|
813
|
+
/** The marker hits alone — see `parseConflictMarkerRecords` for the coverage set. */
|
|
814
|
+
export function parseConflictMarkerGrep(out) {
|
|
815
|
+
return parseConflictMarkerRecords(out).hits;
|
|
673
816
|
}
|
|
674
817
|
/** Paths from a `git diff --name-only` invocation. NUL-delimited (`-z`) so a
|
|
675
818
|
* filename containing a newline or a quotable byte can't split into two bogus
|
|
676
819
|
* pathspecs — which would silently drop that file from the marker scan.
|
|
677
820
|
* Failure is REPORTED (`ok: false`), never flattened into an empty result:
|
|
678
821
|
* `scanConflictMarkers([])` is `[]`, so a swallowed error would have read as a
|
|
679
|
-
* clean tree and let the push through (PR #394 review).
|
|
822
|
+
* clean tree and let the push through (PR #394 review).
|
|
823
|
+
*
|
|
824
|
+
* Runs from `repoToplevel()`, and that is LOAD-BEARING (issue #412, finding 4 —
|
|
825
|
+
* PR #434 review). Enumeration and grep are a PAIR and must share one frame of
|
|
826
|
+
* reference: `git grep` always runs from the root (see `grepConflictMarkers`),
|
|
827
|
+
* so the paths handed to it must be root-relative too. `git diff --name-only`
|
|
828
|
+
* honours `diff.relative` — set to true (config, or a `--relative` in the
|
|
829
|
+
* command) it emits CWD-relative paths AND drops everything outside the CWD.
|
|
830
|
+
* Run the gate from `sub/` and `sub/app.ts` was enumerated as `app.ts`, which
|
|
831
|
+
* the root-anchored grep matched nothing for: exit 1 ("no match") read as a
|
|
832
|
+
* CLEAN tree over three live markers. Pinning the CWD here fixes it at the
|
|
833
|
+
* source, for every call site, and needs no `--no-relative` flag (git ≥2.30):
|
|
834
|
+
* at the toplevel, relative and absolute are the same thing.
|
|
835
|
+
*
|
|
836
|
+
* A root that cannot be located degrades to `ok: false` rather than throwing —
|
|
837
|
+
* callers rely on this never throwing (`pr sync`'s best-effort listing), and a
|
|
838
|
+
* gate that cannot find its tree has enumerated nothing, which is exactly what
|
|
839
|
+
* `ok: false` means. */
|
|
680
840
|
export function gitPaths(cmd) {
|
|
681
841
|
try {
|
|
682
|
-
const out = execSync(`${cmd} -z`, { stdio: ["ignore", "pipe", "ignore"] }).toString();
|
|
842
|
+
const out = execSync(`${cmd} -z`, { cwd: repoToplevel(), stdio: ["ignore", "pipe", "ignore"] }).toString();
|
|
683
843
|
return { paths: out.split("\0").filter(Boolean), ok: true, cmd };
|
|
684
844
|
}
|
|
685
845
|
catch {
|
|
@@ -691,9 +851,65 @@ export function gitPaths(cmd) {
|
|
|
691
851
|
export function changedPaths(baseRef) {
|
|
692
852
|
return gitPaths(`git diff --name-only ${shellQuote(baseRef)}...HEAD`);
|
|
693
853
|
}
|
|
694
|
-
/**
|
|
695
|
-
*
|
|
696
|
-
*
|
|
854
|
+
/** The repository root, as the CWD every gate git command runs FROM — BOTH the
|
|
855
|
+
* `git diff` that enumerates (`gitPaths`) and the `git grep` that scans
|
|
856
|
+
* (`grepConflictMarkers`).
|
|
857
|
+
*
|
|
858
|
+
* Load-bearing (issue #412, finding 4): `git grep` resolves pathspecs relative
|
|
859
|
+
* to the CWD, so paths enumerated in one frame and grepped in another match
|
|
860
|
+
* nothing — `git grep` exits 1 ("no match"), which the gate reads as CLEAN over
|
|
861
|
+
* live markers. Anchoring only one half is worse than anchoring neither: under
|
|
862
|
+
* `diff.relative=true` the two halves then disagree where before they at least
|
|
863
|
+
* agreed (PR #434 review). It must be a toplevel CWD and NOT a `:(top)`
|
|
864
|
+
* pathspec prefix: `--literal-pathspecs`, which the `:leading.ts` regression
|
|
865
|
+
* requires, disables pathspec magic outright. Failure to locate the root throws
|
|
866
|
+
* — a gate that cannot find the tree it is certifying has proved nothing.
|
|
867
|
+
* (`gitPaths` catches that throw and degrades to `ok: false`, its own way of
|
|
868
|
+
* saying the same thing.) */
|
|
869
|
+
export function repoToplevel() {
|
|
870
|
+
let root;
|
|
871
|
+
try {
|
|
872
|
+
root = execSync("git rev-parse --show-toplevel", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
|
|
873
|
+
}
|
|
874
|
+
catch (e) {
|
|
875
|
+
throw new Error(`conflict-marker scan failed (git rev-parse --show-toplevel): ${e.message}`);
|
|
876
|
+
}
|
|
877
|
+
if (!root)
|
|
878
|
+
throw new Error("conflict-marker scan failed: git reported no worktree toplevel (bare repo?)");
|
|
879
|
+
return root;
|
|
880
|
+
}
|
|
881
|
+
/** `git grep` takes its pathspecs on the command line and has NO
|
|
882
|
+
* `--pathspec-from-file`, so a large branch diff has to be split or it blows
|
|
883
|
+
* ARG_MAX. Measured on this repo: 1217 changed files / 84 KB of pathspec at
|
|
884
|
+
* HEAD~400, against a 1 MB limit — under it, but not by a margin a
|
|
885
|
+
* fail-closed gate should bet on. */
|
|
886
|
+
const PATHSPEC_CHUNK_FILES = 1000;
|
|
887
|
+
const PATHSPEC_CHUNK_BYTES = 100_000;
|
|
888
|
+
/** Split paths into `git grep`-sized batches, budgeting the QUOTED byte length
|
|
889
|
+
* actually spent on the command line. A single path over budget still gets its
|
|
890
|
+
* own chunk rather than looping forever. Pure, so the budgeting is testable
|
|
891
|
+
* without building a 100 KB fixture. */
|
|
892
|
+
export function chunkPathspecs(paths, maxFiles = PATHSPEC_CHUNK_FILES, maxBytes = PATHSPEC_CHUNK_BYTES) {
|
|
893
|
+
const chunks = [];
|
|
894
|
+
let current = [];
|
|
895
|
+
let bytes = 0;
|
|
896
|
+
for (const p of paths) {
|
|
897
|
+
const cost = Buffer.byteLength(shellQuote(p)) + 1; // + the separating space
|
|
898
|
+
if (current.length && (current.length >= maxFiles || bytes + cost > maxBytes)) {
|
|
899
|
+
chunks.push(current);
|
|
900
|
+
current = [];
|
|
901
|
+
bytes = 0;
|
|
902
|
+
}
|
|
903
|
+
current.push(p);
|
|
904
|
+
bytes += cost;
|
|
905
|
+
}
|
|
906
|
+
if (current.length)
|
|
907
|
+
chunks.push(current);
|
|
908
|
+
return chunks;
|
|
909
|
+
}
|
|
910
|
+
/** One `git grep` invocation over a chunk. Exit 1 = "no match" = clean; any
|
|
911
|
+
* OTHER failure is rethrown so the gate fails CLOSED rather than silently
|
|
912
|
+
* reporting a clean tree.
|
|
697
913
|
*
|
|
698
914
|
* `--literal-pathspecs` is load-bearing: `shellQuote` stops the SHELL, but git
|
|
699
915
|
* still parses each argument as a PATHSPEC. A tracked file whose name begins
|
|
@@ -702,25 +918,80 @@ export function changedPaths(baseRef) {
|
|
|
702
918
|
* (PR #394 review). Note the flag is a main-git option, so it must precede the
|
|
703
919
|
* subcommand: `git grep --literal-pathspecs` is rejected as an unknown option.
|
|
704
920
|
*
|
|
705
|
-
* `-z` is load-bearing too: it makes git delimit `path\0line\0text
|
|
706
|
-
*
|
|
707
|
-
*
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
921
|
+
* `-z` is load-bearing too: it makes git delimit `path\0line\0text` (and
|
|
922
|
+
* NUL-terminate each `-l` path), so a path containing `:<digits>:` or a newline
|
|
923
|
+
* can't be mis-split and silently dropped (PR #394 review).
|
|
924
|
+
*
|
|
925
|
+
* `--text` replaces the old `-I` (issue #412, finding 2). `-I` skips whatever
|
|
926
|
+
* git calls binary — including a file marked `-diff` in `.gitattributes`, the
|
|
927
|
+
* standard lockfile idiom (`pnpm-lock.yaml -diff`). git text-merges such a file
|
|
928
|
+
* and writes real `<<<<<<<` markers into it, then `git grep -I` refuses to look:
|
|
929
|
+
* the gate returned `[]` both before and after `git add` while the markers sat
|
|
930
|
+
* on disk. `--text` scans it. Nothing is lost — a genuinely binary file cannot
|
|
931
|
+
* match a `^`-anchored 7-character marker line by accident. */
|
|
932
|
+
function grepConflictMarkers(root, mode, chunk) {
|
|
933
|
+
const pathspec = chunk.map(shellQuote).join(" ");
|
|
934
|
+
const cmd = `git --literal-pathspecs grep --text -z ${mode} -E ${shellQuote(CONFLICT_MARKER_PATTERN)} -- ${pathspec}`;
|
|
713
935
|
try {
|
|
714
|
-
|
|
715
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
716
|
-
}).toString();
|
|
936
|
+
return execSync(cmd, { cwd: root, stdio: ["ignore", "pipe", "ignore"] }).toString();
|
|
717
937
|
}
|
|
718
938
|
catch (e) {
|
|
719
939
|
if (e.status === 1)
|
|
720
|
-
return
|
|
940
|
+
return ""; // no match
|
|
721
941
|
throw new Error(`conflict-marker scan failed (git grep): ${e.message}`);
|
|
722
942
|
}
|
|
723
|
-
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Scan the working tree for leftover conflict markers in `paths`.
|
|
946
|
+
*
|
|
947
|
+
* Two passes per chunk, and the split is the point (issue #412, finding 1):
|
|
948
|
+
*
|
|
949
|
+
* 1. `-l` — the AUTHORITY on WHICH files match. `-z -l` emits NUL-terminated
|
|
950
|
+
* paths, so `split("\0")` is exact and no parse can lose a file.
|
|
951
|
+
* 2. `-n` — the line/text DETAIL, positionally parsed.
|
|
952
|
+
*
|
|
953
|
+
* Then fail CLOSED if the `-l` set is not covered by the paths the `-n` parse
|
|
954
|
+
* recovered: the detail pass lost a file the authority saw, so this scan cannot
|
|
955
|
+
* certify anything. The comparison is against `parse.paths` — every path a
|
|
956
|
+
* record was read for — and emphatically NOT against the filtered `hits`. `-l`
|
|
957
|
+
* cannot distinguish a bare `=======` from a real conflict and the parser
|
|
958
|
+
* deliberately does not trip on one, so checking `hits` would make any file
|
|
959
|
+
* containing a lone 7-equals line permanently unpushable.
|
|
960
|
+
*/
|
|
961
|
+
export function scanConflictMarkers(paths, budget) {
|
|
962
|
+
if (!paths.length)
|
|
963
|
+
return [];
|
|
964
|
+
const root = repoToplevel();
|
|
965
|
+
const hits = [];
|
|
966
|
+
for (const chunk of chunkPathspecs(paths, budget?.maxFiles, budget?.maxBytes)) {
|
|
967
|
+
const matched = grepConflictMarkers(root, "-l", chunk).split("\0").filter(Boolean);
|
|
968
|
+
const parsed = parseConflictMarkerRecords(grepConflictMarkers(root, "-n", chunk));
|
|
969
|
+
// Per CHUNK, not once at the end: a chunk that cannot be certified must stop
|
|
970
|
+
// the whole scan, and holding the comparison to the end would let an early
|
|
971
|
+
// chunk's loss hide behind a later chunk's coverage.
|
|
972
|
+
const missed = unrecoveredMatches(matched, parsed.paths);
|
|
973
|
+
if (missed.length) {
|
|
974
|
+
throw new Error(`conflict-marker scan failed: git grep matched ${missed.length} file(s) whose marker lines the parse could not recover `
|
|
975
|
+
+ `(${missed.slice(0, 5).map((p) => JSON.stringify(p)).join(", ")}${missed.length > 5 ? ", …" : ""}). `
|
|
976
|
+
+ `The gate cannot certify a tree it could not fully read — inspect those files by hand.`);
|
|
977
|
+
}
|
|
978
|
+
hits.push(...parsed.hits);
|
|
979
|
+
}
|
|
980
|
+
return hits;
|
|
981
|
+
}
|
|
982
|
+
/** Files the `-l` authority matched that the `-n` parse recovered no record for.
|
|
983
|
+
* Non-empty ⇒ the scan lost coverage and must fail closed.
|
|
984
|
+
*
|
|
985
|
+
* ⚠️ `recovered` is `ConflictMarkerParse.paths` — every path a record was read
|
|
986
|
+
* for — and NEVER the filtered hits. `git grep -l` matches a bare `=======` the
|
|
987
|
+
* same as a real `<<<<<<<`, while the parser deliberately does not trip on a
|
|
988
|
+
* lone separator. Comparing against hits would therefore report every file
|
|
989
|
+
* containing a single 7-equals line as "lost", hard-blocking its push forever:
|
|
990
|
+
* a repo-wide denial of service on the gate, invisible today only because this
|
|
991
|
+
* repo happens to contain zero such lines. */
|
|
992
|
+
export function unrecoveredMatches(matched, recovered) {
|
|
993
|
+
const seen = new Set(recovered);
|
|
994
|
+
return matched.filter((p) => !seen.has(p));
|
|
724
995
|
}
|
|
725
996
|
/** Which rebase state git has left in this worktree, if any. Reads the
|
|
726
997
|
* worktree's own git dir, so it is correct inside `git worktree` checkouts. */
|
|
@@ -738,6 +1009,96 @@ export function rebaseInProgress() {
|
|
|
738
1009
|
return "rebase-apply";
|
|
739
1010
|
return null;
|
|
740
1011
|
}
|
|
1012
|
+
/** Does `ref` name a real commit here? Used to reject a base we'd only fail to
|
|
1013
|
+
* diff against later — an auto-resolved base that errors would turn a clean
|
|
1014
|
+
* tree into an enumeration failure (exit 8) for no gain. */
|
|
1015
|
+
function refExists(ref) {
|
|
1016
|
+
try {
|
|
1017
|
+
execSync(`git rev-parse --verify --quiet ${shellQuote(`${ref}^{commit}`)}`, { stdio: ["ignore", "ignore", "ignore"] });
|
|
1018
|
+
return true;
|
|
1019
|
+
}
|
|
1020
|
+
catch {
|
|
1021
|
+
return false;
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
/** The commit an in-flight rebase is replaying ONTO, read from the rebase state
|
|
1025
|
+
* git itself wrote (`.git/rebase-merge/onto` or `.git/rebase-apply/onto`).
|
|
1026
|
+
* `rebaseInProgress()` already names the directory, so this is a file read. */
|
|
1027
|
+
export function rebaseOnto() {
|
|
1028
|
+
const state = rebaseInProgress();
|
|
1029
|
+
if (!state)
|
|
1030
|
+
return null;
|
|
1031
|
+
try {
|
|
1032
|
+
const gitDir = execSync("git rev-parse --absolute-git-dir", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
|
|
1033
|
+
const onto = readFileSync(join(gitDir, state, "onto"), "utf8").trim();
|
|
1034
|
+
return onto && refExists(onto) ? onto : null;
|
|
1035
|
+
}
|
|
1036
|
+
catch {
|
|
1037
|
+
return null;
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
/** The remote's default branch, from `refs/remotes/origin/HEAD`. */
|
|
1041
|
+
export function originHeadRef() {
|
|
1042
|
+
try {
|
|
1043
|
+
const ref = execSync("git symbolic-ref --short refs/remotes/origin/HEAD", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
|
|
1044
|
+
return ref && refExists(ref) ? ref : null;
|
|
1045
|
+
}
|
|
1046
|
+
catch {
|
|
1047
|
+
return null;
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
/** Last-ditch default branch when `origin/HEAD` was never set (a plain `git
|
|
1051
|
+
* clone --depth` or a hand-added remote leaves it unset). */
|
|
1052
|
+
export function defaultBranchRef() {
|
|
1053
|
+
for (const candidate of ["origin/main", "origin/master"]) {
|
|
1054
|
+
if (refExists(candidate))
|
|
1055
|
+
return candidate;
|
|
1056
|
+
}
|
|
1057
|
+
return null;
|
|
1058
|
+
}
|
|
1059
|
+
/**
|
|
1060
|
+
* Resolve the base `conflict-check` scans against (issue #412, finding 3).
|
|
1061
|
+
*
|
|
1062
|
+
* Without a base the check is VACUOUS at exactly the moment it matters. Once
|
|
1063
|
+
* `git rebase --continue` has COMMITTED the markers, nothing is unmerged and
|
|
1064
|
+
* nothing differs from HEAD, so both of the local enumeration sources are empty
|
|
1065
|
+
* and the gate prints `{"clean":true,"scanned":0}` and exits 0 — over a tree
|
|
1066
|
+
* whose HEAD blob literally contains `<<<<<<< HEAD`. The same tree with
|
|
1067
|
+
* `--base main` yields 3 hits and exit 8.
|
|
1068
|
+
*
|
|
1069
|
+
* Precedence, most-specific first:
|
|
1070
|
+
* 1. `rebase-onto` — mid-rebase, the commit git is actually replaying onto is
|
|
1071
|
+
* the true base, whatever anyone typed.
|
|
1072
|
+
* 2. `origin-head` / 3. `default-branch` — the repo's own default branch.
|
|
1073
|
+
* 4. `explicit` — the operator's `--base`.
|
|
1074
|
+
*
|
|
1075
|
+
* NOT `@{upstream}`: that resolves to `origin/<same-branch>`, which is the
|
|
1076
|
+
* branch's own remote copy and not the PR base at all — diffing a branch against
|
|
1077
|
+
* itself is a vacuous scan wearing a base's clothes — and it is unset on any
|
|
1078
|
+
* freshly created branch anyway.
|
|
1079
|
+
*
|
|
1080
|
+
* Ranking `explicit` LAST is deliberate and must stay that way: a stale `--base`
|
|
1081
|
+
* flag must not override the commit git is actually replaying onto mid-rebase,
|
|
1082
|
+
* and ranking it up would change which single ref `base` reports as covered.
|
|
1083
|
+
*
|
|
1084
|
+
* `--base` keeps its documented ADDITIVE contract at the call site: an explicit
|
|
1085
|
+
* ref the precedence didn't pick is still scanned, it just isn't what gets
|
|
1086
|
+
* reported as the resolved base — the caller reports the FULL set it diffed
|
|
1087
|
+
* against as `bases`, so nothing scanned goes unnamed (PR #434 review). Pure
|
|
1088
|
+
* (probes are injected) so the precedence is unit-testable without a rebase
|
|
1089
|
+
* fixture.
|
|
1090
|
+
*/
|
|
1091
|
+
export function resolveScanBase(i) {
|
|
1092
|
+
if (i.onto)
|
|
1093
|
+
return { base: i.onto, source: "rebase-onto" };
|
|
1094
|
+
if (i.originHead)
|
|
1095
|
+
return { base: i.originHead, source: "origin-head" };
|
|
1096
|
+
if (i.defaultBranch)
|
|
1097
|
+
return { base: i.defaultBranch, source: "default-branch" };
|
|
1098
|
+
if (i.explicit)
|
|
1099
|
+
return { base: i.explicit, source: "explicit" };
|
|
1100
|
+
return null;
|
|
1101
|
+
}
|
|
741
1102
|
/**
|
|
742
1103
|
* Whether `pr sync` may start, given the worktree's state. The loop reuses ONE
|
|
743
1104
|
* worktree, so a worker turn that dies mid-`--keep-conflicts` strands it on a
|
|
@@ -745,13 +1106,25 @@ export function rebaseInProgress() {
|
|
|
745
1106
|
* misleading `On branch "HEAD" but PR #N is "x"` and every later loop git op
|
|
746
1107
|
* failed. Each refusal names the state AND the exact command that clears it.
|
|
747
1108
|
* Pure (state is injected) so it's unit-testable without a git fixture.
|
|
1109
|
+
*
|
|
1110
|
+
* `base` is the ref the printed re-check names, and it must be CONCRETE (PR #434
|
|
1111
|
+
* review, finding 1). This branch fires only when a rebase IS in progress, so
|
|
1112
|
+
* the caller always has one — the rebase's own `onto`, else `origin/<the PR's
|
|
1113
|
+
* base>` — and the `origin/<base>` placeholder printed here before was a command
|
|
1114
|
+
* the operator could not run: `conflict-check --base 'origin/<base>'` fails to
|
|
1115
|
+
* resolve the ref and exits 8 via `enumerationFailed`, i.e. the recovery hint
|
|
1116
|
+
* itself reported "the gate proved nothing". The placeholder survives only as
|
|
1117
|
+
* the last resort for a caller that truly has neither source.
|
|
1118
|
+
*
|
|
1119
|
+
* `root` anchors the printed `git add` for a subdirectory shell (`anchoredGit`).
|
|
748
1120
|
*/
|
|
749
1121
|
export function syncEntryGuard(i) {
|
|
750
1122
|
const checkout = `git checkout ${shellQuote(i.head)}`;
|
|
751
1123
|
if (i.rebase) {
|
|
1124
|
+
const stage = anchoredGit(i.root ?? null, "add -- <file>…");
|
|
752
1125
|
return { ok: false, message: `A rebase (${i.rebase}) is already in progress in this worktree — PR #${i.number} can't sync until it is cleared.\n`
|
|
753
1126
|
+ `This is what an abandoned \`pr sync --keep-conflicts\` leaves behind: HEAD is detached mid-rebase.\n`
|
|
754
|
-
+ `Discard it: git rebase --abort (or finish it: resolve,
|
|
1127
|
+
+ `Discard it: git rebase --abort (or finish it: resolve, ${stage}, ${recheckCommand(i.base || "origin/<base>")}, git rebase --continue)` };
|
|
755
1128
|
}
|
|
756
1129
|
if (i.currentBranch === "HEAD") {
|
|
757
1130
|
return { ok: false, message: `HEAD is detached in this worktree, so PR #${i.number} ("${i.head}") is not checked out.\n`
|
package/dist/commands/pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|