sfdx-git-delta 7.2.0 → 7.3.0
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/README.md +17 -4
- package/lib/adapter/GitAdapter.d.ts +19 -13
- package/lib/adapter/GitAdapter.js +105 -96
- package/lib/adapter/GitAdapter.js.map +1 -1
- package/lib/adapter/ioExecutor.d.ts +5 -6
- package/lib/adapter/ioExecutor.js +22 -22
- package/lib/adapter/ioExecutor.js.map +1 -1
- package/lib/adapter/treeIndex.d.ts +7 -4
- package/lib/adapter/treeIndex.js +34 -0
- package/lib/adapter/treeIndex.js.map +1 -1
- package/lib/adapter/treeReader.d.ts +8 -0
- package/lib/adapter/treeReader.js +22 -0
- package/lib/adapter/treeReader.js.map +1 -0
- package/lib/commands/sgd/source/delta.d.ts +1 -0
- package/lib/commands/sgd/source/delta.js +5 -0
- package/lib/commands/sgd/source/delta.js.map +1 -1
- package/lib/main.js +27 -9
- package/lib/main.js.map +1 -1
- package/lib/post-processor/baseProcessor.d.ts +4 -4
- package/lib/post-processor/baseProcessor.js +6 -5
- package/lib/post-processor/baseProcessor.js.map +1 -1
- package/lib/post-processor/flowTranslationProcessor.d.ts +0 -3
- package/lib/post-processor/flowTranslationProcessor.js +1 -5
- package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
- package/lib/post-processor/includeProcessor.d.ts +2 -3
- package/lib/post-processor/includeProcessor.js +4 -4
- package/lib/post-processor/includeProcessor.js.map +1 -1
- package/lib/post-processor/postProcessorManager.d.ts +2 -3
- package/lib/post-processor/postProcessorManager.js +4 -4
- package/lib/post-processor/postProcessorManager.js.map +1 -1
- package/lib/service/containedDecomposedHandler.d.ts +2 -2
- package/lib/service/containedDecomposedHandler.js +3 -3
- package/lib/service/containedDecomposedHandler.js.map +1 -1
- package/lib/service/customObjectHandler.js +1 -1
- package/lib/service/customObjectHandler.js.map +1 -1
- package/lib/service/diffLineInterpreter.d.ts +3 -5
- package/lib/service/diffLineInterpreter.js +6 -9
- package/lib/service/diffLineInterpreter.js.map +1 -1
- package/lib/service/inFileHandler.d.ts +2 -2
- package/lib/service/inFileHandler.js +3 -3
- package/lib/service/inFileHandler.js.map +1 -1
- package/lib/service/inFolderHandler.js +1 -1
- package/lib/service/inFolderHandler.js.map +1 -1
- package/lib/service/inResourceHandler.js +3 -2
- package/lib/service/inResourceHandler.js.map +1 -1
- package/lib/service/reportingFolderHandler.d.ts +2 -2
- package/lib/service/reportingFolderHandler.js +2 -2
- package/lib/service/reportingFolderHandler.js.map +1 -1
- package/lib/service/sharedFolderHandler.d.ts +2 -2
- package/lib/service/sharedFolderHandler.js +2 -2
- package/lib/service/sharedFolderHandler.js.map +1 -1
- package/lib/service/standardHandler.d.ts +4 -2
- package/lib/service/standardHandler.js +8 -3
- package/lib/service/standardHandler.js.map +1 -1
- package/lib/service/typeHandlerFactory.d.ts +6 -4
- package/lib/service/typeHandlerFactory.js +12 -11
- package/lib/service/typeHandlerFactory.js.map +1 -1
- package/lib/types/config.d.ts +1 -0
- package/lib/types/runContext.d.ts +21 -0
- package/lib/types/runContext.js +12 -0
- package/lib/types/runContext.js.map +1 -0
- package/lib/utils/configValidator.d.ts +1 -0
- package/lib/utils/configValidator.js +24 -2
- package/lib/utils/configValidator.js.map +1 -1
- package/lib/utils/fsHelper.d.ts +3 -2
- package/lib/utils/fsHelper.js +9 -10
- package/lib/utils/fsHelper.js.map +1 -1
- package/lib/utils/metadataBoundaryResolver.d.ts +7 -5
- package/lib/utils/metadataBoundaryResolver.js +18 -21
- package/lib/utils/metadataBoundaryResolver.js.map +1 -1
- package/lib/utils/renameResolver.d.ts +2 -3
- package/lib/utils/renameResolver.js +2 -2
- package/lib/utils/renameResolver.js.map +1 -1
- package/lib/utils/repoGitDiff.d.ts +1 -0
- package/lib/utils/repoGitDiff.js +17 -1
- package/lib/utils/repoGitDiff.js.map +1 -1
- package/messages/delta.md +12 -0
- package/oclif.manifest.json +9 -2
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
> [!WARNING]
|
|
27
27
|
> **Potentially breaking changes in v6**: Check out the [v6 migration guide](docs/migrating-to-v6.0.0.md) to see how you could be impacted by some changes in the new major `v6` version of the plugin, and how to migrate to this version.
|
|
28
28
|
|
|
29
|
+
> [!WARNING]
|
|
30
|
+
> **Breaking change for programmatic consumers**: `Config.mergeBase` is now a required field. Add `mergeBase: false` to your config to preserve today's behavior. See the [merge-base migration guide](docs/migrating-config-merge-base.md) for details.
|
|
31
|
+
|
|
29
32
|
<!-- TABLE OF CONTENTS -->
|
|
30
33
|
<details>
|
|
31
34
|
<summary>Table of Contents</summary>
|
|
@@ -149,7 +152,7 @@ Generate incremental package manifest and source content
|
|
|
149
152
|
|
|
150
153
|
```
|
|
151
154
|
USAGE
|
|
152
|
-
$ sf sgd source delta -f <value> [--json] [--flags-dir <value>] [-t <value>] [-d] [-o <value>] [-r <value>] [-s
|
|
155
|
+
$ sf sgd source delta -f <value> [--json] [--flags-dir <value>] [-t <value>] [-b] [-d] [-o <value>] [-r <value>] [-s
|
|
153
156
|
<value>...] [-i <value>] [-D <value>] [-n <value>] [-N <value>] [-M <value>] [-c <value>] [-W] [-a <value>]
|
|
154
157
|
|
|
155
158
|
FLAGS
|
|
@@ -159,6 +162,8 @@ FLAGS
|
|
|
159
162
|
-W, --ignore-whitespace ignore git diff whitespace (space, tab, eol) changes
|
|
160
163
|
-a, --api-version=<value> salesforce metadata API version, default to sfdx-project.json
|
|
161
164
|
"sourceApiVersion" attribute or latest version
|
|
165
|
+
-b, --merge-base diff from the merge base of --from and --to instead of --from itself (git
|
|
166
|
+
three-dot semantics)
|
|
162
167
|
-c, --changes-manifest=<value> path to a JSON file grouping changed components by kind (add, modify,
|
|
163
168
|
delete, rename); setting this flag also enables git rename detection
|
|
164
169
|
-d, --generate-delta generate delta files in [--output-dir] folder
|
|
@@ -184,6 +189,8 @@ EXAMPLES
|
|
|
184
189
|
$ sf sgd source delta --from "origin/development" --output-dir incremental
|
|
185
190
|
- Build incremental manifest and source from the development branch
|
|
186
191
|
$ sf sgd source delta --from "origin/development" --generate-delta --output-dir incremental
|
|
192
|
+
- Build incremental manifest from where the current branch diverged from main
|
|
193
|
+
$ sf sgd source delta --from "main" --merge-base --output-dir incremental
|
|
187
194
|
|
|
188
195
|
FLAG DESCRIPTIONS
|
|
189
196
|
-a, --api-version=<value>
|
|
@@ -207,7 +214,7 @@ FLAG DESCRIPTIONS
|
|
|
207
214
|
`--source-dir force-app` does not match `nested/force-app/...`.
|
|
208
215
|
```
|
|
209
216
|
|
|
210
|
-
_See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.
|
|
217
|
+
_See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.3.0/src/commands/sgd/source/delta.ts)_
|
|
211
218
|
<!-- commandsstop -->
|
|
212
219
|
|
|
213
220
|
### Windows users
|
|
@@ -230,6 +237,9 @@ In CI/CD pipelines, for most of the CI/CD providers, the checkout operation fetc
|
|
|
230
237
|
You need to fetch all the needed commits as the plugin needs access to the branch being compared.
|
|
231
238
|
Example for Github action checkout [here](https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches).
|
|
232
239
|
If you use `-n` (`--include-file`) with metadata contained inside files you will need to have the full repo locally for the command to fully work.
|
|
240
|
+
With `--merge-base [-b]`, a shallow clone is an even sharper trap: `--from` and `--to` can each resolve to a valid commit while their histories still don't connect within the fetched depth, so SGD reports "no merge base found" even though the refs themselves are fine. Fetch enough history for the two branches to actually share an ancestor, not just enough for each ref to resolve.
|
|
241
|
+
|
|
242
|
+
GitHub Actions' `pull_request` trigger checks out a synthetic merge commit whose parent already **is** the base branch tip, so `merge-base(HEAD, main)` resolves to `main`'s tip and `--merge-base` silently becomes a no-op (`--from main --merge-base` behaves like `--from main`). If you need true divergence semantics in that context, target the PR head commit directly — `--to <head sha>` (from the `pull_request` event payload) — or check out `ref: <head sha>` instead of the default merge ref.
|
|
233
243
|
|
|
234
244
|
In CI/CD pipelines, branches are not checked out locally when the repository is cloned, so you must specify the remote prefix.
|
|
235
245
|
If you do not specify the remote in CI context, the git pointer check will raise an error (as the branch is not created locally).
|
|
@@ -282,12 +292,14 @@ sf sgd source delta --to develop --from main --output-dir .
|
|
|
282
292
|
```
|
|
283
293
|
|
|
284
294
|
- **Comparing branches (from a common ancestor)**
|
|
285
|
-
To compare the `develop` branch since its common ancestor with the `main` branch (i.e. ignoring the changes performed in the `main` branch after `develop` creation)
|
|
295
|
+
To compare the `develop` branch since its common ancestor with the `main` branch (i.e. ignoring the changes performed in the `main` branch after `develop` creation), use `--merge-base [-b]`:
|
|
286
296
|
|
|
287
297
|
```sh
|
|
288
|
-
sf sgd source delta --to develop --from
|
|
298
|
+
sf sgd source delta --to develop --from main --merge-base --output-dir .
|
|
289
299
|
```
|
|
290
300
|
|
|
301
|
+
This is equivalent to `git diff main...develop` (three-dot, common-ancestor semantics). Unlike the `$(git merge-base ...)` shell form, `--merge-base` resolves inside `--repo-dir` and needs no shell — the shell form always resolves in the current directory regardless of `--repo-dir`.
|
|
302
|
+
|
|
291
303
|
## Walkthrough
|
|
292
304
|
|
|
293
305
|
Consider the following scenario:
|
|
@@ -609,6 +621,7 @@ import sgd from 'sfdx-git-delta'
|
|
|
609
621
|
const work = await sgd({
|
|
610
622
|
to: '', // commit sha to where the diff is done. [default : "HEAD"]
|
|
611
623
|
from: '', // (required) commit sha from where the diff is done. [default : git rev-list --max-parents=0 HEAD]
|
|
624
|
+
mergeBase: false, // (required) resolve `from` to the merge base of `from`/`to` first. [default : false]
|
|
612
625
|
output: '', // source package specific output. [default : "./output"]
|
|
613
626
|
apiVersion: '', // salesforce API version. [default : latest]
|
|
614
627
|
repo: '', // git repository location. [default : "."]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Readable } from 'node:stream';
|
|
2
|
-
import { type ObjectId, type Repository } from '@scolladon/tsgit';
|
|
2
|
+
import { type Commit, type ObjectId, type Repository } from '@scolladon/tsgit';
|
|
3
3
|
import type { Config } from '../types/config.js';
|
|
4
4
|
import type { FileGitRef } from '../types/git.js';
|
|
5
5
|
import type { Pathspec } from '../utils/pathspec.js';
|
|
@@ -9,24 +9,33 @@ export type DiffScopeVerdict = {
|
|
|
9
9
|
changesSeen: number;
|
|
10
10
|
linesYielded: number;
|
|
11
11
|
};
|
|
12
|
+
export type DiffSpec = Readonly<{
|
|
13
|
+
from: string;
|
|
14
|
+
to: string;
|
|
15
|
+
detectRenames: boolean;
|
|
16
|
+
ignoreWhitespace: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
export type DiffRequest = Readonly<{
|
|
19
|
+
spec: DiffSpec;
|
|
20
|
+
verdict: DiffScopeVerdict;
|
|
21
|
+
scopes: readonly Pathspec[];
|
|
22
|
+
}>;
|
|
12
23
|
export default class GitAdapter implements GitBlobReader {
|
|
13
|
-
|
|
24
|
+
private readonly repo;
|
|
14
25
|
private static instances;
|
|
15
26
|
private static keyFor;
|
|
16
27
|
static getInstance(config: Config): GitAdapter;
|
|
17
28
|
static closeAll(): Promise<void>;
|
|
18
|
-
protected readonly treeIndex: Map<string, TreeIndex>;
|
|
19
29
|
protected readonly blobIdIndex: Map<string, Map<string, ObjectId>>;
|
|
20
30
|
private repoHandle;
|
|
21
31
|
private constructor();
|
|
22
32
|
protected getRepo(): Promise<Repository>;
|
|
23
33
|
close(): Promise<void>;
|
|
24
|
-
configureRepository(): Promise<void>;
|
|
25
34
|
parseRev(ref: string): Promise<string>;
|
|
26
|
-
|
|
35
|
+
buildTreeIndex(revision: string, scopePaths: readonly string[]): Promise<TreeIndex | undefined>;
|
|
36
|
+
protected peelToCommit(oid: ObjectId, label: string): Promise<Commit>;
|
|
27
37
|
protected indexRevision(revision: string): Promise<Map<string, ObjectId>>;
|
|
28
|
-
|
|
29
|
-
pathExists(path: string, revision?: string): Promise<boolean>;
|
|
38
|
+
getMergeBase(from: string, to: string): Promise<string | undefined>;
|
|
30
39
|
getFirstCommitRef(): Promise<string>;
|
|
31
40
|
protected resolveObjectId(forRef: FileGitRef): Promise<ObjectId>;
|
|
32
41
|
protected readBlobBuffer(forRef: FileGitRef): Promise<Buffer>;
|
|
@@ -40,13 +49,10 @@ export default class GitAdapter implements GitBlobReader {
|
|
|
40
49
|
stream: Readable;
|
|
41
50
|
}>;
|
|
42
51
|
getStringContent(forRef: FileGitRef): Promise<string>;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
listDirAtRevision(dir: string, revision: string): Promise<string[]>;
|
|
46
|
-
grepUnderPaths(pattern: string, path: string | string[], revision?: string): Promise<string[]>;
|
|
47
|
-
grepMatchingPathspecs(pattern: string, path: string | string[], revision?: string): Promise<string[]>;
|
|
52
|
+
grepUnderPaths(pattern: string, path: string | string[], revision: string): Promise<string[]>;
|
|
53
|
+
grepMatchingPathspecs(pattern: string, path: string | string[], revision: string): Promise<string[]>;
|
|
48
54
|
private grepBlobs;
|
|
49
|
-
streamDiffLines(
|
|
55
|
+
streamDiffLines(request: DiffRequest): AsyncGenerator<string>;
|
|
50
56
|
getUnmatchedSourceScopes(verdict: DiffScopeVerdict, scopes: readonly Pathspec[]): readonly string[];
|
|
51
57
|
private requestDiff;
|
|
52
58
|
}
|
|
@@ -20,7 +20,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
20
20
|
* (grepBlobs, shared by
|
|
21
21
|
* grepUnderPaths and
|
|
22
22
|
* grepMatchingPathspecs)
|
|
23
|
-
* git
|
|
23
|
+
* git merge-base <from> <to> -> repo.primitives.mergeBase
|
|
24
24
|
*
|
|
25
25
|
* Fidelity note: grepBlobs matches content with JS RegExp semantics, not
|
|
26
26
|
* POSIX basic regex. Callers are expected to pass metacharacter-free
|
|
@@ -40,9 +40,8 @@ import { PassThrough, Readable } from 'node:stream';
|
|
|
40
40
|
import { openRepository, } from '@scolladon/tsgit';
|
|
41
41
|
import { UTF8_ENCODING } from '../constant/fsConstants.js';
|
|
42
42
|
import { HEAD } from '../constant/gitConstants.js';
|
|
43
|
-
import { pushAll } from '../utils/arrayUtils.js';
|
|
44
43
|
import { getErrorMessage } from '../utils/errorUtils.js';
|
|
45
|
-
import { treatPathSep } from '../utils/fsUtils.js';
|
|
44
|
+
import { sanitizePath, treatPathSep } from '../utils/fsUtils.js';
|
|
46
45
|
import { getLFSObjectContentPath, isLFS } from '../utils/gitLfsHelper.js';
|
|
47
46
|
import { log } from '../utils/LoggingDecorator.js';
|
|
48
47
|
import { Logger, lazy } from '../utils/LoggingService.js';
|
|
@@ -66,15 +65,21 @@ const IGNORE_WHITESPACE_OPTIONS = {
|
|
|
66
65
|
const LFS_MAGIC = Buffer.from('version https://git-lfs.github.com/spec/v1\n');
|
|
67
66
|
const LFS_POINTER_CAP = 1024;
|
|
68
67
|
export default class GitAdapter {
|
|
69
|
-
|
|
68
|
+
repo;
|
|
70
69
|
static instances = new Map();
|
|
70
|
+
// Normalises the pool key the same way ConfigValidator eventually
|
|
71
|
+
// normalises config.repo (fsUtils#sanitizePath), so two configs that
|
|
72
|
+
// differ only by an unnormalised repo path (e.g. `./repo` vs `repo`)
|
|
73
|
+
// still resolve to one instance. ConfigValidator pools an adapter on the
|
|
74
|
+
// raw config.repo before _sanitizeConfig runs, so without this a single
|
|
75
|
+
// `--repo-dir ./repo` invocation would still allocate two instances.
|
|
71
76
|
static keyFor(config) {
|
|
72
|
-
return
|
|
77
|
+
return sanitizePath(config.repo);
|
|
73
78
|
}
|
|
74
79
|
static getInstance(config) {
|
|
75
80
|
const key = GitAdapter.keyFor(config);
|
|
76
81
|
if (!GitAdapter.instances.has(key)) {
|
|
77
|
-
GitAdapter.instances.set(key, new GitAdapter(
|
|
82
|
+
GitAdapter.instances.set(key, new GitAdapter(key));
|
|
78
83
|
}
|
|
79
84
|
return GitAdapter.instances.get(key);
|
|
80
85
|
}
|
|
@@ -84,19 +89,20 @@ export default class GitAdapter {
|
|
|
84
89
|
}
|
|
85
90
|
GitAdapter.instances.clear();
|
|
86
91
|
}
|
|
87
|
-
treeIndex;
|
|
88
92
|
// Per revision: repo-relative path -> blob ObjectId. The tsgit counterpart
|
|
89
|
-
// of `git cat-file --batch` oid:path resolution.
|
|
93
|
+
// of `git cat-file --batch` oid:path resolution. Deterministic per
|
|
94
|
+
// revision and safe to share across every run against this repository —
|
|
95
|
+
// unlike the tree index (see buildTreeIndex), nothing here varies by
|
|
96
|
+
// caller-supplied scope.
|
|
90
97
|
blobIdIndex;
|
|
91
98
|
repoHandle = null;
|
|
92
|
-
constructor(
|
|
93
|
-
this.
|
|
94
|
-
this.treeIndex = new Map();
|
|
99
|
+
constructor(repo) {
|
|
100
|
+
this.repo = repo;
|
|
95
101
|
this.blobIdIndex = new Map();
|
|
96
102
|
}
|
|
97
103
|
getRepo() {
|
|
98
104
|
if (!this.repoHandle) {
|
|
99
|
-
this.repoHandle = openRepository({ cwd: this.
|
|
105
|
+
this.repoHandle = openRepository({ cwd: this.repo });
|
|
100
106
|
}
|
|
101
107
|
return this.repoHandle;
|
|
102
108
|
}
|
|
@@ -107,11 +113,6 @@ export default class GitAdapter {
|
|
|
107
113
|
this.repoHandle = null;
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
|
-
async configureRepository() {
|
|
111
|
-
// core.longpaths / core.quotepath exist to fix `git` CLI output and
|
|
112
|
-
// Windows path handling in subprocesses. tsgit reads the object store
|
|
113
|
-
// directly: nothing to configure.
|
|
114
|
-
}
|
|
115
116
|
async parseRev(ref) {
|
|
116
117
|
try {
|
|
117
118
|
const repo = await this.getRepo();
|
|
@@ -121,25 +122,46 @@ export default class GitAdapter {
|
|
|
121
122
|
throw mapTsgitError(error, ref);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
// Builds and RETURNS a tree index for (revision, scopePaths) instead of
|
|
126
|
+
// caching it: the caller (main.ts) owns the result and threads it to
|
|
127
|
+
// every reader, so a builder/reader scope mismatch becomes structurally
|
|
128
|
+
// impossible rather than a silently-missed cache key. On failure this
|
|
129
|
+
// degrades exactly like the old preBuildTreeIndex did — debug-log and
|
|
130
|
+
// return undefined, leaving the caller with no index for that revision
|
|
131
|
+
// (readers treat "no index" as an empty read, never a throw).
|
|
132
|
+
async buildTreeIndex(revision, scopePaths) {
|
|
128
133
|
try {
|
|
129
134
|
const blobIds = await this.indexRevision(revision);
|
|
130
135
|
const index = new TreeIndex();
|
|
131
|
-
const scopes = scopePaths.filter(
|
|
136
|
+
const scopes = scopePaths.filter(path => !ROOT_PATHS.has(path));
|
|
132
137
|
for (const path of blobIds.keys()) {
|
|
133
138
|
if (scopes.length === 0 || inScope(path, scopes)) {
|
|
134
139
|
index.add(path);
|
|
135
140
|
}
|
|
136
141
|
}
|
|
137
|
-
|
|
142
|
+
return index;
|
|
138
143
|
}
|
|
139
144
|
catch (error) {
|
|
140
|
-
Logger.debug(lazy `
|
|
145
|
+
Logger.debug(lazy `buildTreeIndex: tree walk for '${revision}' failed: ${() => getErrorMessage(error)}`);
|
|
146
|
+
return undefined;
|
|
141
147
|
}
|
|
142
148
|
}
|
|
149
|
+
// revParse returns the tag OBJECT oid for annotated tags (no auto-peel),
|
|
150
|
+
// so follow the tag chain down to the tagged commit — matching
|
|
151
|
+
// `git ls-tree -r <tag>` / `git merge-base` peeling semantics. `label`
|
|
152
|
+
// identifies the original ref/oid for the error message (it can differ
|
|
153
|
+
// from `oid` itself, e.g. a revision string vs. its resolved object id).
|
|
154
|
+
async peelToCommit(oid, label) {
|
|
155
|
+
const repo = await this.getRepo();
|
|
156
|
+
let target = await repo.primitives.readObject(oid);
|
|
157
|
+
while (target.type === 'tag') {
|
|
158
|
+
target = await repo.primitives.readObject(target.data.object);
|
|
159
|
+
}
|
|
160
|
+
if (target.type !== 'commit') {
|
|
161
|
+
throw new Error(`'${label}' does not resolve to a commit`);
|
|
162
|
+
}
|
|
163
|
+
return target;
|
|
164
|
+
}
|
|
143
165
|
// Flattens the full tree at `revision` once and caches path -> blob oid.
|
|
144
166
|
// Shared by the tree index, blob reads, archive streaming and grep.
|
|
145
167
|
// flattenTree is the bulk traversal path (one call, no per-entry yields);
|
|
@@ -151,17 +173,8 @@ export default class GitAdapter {
|
|
|
151
173
|
}
|
|
152
174
|
const repo = await this.getRepo();
|
|
153
175
|
const revisionId = await repo.revParse(revision);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
// tree — matching `git ls-tree -r <tag>` semantics.
|
|
157
|
-
let target = await repo.primitives.readObject(revisionId);
|
|
158
|
-
while (target.type === 'tag') {
|
|
159
|
-
target = await repo.primitives.readObject(target.data.object);
|
|
160
|
-
}
|
|
161
|
-
if (target.type !== 'commit') {
|
|
162
|
-
throw new Error(`'${revision}' does not resolve to a commit`);
|
|
163
|
-
}
|
|
164
|
-
const { entries } = await repo.primitives.flattenTree(target.data.tree);
|
|
176
|
+
const commit = await this.peelToCommit(revisionId, revision);
|
|
177
|
+
const { entries } = await repo.primitives.flattenTree(commit.data.tree);
|
|
165
178
|
const blobIds = new Map();
|
|
166
179
|
for (const [path, entry] of entries) {
|
|
167
180
|
if (BLOB_MODES.has(entry.mode)) {
|
|
@@ -171,16 +184,39 @@ export default class GitAdapter {
|
|
|
171
184
|
this.blobIdIndex.set(revision, blobIds);
|
|
172
185
|
return blobIds;
|
|
173
186
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
async
|
|
183
|
-
|
|
187
|
+
// Equivalent to `git merge-base <from> <to>`, resolved in-process via
|
|
188
|
+
// tsgit — no local git binary needed. `from`/`to` are resolved through
|
|
189
|
+
// revParse the same way indexRevision does, so this method is total over
|
|
190
|
+
// any revision string (ref, short SHA, `HEAD~2`, …) rather than encoding
|
|
191
|
+
// an "already an ObjectId" precondition in a comment. tsgit's `[]` result
|
|
192
|
+
// (no common ancestor / unrelated histories) is a legitimate git answer,
|
|
193
|
+
// not an exception — surfacing it as a user-facing error is the caller's
|
|
194
|
+
// job (ConfigValidator), not this adapter's.
|
|
195
|
+
async getMergeBase(from, to) {
|
|
196
|
+
try {
|
|
197
|
+
const repo = await this.getRepo();
|
|
198
|
+
const [fromId, toId] = await Promise.all([
|
|
199
|
+
repo.revParse(from),
|
|
200
|
+
repo.revParse(to),
|
|
201
|
+
]);
|
|
202
|
+
const [fromCommit, toCommit] = await Promise.all([
|
|
203
|
+
this.peelToCommit(fromId, from),
|
|
204
|
+
this.peelToCommit(toId, to),
|
|
205
|
+
]);
|
|
206
|
+
// Criss-cross histories can legitimately have several common
|
|
207
|
+
// ancestors; tsgit's mergeBase primitive returns all of them. Taking
|
|
208
|
+
// only the first matches `git merge-base`'s own default (without
|
|
209
|
+
// --all, which returns just one candidate), so this is a deliberate
|
|
210
|
+
// choice, not an oversight.
|
|
211
|
+
const [base] = await repo.primitives.mergeBase([
|
|
212
|
+
fromCommit.id,
|
|
213
|
+
toCommit.id,
|
|
214
|
+
]);
|
|
215
|
+
return base;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
throw mapTsgitError(error, `${from}...${to}`);
|
|
219
|
+
}
|
|
184
220
|
}
|
|
185
221
|
async getFirstCommitRef() {
|
|
186
222
|
try {
|
|
@@ -220,7 +256,7 @@ export default class GitAdapter {
|
|
|
220
256
|
let content = await this.readBlobBuffer(forRef);
|
|
221
257
|
if (isLFS(content)) {
|
|
222
258
|
const lfsPath = getLFSObjectContentPath(content);
|
|
223
|
-
content = await readFile(join(this.
|
|
259
|
+
content = await readFile(join(this.repo, lfsPath));
|
|
224
260
|
}
|
|
225
261
|
return content;
|
|
226
262
|
}
|
|
@@ -250,7 +286,7 @@ export default class GitAdapter {
|
|
|
250
286
|
// The pointer itself is tiny, so the accumulated-length guard above
|
|
251
287
|
// never fires for LFS-backed files — size the resolved object instead
|
|
252
288
|
// and escalate oversized ones onto the streaming path.
|
|
253
|
-
const lfsFile = join(this.
|
|
289
|
+
const lfsFile = join(this.repo, getLFSObjectContentPath(content));
|
|
254
290
|
const { size } = await stat(lfsFile);
|
|
255
291
|
if (size > SIZE_THRESHOLD) {
|
|
256
292
|
throw new EscalateToStreamingSignal(size, forRef);
|
|
@@ -286,7 +322,7 @@ export default class GitAdapter {
|
|
|
286
322
|
async pipeLfsObject(chunks, head, out) {
|
|
287
323
|
const pointer = await accumulatePointer(chunks, head);
|
|
288
324
|
const lfsPath = getLFSObjectContentPath(pointer);
|
|
289
|
-
createReadStream(join(this.
|
|
325
|
+
createReadStream(join(this.repo, lfsPath))
|
|
290
326
|
.on('error', (error) => out.destroy(error))
|
|
291
327
|
.pipe(out);
|
|
292
328
|
}
|
|
@@ -309,44 +345,18 @@ export default class GitAdapter {
|
|
|
309
345
|
const content = await this.getBufferContent(forRef);
|
|
310
346
|
return content.toString(UTF8_ENCODING);
|
|
311
347
|
}
|
|
312
|
-
getFilesPathCached(path, revision) {
|
|
313
|
-
const index = this.treeIndex.get(revision);
|
|
314
|
-
if (!index)
|
|
315
|
-
return [];
|
|
316
|
-
if (ROOT_PATHS.has(path))
|
|
317
|
-
return index.allPaths();
|
|
318
|
-
if (index.has(path))
|
|
319
|
-
return [path];
|
|
320
|
-
return index.getFilesUnder(path);
|
|
321
|
-
}
|
|
322
|
-
async getFilesPath(paths, revision = this.config.to) {
|
|
323
|
-
if (typeof paths === 'string') {
|
|
324
|
-
return this.getFilesPathCached(paths, revision);
|
|
325
|
-
}
|
|
326
|
-
const result = [];
|
|
327
|
-
for (const path of paths) {
|
|
328
|
-
pushAll(result, this.getFilesPathCached(path, revision));
|
|
329
|
-
}
|
|
330
|
-
return result;
|
|
331
|
-
}
|
|
332
|
-
async listDirAtRevision(dir, revision) {
|
|
333
|
-
const index = this.treeIndex.get(revision);
|
|
334
|
-
if (!index)
|
|
335
|
-
return [];
|
|
336
|
-
return index.listChildren(dir);
|
|
337
|
-
}
|
|
338
348
|
// Concrete-path surface: `path` comes straight off the repository (a git
|
|
339
349
|
// diff path run through treatPathSep, or MetadataElement.basePath) and is
|
|
340
350
|
// matched by literal directory prefix — never as a wildmatch pathspec, so
|
|
341
351
|
// a metacharacter incidentally present in a real path (e.g. an object
|
|
342
352
|
// folder named `Custom[1]__c`) can never be misread as a glob.
|
|
343
|
-
async grepUnderPaths(pattern, path, revision
|
|
353
|
+
async grepUnderPaths(pattern, path, revision) {
|
|
344
354
|
return this.grepBlobs(pattern, path, revision, buildLiteralMatcher);
|
|
345
355
|
}
|
|
346
356
|
// Pattern surface: `path` is an sgd-constructed pathspec (e.g.
|
|
347
357
|
// `<source>/*.translation-meta.xml`) and is matched with git pathspec
|
|
348
358
|
// wildmatch semantics (literal + glob).
|
|
349
|
-
async grepMatchingPathspecs(pattern, path, revision
|
|
359
|
+
async grepMatchingPathspecs(pattern, path, revision) {
|
|
350
360
|
return this.grepBlobs(pattern, path, revision, buildPathspecMatcher);
|
|
351
361
|
}
|
|
352
362
|
async grepBlobs(pattern, path, revision, buildMatcher) {
|
|
@@ -377,8 +387,9 @@ export default class GitAdapter {
|
|
|
377
387
|
// behind `config.changesManifest` like the subprocess `-M`), and the
|
|
378
388
|
// whitespace options drop whitespace-only modifications the way the
|
|
379
389
|
// subprocess numstat path does.
|
|
380
|
-
async *streamDiffLines(
|
|
381
|
-
const {
|
|
390
|
+
async *streamDiffLines(request) {
|
|
391
|
+
const { spec, verdict, scopes } = request;
|
|
392
|
+
const { changes } = await this.requestDiff(spec);
|
|
382
393
|
// git unions pathspecs (`-- . src` matches everything), so a root scope
|
|
383
394
|
// must not be filtered out here even when non-root scopes are also
|
|
384
395
|
// configured — the full, unfiltered source list is what `inScope`
|
|
@@ -401,52 +412,44 @@ export default class GitAdapter {
|
|
|
401
412
|
if (hasRootScope(scopes))
|
|
402
413
|
return [];
|
|
403
414
|
const unmatchable = nonRootScopes(scopes);
|
|
415
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator -- equivalent: `.length` is never negative so `>= 0` is a tautology, and forcing this operand true only changes the ternary when unmatchable.length === 0 — in which case `unmatchable` is itself [], deep-equal to the `: []` branch it would take instead
|
|
404
416
|
return unmatchable.length > 0 &&
|
|
405
417
|
verdict.changesSeen > 0 &&
|
|
406
418
|
verdict.linesYielded === 0
|
|
407
419
|
? unmatchable
|
|
408
420
|
: [];
|
|
409
421
|
}
|
|
410
|
-
async requestDiff() {
|
|
422
|
+
async requestDiff(spec) {
|
|
411
423
|
try {
|
|
412
424
|
const repo = await this.getRepo();
|
|
413
425
|
return await repo.diff({
|
|
414
|
-
from:
|
|
415
|
-
to:
|
|
426
|
+
from: spec.from,
|
|
427
|
+
to: spec.to,
|
|
416
428
|
recursive: true,
|
|
417
|
-
detectRenames:
|
|
418
|
-
...(
|
|
429
|
+
detectRenames: spec.detectRenames,
|
|
430
|
+
...(spec.ignoreWhitespace ? IGNORE_WHITESPACE_OPTIONS : {}),
|
|
419
431
|
});
|
|
420
432
|
}
|
|
421
433
|
catch (error) {
|
|
422
|
-
throw mapTsgitError(error, `${
|
|
434
|
+
throw mapTsgitError(error, `${spec.from}..${spec.to}`);
|
|
423
435
|
}
|
|
424
436
|
}
|
|
425
437
|
}
|
|
426
|
-
__decorate([
|
|
427
|
-
log
|
|
428
|
-
], GitAdapter.prototype, "configureRepository", null);
|
|
429
438
|
__decorate([
|
|
430
439
|
log
|
|
431
440
|
], GitAdapter.prototype, "parseRev", null);
|
|
432
441
|
__decorate([
|
|
433
442
|
log
|
|
434
|
-
], GitAdapter.prototype, "
|
|
443
|
+
], GitAdapter.prototype, "buildTreeIndex", null);
|
|
435
444
|
__decorate([
|
|
436
445
|
log
|
|
437
|
-
], GitAdapter.prototype, "
|
|
446
|
+
], GitAdapter.prototype, "getMergeBase", null);
|
|
438
447
|
__decorate([
|
|
439
448
|
log
|
|
440
449
|
], GitAdapter.prototype, "getFirstCommitRef", null);
|
|
441
450
|
__decorate([
|
|
442
451
|
log
|
|
443
452
|
], GitAdapter.prototype, "getStringContent", null);
|
|
444
|
-
__decorate([
|
|
445
|
-
log
|
|
446
|
-
], GitAdapter.prototype, "getFilesPath", null);
|
|
447
|
-
__decorate([
|
|
448
|
-
log
|
|
449
|
-
], GitAdapter.prototype, "listDirAtRevision", null);
|
|
450
453
|
__decorate([
|
|
451
454
|
log
|
|
452
455
|
], GitAdapter.prototype, "grepUnderPaths", null);
|
|
@@ -463,14 +466,18 @@ __decorate([
|
|
|
463
466
|
async function* normalizeChunks(source) {
|
|
464
467
|
yield* source;
|
|
465
468
|
}
|
|
466
|
-
const isLfsPointer = (head) =>
|
|
469
|
+
const isLfsPointer = (head) =>
|
|
470
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: the length guard is redundant. Buffer#subarray clamps rather than throwing when the end index exceeds the buffer, and Buffer#equals is false for operands of differing length, so the comparison alone already returns false for any head shorter than the magic
|
|
471
|
+
head.length >= LFS_MAGIC.length &&
|
|
467
472
|
head.subarray(0, LFS_MAGIC.length).equals(LFS_MAGIC);
|
|
468
473
|
const peekHead = async (chunks) => {
|
|
469
474
|
const parts = [];
|
|
470
475
|
let length = 0;
|
|
476
|
+
// Stryker disable next-line EqualityOperator -- equivalent: `<=` only shifts where the peek stops versus what the caller's remaining-chunk iteration picks up; the same total bytes reach forwardChunks/accumulatePointer either way, so the streamed output is byte-identical
|
|
471
477
|
while (length < LFS_MAGIC.length) {
|
|
472
478
|
const result = await chunks.next();
|
|
473
479
|
if (result.done) {
|
|
480
|
+
// Stryker disable next-line BooleanLiteral -- equivalent: `exhausted` only gates whether forwardChunks re-enters a `for await` over the generator, and per the async-generator protocol a generator that has returned done keeps returning done — so re-entering when already exhausted is a guaranteed zero-iteration no-op
|
|
474
481
|
return { head: Buffer.concat(parts, length), exhausted: true };
|
|
475
482
|
}
|
|
476
483
|
parts.push(result.value);
|
|
@@ -484,9 +491,11 @@ const writeChunk = async (out, chunk) => {
|
|
|
484
491
|
}
|
|
485
492
|
};
|
|
486
493
|
const forwardChunks = async (chunks, out, head, exhausted) => {
|
|
494
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator -- equivalent: writing a zero-length Buffer to a PassThrough is a no-op (no 'data' event, readableLength/writableLength unchanged, write() returns true), so calling writeChunk unconditionally when head is empty is indistinguishable from skipping it
|
|
487
495
|
if (head.length > 0) {
|
|
488
496
|
await writeChunk(out, head);
|
|
489
497
|
}
|
|
498
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: same reasoning as the `exhausted: true` return in peekHead — entering this loop on an already-exhausted generator iterates zero times
|
|
490
499
|
if (!exhausted) {
|
|
491
500
|
for await (const chunk of chunks) {
|
|
492
501
|
await writeChunk(out, chunk);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,19 +2,18 @@ import type { Writable } from 'node:stream';
|
|
|
2
2
|
import type { Config } from '../types/config.js';
|
|
3
3
|
import type { FileGitRef } from '../types/git.js';
|
|
4
4
|
import type { CopyOperation, StreamedContentOperation } from '../types/handlerResult.js';
|
|
5
|
+
import type { RunContext } from '../types/runContext.js';
|
|
5
6
|
import { type IgnoreHelper } from '../utils/ignoreHelper.js';
|
|
6
|
-
import GitAdapter from './GitAdapter.js';
|
|
7
7
|
import { type GitBlobReader } from './gitBlobReader.js';
|
|
8
8
|
export default class IOExecutor {
|
|
9
|
-
protected readonly
|
|
10
|
-
protected readonly
|
|
9
|
+
protected readonly ctx: RunContext;
|
|
10
|
+
protected readonly blobReader: GitBlobReader;
|
|
11
11
|
protected readonly processedPaths: Set<string>;
|
|
12
12
|
protected ignoreHelper: IgnoreHelper;
|
|
13
|
-
constructor(
|
|
14
|
-
|
|
13
|
+
constructor(ctx: RunContext, blobReader?: GitBlobReader);
|
|
14
|
+
protected get config(): Config;
|
|
15
15
|
execute(copies: readonly CopyOperation[]): Promise<void>;
|
|
16
16
|
protected _executeOperation(op: CopyOperation): Promise<void>;
|
|
17
|
-
protected _getGitAdapter(revision: string): GitAdapter;
|
|
18
17
|
private _isWithinOutput;
|
|
19
18
|
protected _executeGitFileCopy(op: {
|
|
20
19
|
path: string;
|