git-chopstick-core 0.1.9 → 0.1.11
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/CHANGELOG.md +36 -1
- package/README.md +8 -5
- package/dist/git/index.d.ts +1 -0
- package/dist/git/index.js +1 -0
- package/dist/git/index.js.map +1 -1
- package/dist/git/log.d.ts +17 -1
- package/dist/git/log.js +17 -0
- package/dist/git/log.js.map +1 -1
- package/dist/git/remote.d.ts +6 -0
- package/dist/git/remote.js +10 -2
- package/dist/git/remote.js.map +1 -1
- package/dist/git/rev-parse.d.ts +20 -0
- package/dist/git/rev-parse.js +26 -0
- package/dist/git/rev-parse.js.map +1 -1
- package/dist/git/show.d.ts +11 -0
- package/dist/git/show.js +17 -0
- package/dist/git/show.js.map +1 -1
- package/dist/git/stash.d.ts +8 -2
- package/dist/git/stash.js +12 -6
- package/dist/git/stash.js.map +1 -1
- package/dist/git/tag.d.ts +12 -0
- package/dist/git/tag.js +23 -0
- package/dist/git/tag.js.map +1 -1
- package/dist/models/index.d.ts +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/status.d.ts +6 -0
- package/dist/models/status.js +23 -0
- package/dist/models/status.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/integration.test.ts +365 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.11] — 2026-06-13
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **`getTags(path)`**: New path-based helper in `tag.ts` returning `ReadonlyArray<TagEntry>` (`{name, sha}[]`). Uses `git show-ref --tags -d` with annotated-tag normalization. Returns `[]` for tag-less repos and non-repo paths.
|
|
7
|
+
- **`getStashesByPath(path)`**: Path-based stash listing in `stash.ts`. `getStashes(repository)` delegates to it internally. `StashResult` type now exported.
|
|
8
|
+
- **`getFileAtCommit(repoPath, sha, file)`**: New helper in `show.ts` returning file content as `string` via `git show ${sha}:${file}`. Throws with descriptive message for non-existent files.
|
|
9
|
+
- **`appFileStatusToString(status)`**: New helper in `models/status.ts` converting `AppFileStatus` to human-readable strings (Added, Modified, Deleted, Renamed, Copied, Conflicted, Untracked).
|
|
10
|
+
- **`getChangedFilesFlat(repository, sha)`**: New helper in `log.ts` returning `ReadonlyArray<FlatFileChange>` (`{path, statusKind, oldPath?}`). Wraps `getChangedFiles` and flattens the `CommittedFileChange.status` union.
|
|
11
|
+
- **`examples/commit-file-browser.ts`**: CLI demo walking through the "Browse file tree at any commit" feature using `getFileAtCommit`, `getChangedFilesFlat`, and `getCommits`.
|
|
12
|
+
- **Integration tests**: 14 new tests covering `getTags` (3), `getFileAtCommit` (4), `getChangedFilesFlat` (3), `getStashesByPath` (3), and `appFileStatusToString` (1). Total: 45 tests.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- **`show.js` missing from git barrel**: `src/git/index.ts` now exports `show.js`, making `getFileAtCommit` (and `getBlobContents`/`getPartialBlobContents`) available through the root barrel.
|
|
16
|
+
- **`getTags` exit code 128**: Non-repo paths now return `[]` instead of throwing, by adding exit code 128 to `successExitCodes`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **README**: Updated API reference for `tag.ts`, `stash.ts`, `show.ts`, `log.ts`, and domain models table.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## [0.1.10] — 2026-06-13
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **`getRepositorySummary(path)`**: New helper combining `getRepositoryType` + `git rev-parse HEAD` + `getCurrentBranch` into one call. Returns `{ path, head, currentBranch? }` or `null` for bare/missing repos.
|
|
27
|
+
- **`getRemoteUrl(path, name)`**: Path-based helper using `git config --get remote.<name>.url`. `getRemoteURL(repository, name)` now delegates to it.
|
|
28
|
+
- **`spawnGit` progress example**: `examples/spawn-git-progress.ts` demonstrating how to wire `spawnGit` to `CheckoutProgressParser`, `FetchProgressParser`, `PushProgressParser`, `PullProgressParser`, and `CloneProgressParser`.
|
|
29
|
+
- **Integration tests**: 18 new tests covering `getRepositorySummary` (5), `getRemoteUrl` (3), `getRemotesFromPath` (2), `addRemote`/`removeRemote`/`setRemoteURL` (4), `merge` (2), `rebase` (1), and `stash` (1). Total: 31 tests.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **README**: Updated API reference with `getRepositorySummary` and `getRemoteUrl`/`getRemoteURL` exports.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
3
36
|
## [0.1.9] — 2026-06-13
|
|
4
37
|
|
|
5
38
|
### Added
|
|
@@ -142,6 +175,8 @@
|
|
|
142
175
|
|
|
143
176
|
---
|
|
144
177
|
|
|
178
|
+
[0.1.11]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.11
|
|
179
|
+
[0.1.10]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.10
|
|
145
180
|
[0.1.9]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.9
|
|
146
181
|
[0.1.8]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.8
|
|
147
182
|
[0.1.7]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.7
|
|
@@ -152,4 +187,4 @@
|
|
|
152
187
|
[0.1.2]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.2
|
|
153
188
|
[0.1.1]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.1
|
|
154
189
|
[0.1.0]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.0
|
|
155
|
-
[Unreleased]: https://github.com/parkiyong/git-chopstick-core/compare/v0.1.
|
|
190
|
+
[Unreleased]: https://github.com/parkiyong/git-chopstick-core/compare/v0.1.11...HEAD
|
package/README.md
CHANGED
|
@@ -220,7 +220,7 @@ try {
|
|
|
220
220
|
| `init` | `initGitRepository` | Initialize a repo |
|
|
221
221
|
| `interpret-trailers` | `parseRawUnfoldedTrailers`, `isCoAuthoredByTrailer`, `getTrailerSeparatorCharacters` | Git trailer parsing |
|
|
222
222
|
| `lfs` | `installGlobalLFSFilters`, `isUsingLFS`, `isTrackedByLFS`, `filesNotTrackedByLFS` | Git LFS support |
|
|
223
|
-
| `log` | `getCommits`, `getCommit`, `getChangedFiles`, `getAuthors` | Commit history |
|
|
223
|
+
| `log` | `getCommits`, `getCommit`, `getChangedFiles`, `getChangedFilesFlat`, `getAuthors` | Commit history |
|
|
224
224
|
| `merge` | `merge`, `getMergeBase`, `abortMerge` | Merge branches |
|
|
225
225
|
| `merge-tree` | `determineMergeability` | Test mergeability without merging |
|
|
226
226
|
| `pull` | `pull` | Pull from remote |
|
|
@@ -228,19 +228,19 @@ try {
|
|
|
228
228
|
| `rebase` | `rebase`, `continueRebase`, `abortRebase`, `rebaseInteractive`, `getRebaseInternalState`, `getRebaseSnapshot` | Rebase operations |
|
|
229
229
|
| `reflog` | `getRecentBranches`, `getBranchCheckouts` | Reflog inspection |
|
|
230
230
|
| `refs` | `formatAsLocalRef`, `getSymbolicRef` | Ref manipulation |
|
|
231
|
-
| `remote` | `getRemotes`, `addRemote`, `removeRemote` | Remote management |
|
|
231
|
+
| `remote` | `getRemotes`, `addRemote`, `removeRemote`, `getRemoteURL`, `getRemoteUrl`, `getRemotesFromPath`, `setRemoteURL` | Remote management |
|
|
232
232
|
| `reorder` | `reorder` | Interactive rebase reordering |
|
|
233
233
|
| `reset` | `reset`, `resetPaths`, `unstageAll` | Reset operations |
|
|
234
234
|
| `revert` | `revertCommit` | Revert a commit |
|
|
235
235
|
| `rev-list` | `getAheadBehind`, `getBranchAheadBehind`, `revRange`, `revSymmetricDifference` | Commit range queries |
|
|
236
|
-
| `rev-parse` | `getRepositoryType`, `getCurrentBranch`, `getUpstreamRefForRef`, `getCurrentUpstreamRef` | Rev parsing / branch detection |
|
|
236
|
+
| `rev-parse` | `getRepositoryType`, `getCurrentBranch`, `getRepositorySummary`, `getUpstreamRefForRef`, `getCurrentUpstreamRef` | Rev parsing / branch detection |
|
|
237
237
|
| `rm` | `removeConflictedFile` | Remove files |
|
|
238
238
|
| `squash` | `squash` | Interactive rebase squashing |
|
|
239
239
|
| `stage` | `stageManualConflictResolution`, `stageResolvedConflictFiles` | Stage conflict resolutions |
|
|
240
|
-
| `stash` | `getStashes`, `createStashEntry`, `popStashEntry`, `getStashedFiles`, `dropStashEntry` | Stash management |
|
|
240
|
+
| `stash` | `getStashes`, `getStashesByPath`, `createStashEntry`, `popStashEntry`, `getStashedFiles`, `dropStashEntry` | Stash management |
|
|
241
241
|
| `status` | `getStatus` | Repository status |
|
|
242
242
|
| `submodule` | `updateSubmodulesAfterOperation`, `listSubmodules`, `resetSubmodulePaths` | Submodule operations |
|
|
243
|
-
| `tag` | `createTag`, `deleteTag`, `getAllTags` | Tag management |
|
|
243
|
+
| `tag` | `createTag`, `deleteTag`, `getTags`, `getAllTags` | Tag management |
|
|
244
244
|
| `update-index` | `stageFiles` | Stage files |
|
|
245
245
|
| `update-ref` | `updateRef`, `deleteRef` | Ref updates |
|
|
246
246
|
| `var` | `getAuthorIdentity` | Git var queries |
|
|
@@ -257,6 +257,8 @@ try {
|
|
|
257
257
|
| `Branch` | class | Branch with upstream tracking info |
|
|
258
258
|
| `BranchType` | enum | `Local` or `Remote` |
|
|
259
259
|
| `AppFileStatusKind` | enum | `New`, `Modified`, `Deleted`, `Renamed`, `Copied`, `Conflicted`, `Untracked` |
|
|
260
|
+
| `appFileStatusToString` | fn | Converts `AppFileStatus` to human-readable string |
|
|
261
|
+
| `FlatFileChange` | type | `{ path: string; statusKind: AppFileStatusKind; oldPath?: string }` |
|
|
260
262
|
| `FileChange` | class | Base file change model |
|
|
261
263
|
| `WorkingDirectoryFileChange` | class | Uncommitted file change with diff selection |
|
|
262
264
|
| `CommittedFileChange` | class | File change from a commit |
|
|
@@ -341,6 +343,7 @@ npm pack --dry-run
|
|
|
341
343
|
npx tsx examples/get-status.ts /path/to/repo
|
|
342
344
|
npx tsx examples/branch-operations.ts /path/to/repo
|
|
343
345
|
npx tsx examples/create-commit.ts /path/to/repo
|
|
346
|
+
npx tsx examples/spawn-git-progress.ts /path/to/repo
|
|
344
347
|
```
|
|
345
348
|
|
|
346
349
|
## Status
|
package/dist/git/index.d.ts
CHANGED
package/dist/git/index.js
CHANGED
package/dist/git/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAyB,MAAM,WAAW,CAAC;AAEjH,uBAAuB;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAyB,MAAM,WAAW,CAAC;AAEjH,uBAAuB;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
|
package/dist/git/log.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommittedFileChange } from '../models/status.js';
|
|
1
|
+
import { CommittedFileChange, AppFileStatusKind } from '../models/status.js';
|
|
2
2
|
import { Repository } from '../models/repository.js';
|
|
3
3
|
import { Commit } from '../models/commit.js';
|
|
4
4
|
import { CommitIdentity } from '../models/commit-identity.js';
|
|
@@ -15,6 +15,22 @@ export interface IChangesetData {
|
|
|
15
15
|
/** Number of lines deleted in the changeset. */
|
|
16
16
|
readonly linesDeleted: number;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* A flattened file change record, suitable for serialization or UI lists.
|
|
20
|
+
*/
|
|
21
|
+
export type FlatFileChange = {
|
|
22
|
+
path: string;
|
|
23
|
+
statusKind: AppFileStatusKind;
|
|
24
|
+
oldPath?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* A flattened variant of `getChangedFiles` that returns simple objects
|
|
28
|
+
* instead of `CommittedFileChange` class instances.
|
|
29
|
+
*
|
|
30
|
+
* Consumers that just need path + status kind + optional old path can use
|
|
31
|
+
* this instead of mapping `CommittedFileChange.status` themselves.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getChangedFilesFlat(repository: Repository, sha: string): Promise<ReadonlyArray<FlatFileChange>>;
|
|
18
34
|
/** Get the files that were changed in the given commit. */
|
|
19
35
|
export declare function getChangedFiles(repository: Repository, sha: string): Promise<IChangesetData>;
|
|
20
36
|
/**
|
package/dist/git/log.js
CHANGED
|
@@ -142,6 +142,23 @@ export async function getCommits(repository, revisionRange, limit, skip, additio
|
|
|
142
142
|
parseRawUnfoldedTrailers(commit.trailers.toString(), ':'), tags);
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* A flattened variant of `getChangedFiles` that returns simple objects
|
|
147
|
+
* instead of `CommittedFileChange` class instances.
|
|
148
|
+
*
|
|
149
|
+
* Consumers that just need path + status kind + optional old path can use
|
|
150
|
+
* this instead of mapping `CommittedFileChange.status` themselves.
|
|
151
|
+
*/
|
|
152
|
+
export async function getChangedFilesFlat(repository, sha) {
|
|
153
|
+
const { files } = await getChangedFiles(repository, sha);
|
|
154
|
+
return files.map(f => ({
|
|
155
|
+
path: f.path,
|
|
156
|
+
statusKind: f.status.kind,
|
|
157
|
+
...('oldPath' in f.status && f.status.oldPath !== undefined
|
|
158
|
+
? { oldPath: f.status.oldPath }
|
|
159
|
+
: {}),
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
145
162
|
/** Get the files that were changed in the given commit. */
|
|
146
163
|
export async function getChangedFiles(repository, sha) {
|
|
147
164
|
// opt-in for rename detection (-M) and copies detection (-C)
|
package/dist/git/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/git/log.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/git/log.ts"],"names":[],"mappings":"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"}
|
package/dist/git/remote.d.ts
CHANGED
|
@@ -21,6 +21,12 @@ export declare function setRemoteURL(repository: Repository, name: string, url:
|
|
|
21
21
|
* Returns null if the remote could not be found
|
|
22
22
|
*/
|
|
23
23
|
export declare function getRemoteURL(repository: Repository, name: string): Promise<string | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Get the URL for a remote by name using a path string.
|
|
26
|
+
*
|
|
27
|
+
* Returns null if the remote could not be found.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getRemoteUrl(path: string, name: string): Promise<string | null>;
|
|
24
30
|
/**
|
|
25
31
|
* Update the HEAD ref of the remote, which is the default branch.
|
|
26
32
|
*
|
package/dist/git/remote.js
CHANGED
|
@@ -45,11 +45,19 @@ export async function setRemoteURL(repository, name, url) {
|
|
|
45
45
|
* Returns null if the remote could not be found
|
|
46
46
|
*/
|
|
47
47
|
export async function getRemoteURL(repository, name) {
|
|
48
|
-
|
|
48
|
+
return getRemoteUrl(repository.path, name);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the URL for a remote by name using a path string.
|
|
52
|
+
*
|
|
53
|
+
* Returns null if the remote could not be found.
|
|
54
|
+
*/
|
|
55
|
+
export async function getRemoteUrl(path, name) {
|
|
56
|
+
const result = await git(['config', '--get', `remote.${name}.url`], path, 'getRemoteUrl', { successExitCodes: new Set([0, 1]) });
|
|
49
57
|
if (result.exitCode !== 0) {
|
|
50
58
|
return null;
|
|
51
59
|
}
|
|
52
|
-
return result.stdout;
|
|
60
|
+
return result.stdout.trim();
|
|
53
61
|
}
|
|
54
62
|
/**
|
|
55
63
|
* Update the HEAD ref of the remote, which is the default branch.
|
package/dist/git/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/git/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAIpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,UAAU,MAAM,aAAa,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAsB;IAEtB,OAAO,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE;QAC7D,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;KACtD,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACnD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAChE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CACnC,CAAA;AACH,CAAC;AACD,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAExE,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAsB,EACtB,IAAY,EACZ,GAAW;IAEX,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAErE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACtB,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,IAAY;IAEZ,MAAM,OAAO,GAAG;QACd,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;KACvC,CAAA;IAED,MAAM,GAAG,CACP,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAC1B,UAAU,CAAC,IAAI,EACf,cAAc,EACd,OAAO,CACR,CAAA;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,IAAY,EACZ,GAAW;IAEX,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC5E,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/git/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/git/rev-parse.d.ts
CHANGED
|
@@ -29,3 +29,23 @@ export declare const getCurrentUpstreamRemoteName: (path: string) => Promise<str
|
|
|
29
29
|
* or `undefined` if HEAD is detached.
|
|
30
30
|
*/
|
|
31
31
|
export declare function getCurrentBranch(path: string): Promise<string | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Summary of a repository opened at a path.
|
|
34
|
+
*/
|
|
35
|
+
export interface RepositorySummary {
|
|
36
|
+
/** The resolved repository path. */
|
|
37
|
+
path: string;
|
|
38
|
+
/** The full SHA of HEAD. */
|
|
39
|
+
head: string;
|
|
40
|
+
/** The current branch name, or undefined if HEAD is detached. */
|
|
41
|
+
currentBranch?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get a summary of a repository at the given path in a single call.
|
|
45
|
+
*
|
|
46
|
+
* This replaces the common pattern of calling `getRepositoryType` +
|
|
47
|
+
* `git rev-parse HEAD` + `getCurrentBranch` separately.
|
|
48
|
+
*
|
|
49
|
+
* Returns `null` for missing, bare, or unsafe repositories.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getRepositorySummary(path: string): Promise<RepositorySummary | null>;
|
package/dist/git/rev-parse.js
CHANGED
|
@@ -75,4 +75,30 @@ export async function getCurrentBranch(path) {
|
|
|
75
75
|
}
|
|
76
76
|
return result.stdout.trim();
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Get a summary of a repository at the given path in a single call.
|
|
80
|
+
*
|
|
81
|
+
* This replaces the common pattern of calling `getRepositoryType` +
|
|
82
|
+
* `git rev-parse HEAD` + `getCurrentBranch` separately.
|
|
83
|
+
*
|
|
84
|
+
* Returns `null` for missing, bare, or unsafe repositories.
|
|
85
|
+
*/
|
|
86
|
+
export async function getRepositorySummary(path) {
|
|
87
|
+
const repoType = await getRepositoryType(path);
|
|
88
|
+
if (repoType.kind !== 'regular') {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const headResult = await git(['rev-parse', 'HEAD'], path, 'getRepositorySummary', {
|
|
92
|
+
successExitCodes: new Set([0, 128]),
|
|
93
|
+
});
|
|
94
|
+
if (headResult.exitCode !== 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const currentBranch = await getCurrentBranch(path);
|
|
98
|
+
return {
|
|
99
|
+
path: repoType.topLevelWorkingDirectory,
|
|
100
|
+
head: headResult.stdout.trim(),
|
|
101
|
+
currentBranch,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
78
104
|
//# sourceMappingURL=rev-parse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rev-parse.js","sourceRoot":"","sources":["../../src/git/rev-parse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rev-parse.js","sourceRoot":"","sources":["../../src/git/rev-parse.ts"],"names":[],"mappings":"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"}
|
package/dist/git/show.d.ts
CHANGED
|
@@ -16,6 +16,17 @@ import { Repository } from '../models/repository.js';
|
|
|
16
16
|
* root from where to read the blob contents
|
|
17
17
|
*/
|
|
18
18
|
export declare const getBlobContents: (repository: Repository, commitish: string, path: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
19
|
+
/**
|
|
20
|
+
* Get the text contents of a file at a specific commit, using a path string.
|
|
21
|
+
*
|
|
22
|
+
* Returns the file contents as a string, or throws if the file doesn't
|
|
23
|
+
* exist in the given commit.
|
|
24
|
+
*
|
|
25
|
+
* @param repoPath - The repository path on disk
|
|
26
|
+
* @param sha - The commit SHA to read the file from
|
|
27
|
+
* @param file - The file path relative to the repository root
|
|
28
|
+
*/
|
|
29
|
+
export declare function getFileAtCommit(repoPath: string, sha: string, file: string): Promise<string>;
|
|
19
30
|
/**
|
|
20
31
|
* Retrieve some or all binary contents of a blob from the repository
|
|
21
32
|
* at a given reference, commit, or tree. This is almost identical
|
package/dist/git/show.js
CHANGED
|
@@ -21,6 +21,23 @@ export const getBlobContents = (repository, commitish, path) => git(['show', `${
|
|
|
21
21
|
successExitCodes: new Set([0, 1]),
|
|
22
22
|
encoding: 'buffer',
|
|
23
23
|
}).then(r => r.stdout);
|
|
24
|
+
/**
|
|
25
|
+
* Get the text contents of a file at a specific commit, using a path string.
|
|
26
|
+
*
|
|
27
|
+
* Returns the file contents as a string, or throws if the file doesn't
|
|
28
|
+
* exist in the given commit.
|
|
29
|
+
*
|
|
30
|
+
* @param repoPath - The repository path on disk
|
|
31
|
+
* @param sha - The commit SHA to read the file from
|
|
32
|
+
* @param file - The file path relative to the repository root
|
|
33
|
+
*/
|
|
34
|
+
export async function getFileAtCommit(repoPath, sha, file) {
|
|
35
|
+
const result = await git(['show', `${sha}:${file}`], repoPath, 'getFileAtCommit', { successExitCodes: new Set([0, 1]) });
|
|
36
|
+
if (result.exitCode !== 0) {
|
|
37
|
+
throw new Error(`File '${file}' not found at commit ${sha}`);
|
|
38
|
+
}
|
|
39
|
+
return result.stdout;
|
|
40
|
+
}
|
|
24
41
|
/**
|
|
25
42
|
* Retrieve some or all binary contents of a blob from the repository
|
|
26
43
|
* at a given reference, commit, or tree. This is almost identical
|
package/dist/git/show.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/git/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,EAAE,CACF,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE;IACxE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,OAAO,uCAAuC,CAC5C,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IAE7C,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,yCAAyC,EAAE;QAC3E,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACzD,QAAQ,EAAE,QAAQ;KACnB,CAAC;SACC,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAChE;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,CACT,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3E,CAAA;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/git/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,EAAE,CACF,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE;IACxE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,GAAW,EACX,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAC1B,QAAQ,EACR,iBAAiB,EACjB,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACtC,CAAA;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yBAAyB,GAAG,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,OAAO,uCAAuC,CAC5C,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IAE7C,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,yCAAyC,EAAE;QAC3E,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACzD,QAAQ,EAAE,QAAQ;KACnB,CAAC;SACC,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAChE;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,CACT,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3E,CAAA;AACL,CAAC"}
|
package/dist/git/stash.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { IStashEntry } from '../models/stash-entry.js';
|
|
|
3
3
|
import { WorkingDirectoryFileChange, CommittedFileChange } from '../models/status.js';
|
|
4
4
|
import { Branch } from '../models/branch.js';
|
|
5
5
|
export declare const DesktopStashEntryMarker = "!!GitHub_Desktop";
|
|
6
|
-
|
|
6
|
+
/** The result of listing stash entries. */
|
|
7
|
+
export type StashResult = {
|
|
7
8
|
/** The stash entries created by Desktop */
|
|
8
9
|
readonly desktopEntries: ReadonlyArray<IStashEntry>;
|
|
9
10
|
/**
|
|
@@ -12,6 +13,12 @@ type StashResult = {
|
|
|
12
13
|
*/
|
|
13
14
|
readonly stashEntryCount: number;
|
|
14
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Get the list of stash entries for a repository path.
|
|
18
|
+
* Uses the default ordering of refs (which is LIFO ordering),
|
|
19
|
+
* as well as the total amount of stash entries.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getStashesByPath(path: string): Promise<StashResult>;
|
|
15
22
|
/**
|
|
16
23
|
* Get the list of stash entries created by Desktop in the current repository
|
|
17
24
|
* using the default ordering of refs (which is LIFO ordering),
|
|
@@ -50,4 +57,3 @@ export declare function dropDesktopStashEntry(repository: Repository, stashSha:
|
|
|
50
57
|
export declare function popStashEntry(repository: Repository, stashSha: string): Promise<void>;
|
|
51
58
|
/** Get the files that were changed in the given stash commit */
|
|
52
59
|
export declare function getStashedFiles(repository: Repository, stashSha: string): Promise<ReadonlyArray<CommittedFileChange>>;
|
|
53
|
-
export {};
|
package/dist/git/stash.js
CHANGED
|
@@ -14,11 +14,11 @@ export const DesktopStashEntryMarker = '!!GitHub_Desktop';
|
|
|
14
14
|
*/
|
|
15
15
|
const desktopStashEntryMessageRe = /!!GitHub_Desktop<(.+)>$/;
|
|
16
16
|
/**
|
|
17
|
-
* Get the list of stash entries
|
|
18
|
-
*
|
|
17
|
+
* Get the list of stash entries for a repository path.
|
|
18
|
+
* Uses the default ordering of refs (which is LIFO ordering),
|
|
19
19
|
* as well as the total amount of stash entries.
|
|
20
20
|
*/
|
|
21
|
-
export async function
|
|
21
|
+
export async function getStashesByPath(path) {
|
|
22
22
|
const { formatArgs, parse } = createLogParser({
|
|
23
23
|
name: '%gD',
|
|
24
24
|
stashSha: '%H',
|
|
@@ -26,9 +26,7 @@ export async function getStashes(repository) {
|
|
|
26
26
|
tree: '%T',
|
|
27
27
|
parents: '%P',
|
|
28
28
|
});
|
|
29
|
-
const result = await git(['log', '-g', ...formatArgs, 'refs/stash', '--'],
|
|
30
|
-
// There's no refs/stashes reflog in the repository or it's not
|
|
31
|
-
// even a repository. In either case we don't care
|
|
29
|
+
const result = await git(['log', '-g', ...formatArgs, 'refs/stash', '--'], path, 'getStashEntries', { successExitCodes: new Set([0, 128]) });
|
|
32
30
|
if (result.exitCode === 128) {
|
|
33
31
|
return { desktopEntries: [], stashEntryCount: 0 };
|
|
34
32
|
}
|
|
@@ -50,6 +48,14 @@ export async function getStashes(repository) {
|
|
|
50
48
|
}
|
|
51
49
|
return { desktopEntries, stashEntryCount: entries.length - 1 };
|
|
52
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the list of stash entries created by Desktop in the current repository
|
|
53
|
+
* using the default ordering of refs (which is LIFO ordering),
|
|
54
|
+
* as well as the total amount of stash entries.
|
|
55
|
+
*/
|
|
56
|
+
export async function getStashes(repository) {
|
|
57
|
+
return getStashesByPath(repository.path);
|
|
58
|
+
}
|
|
53
59
|
/**
|
|
54
60
|
* Moves a stash entry to a different branch by means of creating
|
|
55
61
|
* a new stash entry associated with the new branch and dropping the old
|
package/dist/git/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/git/stash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAEL,wBAAwB,GAEzB,MAAM,0BAA0B,CAAA;AAKjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/git/stash.ts"],"names":[],"mappings":"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"}
|
package/dist/git/tag.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Repository } from '../models/repository.js';
|
|
2
2
|
import { IRemote } from '../models/remote.js';
|
|
3
|
+
/** A tag with its name and the commit SHA it points to. */
|
|
4
|
+
export type TagEntry = {
|
|
5
|
+
name: string;
|
|
6
|
+
sha: string;
|
|
7
|
+
};
|
|
3
8
|
/**
|
|
4
9
|
* Create a new tag on the given target commit.
|
|
5
10
|
*
|
|
@@ -15,6 +20,13 @@ export declare function createTag(repository: Repository, name: string, targetCo
|
|
|
15
20
|
* @param name - The name of the tag to delete.
|
|
16
21
|
*/
|
|
17
22
|
export declare function deleteTag(repository: Repository, name: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Get all tags in the repository at the given path.
|
|
25
|
+
*
|
|
26
|
+
* Returns an array of tag entries. Uses the same normalization as
|
|
27
|
+
* `getAllTags` (resolving annotated tag ^{} suffixes).
|
|
28
|
+
*/
|
|
29
|
+
export declare function getTags(path: string): Promise<ReadonlyArray<TagEntry>>;
|
|
18
30
|
/**
|
|
19
31
|
* Gets all the local tags. Returns a Map with the tag name and the commit it points to.
|
|
20
32
|
*
|
package/dist/git/tag.js
CHANGED
|
@@ -21,6 +21,29 @@ export async function deleteTag(repository, name) {
|
|
|
21
21
|
const args = ['tag', '-d', name];
|
|
22
22
|
await git(args, repository.path, 'deleteTag');
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Get all tags in the repository at the given path.
|
|
26
|
+
*
|
|
27
|
+
* Returns an array of tag entries. Uses the same normalization as
|
|
28
|
+
* `getAllTags` (resolving annotated tag ^{} suffixes).
|
|
29
|
+
*/
|
|
30
|
+
export async function getTags(path) {
|
|
31
|
+
const result = await git(['show-ref', '--tags', '-d'], path, 'getTags', {
|
|
32
|
+
successExitCodes: new Set([0, 1, 128]),
|
|
33
|
+
});
|
|
34
|
+
if (result.exitCode !== 0 || result.stdout.trim().length === 0) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const tagMap = new Map();
|
|
38
|
+
for (const line of result.stdout.trim().split('\n')) {
|
|
39
|
+
const [sha, ref] = line.split(' ');
|
|
40
|
+
if (!sha || !ref)
|
|
41
|
+
continue;
|
|
42
|
+
const name = ref.replace(/^refs\/tags\//, '').replace(/\^\{\}$/, '');
|
|
43
|
+
tagMap.set(name, sha);
|
|
44
|
+
}
|
|
45
|
+
return Array.from(tagMap, ([name, sha]) => ({ name, sha }));
|
|
46
|
+
}
|
|
24
47
|
/**
|
|
25
48
|
* Gets all the local tags. Returns a Map with the tag name and the commit it points to.
|
|
26
49
|
*
|
package/dist/git/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/git/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAG/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/git/tag.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export * from './worktree.js';
|
|
|
15
15
|
export * from './diff/index.js';
|
|
16
16
|
export { ComputedAction } from './computed-action.js';
|
|
17
17
|
export type { RebaseInternalState, RebaseProgressOptions } from './rebase.js';
|
|
18
|
-
export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
|
|
18
|
+
export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, appFileStatusToString, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
|
|
19
19
|
export type { AppFileStatus } from './status.js';
|
|
20
20
|
export type { SubmoduleStatus } from './status.js';
|
|
21
21
|
export type { SubmoduleEntry } from './submodule.js';
|
package/dist/models/index.js
CHANGED
|
@@ -16,5 +16,5 @@ export * from './diff/index.js';
|
|
|
16
16
|
// computed-action and rebase both export ComputedAction — use explicit exports
|
|
17
17
|
export { ComputedAction } from './computed-action.js';
|
|
18
18
|
// status and submodule both export SubmoduleStatus — use explicit exports
|
|
19
|
-
export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
|
|
19
|
+
export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, appFileStatusToString, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAE/B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAE/B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
|
package/dist/models/status.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export type UntrackedFileStatus = {
|
|
|
48
48
|
submoduleStatus?: SubmoduleStatus;
|
|
49
49
|
};
|
|
50
50
|
export type AppFileStatus = PlainFileStatus | CopiedOrRenamedFileStatus | ConflictedFileStatus | UntrackedFileStatus;
|
|
51
|
+
/**
|
|
52
|
+
* Convert an AppFileStatus to a human-readable string.
|
|
53
|
+
*
|
|
54
|
+
* Examples: "Added", "Modified", "Deleted", "Renamed", "Copied", "Conflicted", "Untracked"
|
|
55
|
+
*/
|
|
56
|
+
export declare function appFileStatusToString(status: AppFileStatus): string;
|
|
51
57
|
export type SubmoduleStatus = {
|
|
52
58
|
readonly commitChanged: boolean;
|
|
53
59
|
readonly modifiedChanges: boolean;
|
package/dist/models/status.js
CHANGED
|
@@ -27,6 +27,29 @@ export function isConflictedFileStatus(appFileStatus) {
|
|
|
27
27
|
export function isConflictWithMarkers(conflictedFileStatus) {
|
|
28
28
|
return 'conflictMarkerCount' in conflictedFileStatus;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert an AppFileStatus to a human-readable string.
|
|
32
|
+
*
|
|
33
|
+
* Examples: "Added", "Modified", "Deleted", "Renamed", "Copied", "Conflicted", "Untracked"
|
|
34
|
+
*/
|
|
35
|
+
export function appFileStatusToString(status) {
|
|
36
|
+
switch (status.kind) {
|
|
37
|
+
case AppFileStatusKind.New:
|
|
38
|
+
return 'Added';
|
|
39
|
+
case AppFileStatusKind.Modified:
|
|
40
|
+
return 'Modified';
|
|
41
|
+
case AppFileStatusKind.Deleted:
|
|
42
|
+
return 'Deleted';
|
|
43
|
+
case AppFileStatusKind.Renamed:
|
|
44
|
+
return 'Renamed';
|
|
45
|
+
case AppFileStatusKind.Copied:
|
|
46
|
+
return 'Copied';
|
|
47
|
+
case AppFileStatusKind.Conflicted:
|
|
48
|
+
return 'Conflicted';
|
|
49
|
+
case AppFileStatusKind.Untracked:
|
|
50
|
+
return 'Untracked';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
30
53
|
export var UnmergedEntrySummary;
|
|
31
54
|
(function (UnmergedEntrySummary) {
|
|
32
55
|
UnmergedEntrySummary["AddedByUs"] = "added-by-us";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/models/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAElE,MAAM,CAAN,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,gCAAc,CAAA;IACd,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;IACb,8BAAY,CAAA;IACZ,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,0CAAwB,CAAA;AAC1B,CAAC,EAVW,cAAc,KAAd,cAAc,QAUzB;AAED,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,4CAAuB,CAAA;AACzB,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B;AA6BD,MAAM,UAAU,sBAAsB,CACpC,aAA4B;IAE5B,OAAO,aAAa,CAAC,IAAI,KAAK,iBAAiB,CAAC,UAAU,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,oBAA0C;IAE1C,OAAO,qBAAqB,IAAI,oBAAoB,CAAA;AACtD,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/models/status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,16 @@ import { join } from 'path'
|
|
|
6
6
|
import {
|
|
7
7
|
Repository, getStatus, getCommits, getBranches,
|
|
8
8
|
createCommit, createBranch, deleteLocalBranch, renameBranch,
|
|
9
|
-
getCurrentBranch, getRepositoryType,
|
|
9
|
+
getCurrentBranch, getRepositoryType, getRepositorySummary,
|
|
10
|
+
getRemoteUrl, getRemotesFromPath, getAllTags,
|
|
11
|
+
addRemote, removeRemote, setRemoteURL,
|
|
12
|
+
merge, MergeResult,
|
|
13
|
+
rebase, RebaseResult,
|
|
14
|
+
getStashes, getStashesByPath,
|
|
15
|
+
createDesktopStashEntry, popStashEntry,
|
|
16
|
+
getTags, getFileAtCommit,
|
|
17
|
+
getChangedFilesFlat, getChangedFiles,
|
|
18
|
+
appFileStatusToString, AppFileStatusKind,
|
|
10
19
|
} from '../index.js'
|
|
11
20
|
import {
|
|
12
21
|
setupFixtureRepo, cleanupFixtureRepo, git,
|
|
@@ -19,6 +28,10 @@ beforeAll(() => {
|
|
|
19
28
|
const fixture = setupFixtureRepo()
|
|
20
29
|
repoPath = fixture.repoPath
|
|
21
30
|
repo = fixture.repo
|
|
31
|
+
|
|
32
|
+
// Set a remote URL so getRemoteUrl / getRemotesFromPath have a known value
|
|
33
|
+
// (the bundle clone already creates an origin remote pointing to the bundle file)
|
|
34
|
+
git(repoPath, 'remote set-url origin https://github.com/user/repo.git')
|
|
22
35
|
})
|
|
23
36
|
|
|
24
37
|
describe('getRepositoryType', () => {
|
|
@@ -151,6 +164,357 @@ describe('Tag operations', () => {
|
|
|
151
164
|
expect(tags.size).toBeGreaterThanOrEqual(1)
|
|
152
165
|
expect(tags.has('v0.1.0')).toBe(true)
|
|
153
166
|
})
|
|
167
|
+
|
|
168
|
+
it('getTags returns the same tags as getAllTags', async () => {
|
|
169
|
+
const tags = await getTags(repoPath)
|
|
170
|
+
expect(tags.length).toBeGreaterThanOrEqual(1)
|
|
171
|
+
|
|
172
|
+
const v010 = tags.find(t => t.name === 'v0.1.0')
|
|
173
|
+
expect(v010).toBeTruthy()
|
|
174
|
+
expect(v010!.sha).toMatch(/^[a-f0-9]{40}$/)
|
|
175
|
+
|
|
176
|
+
// Verify consistency with getAllTags
|
|
177
|
+
const allTags = await getAllTags(repo)
|
|
178
|
+
expect(tags.length).toBe(allTags.size)
|
|
179
|
+
for (const t of tags) {
|
|
180
|
+
expect(allTags.get(t.name)).toBe(t.sha)
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
it('getTags returns empty array for a tag-less repo', async () => {
|
|
185
|
+
const noTagPath = mkdtempSync(join(tmpdir(), 'gcctest-notags-'))
|
|
186
|
+
execSync(`git init ${noTagPath}`, { stdio: 'pipe' })
|
|
187
|
+
execSync(
|
|
188
|
+
`git -C ${noTagPath} commit --allow-empty -m 'init'`,
|
|
189
|
+
{ stdio: 'pipe' }
|
|
190
|
+
)
|
|
191
|
+
const tags = await getTags(noTagPath)
|
|
192
|
+
expect(tags).toEqual([])
|
|
193
|
+
execSync(`rm -rf ${noTagPath}`)
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
it('getTags returns empty array for a non-repo path', async () => {
|
|
197
|
+
const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
|
|
198
|
+
const tags = await getTags(nonRepoPath)
|
|
199
|
+
expect(tags).toEqual([])
|
|
200
|
+
execSync(`rm -rf ${nonRepoPath}`)
|
|
201
|
+
})
|
|
202
|
+
})
|
|
203
|
+
|
|
204
|
+
describe('getFileAtCommit', () => {
|
|
205
|
+
it('reads README.md at HEAD', async () => {
|
|
206
|
+
const content = await getFileAtCommit(repoPath, 'HEAD', 'README.md')
|
|
207
|
+
expect(content).toContain('# Test Repo')
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
it('reads a file at the initial commit', async () => {
|
|
211
|
+
const commits = await getCommits(repo, 'HEAD', 10)
|
|
212
|
+
const initialSha = commits[commits.length - 1].sha
|
|
213
|
+
const content = await getFileAtCommit(repoPath, initialSha, 'README.md')
|
|
214
|
+
expect(content).toContain('# Test Repo')
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
it('reads src/index.js at a commit where it exists', async () => {
|
|
218
|
+
// The second commit adds src/index.js with 'console.log("hi")'
|
|
219
|
+
const commits = await getCommits(repo, 'HEAD', 10)
|
|
220
|
+
// Second-to-last commit has the initial version
|
|
221
|
+
const secondCommit = commits[commits.length - 2].sha
|
|
222
|
+
const content = await getFileAtCommit(repoPath, secondCommit, 'src/index.js')
|
|
223
|
+
expect(content.trim()).toBe('console.log("hi")')
|
|
224
|
+
})
|
|
225
|
+
|
|
226
|
+
it('throws for a file that does not exist at the given commit', async () => {
|
|
227
|
+
await expect(
|
|
228
|
+
getFileAtCommit(repoPath, 'HEAD', 'nonexistent-file.txt')
|
|
229
|
+
).rejects.toThrow()
|
|
230
|
+
})
|
|
231
|
+
})
|
|
232
|
+
|
|
233
|
+
describe('getChangedFilesFlat', () => {
|
|
234
|
+
it('returns flat file changes for the merge commit', async () => {
|
|
235
|
+
const commits = await getCommits(repo, 'HEAD', 10)
|
|
236
|
+
// The merge commit merged feature/one (which added feature-one.txt)
|
|
237
|
+
const mergeSha = commits[0].sha
|
|
238
|
+
const flat = await getChangedFilesFlat(repo, mergeSha)
|
|
239
|
+
|
|
240
|
+
expect(flat.length).toBeGreaterThanOrEqual(1)
|
|
241
|
+
|
|
242
|
+
// Each entry should have path and statusKind
|
|
243
|
+
for (const f of flat) {
|
|
244
|
+
expect(f).toHaveProperty('path')
|
|
245
|
+
expect(f).toHaveProperty('statusKind')
|
|
246
|
+
expect(Object.values(AppFileStatusKind)).toContain(f.statusKind)
|
|
247
|
+
// oldPath should only be present for Renamed/Copied files
|
|
248
|
+
if (f.statusKind === AppFileStatusKind.Renamed || f.statusKind === AppFileStatusKind.Copied) {
|
|
249
|
+
expect(f.oldPath).toBeTruthy()
|
|
250
|
+
} else {
|
|
251
|
+
expect(f.oldPath).toBeUndefined()
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
})
|
|
255
|
+
|
|
256
|
+
it('matches structure from getChangedFiles', async () => {
|
|
257
|
+
const commits = await getCommits(repo, 'HEAD', 10)
|
|
258
|
+
const mergeSha = commits[0].sha
|
|
259
|
+
|
|
260
|
+
const [flat, full] = await Promise.all([
|
|
261
|
+
getChangedFilesFlat(repo, mergeSha),
|
|
262
|
+
getChangedFiles(repo, mergeSha),
|
|
263
|
+
])
|
|
264
|
+
|
|
265
|
+
expect(flat.length).toBe(full.files.length)
|
|
266
|
+
|
|
267
|
+
for (let i = 0; i < flat.length; i++) {
|
|
268
|
+
expect(flat[i].path).toBe(full.files[i].path)
|
|
269
|
+
expect(flat[i].statusKind).toBe(full.files[i].status.kind)
|
|
270
|
+
|
|
271
|
+
if (
|
|
272
|
+
full.files[i].status.kind === AppFileStatusKind.Renamed ||
|
|
273
|
+
full.files[i].status.kind === AppFileStatusKind.Copied
|
|
274
|
+
) {
|
|
275
|
+
expect(flat[i].oldPath).toBe(full.files[i].status.oldPath)
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
})
|
|
279
|
+
|
|
280
|
+
it('throws for an unborn HEAD', async () => {
|
|
281
|
+
const unbornPath = mkdtempSync(join(tmpdir(), 'gcctest-unborn-'))
|
|
282
|
+
execSync(`git init ${unbornPath}`, { stdio: 'pipe' })
|
|
283
|
+
const unbornRepo = new Repository(unbornPath, 1)
|
|
284
|
+
// Cannot get changed files for a commit that doesn't exist
|
|
285
|
+
await expect(
|
|
286
|
+
getChangedFilesFlat(unbornRepo, 'HEAD')
|
|
287
|
+
).rejects.toThrow()
|
|
288
|
+
execSync(`rm -rf ${unbornPath}`)
|
|
289
|
+
})
|
|
290
|
+
})
|
|
291
|
+
|
|
292
|
+
describe('getStashesByPath', () => {
|
|
293
|
+
it('returns empty stashes when no stash exists', async () => {
|
|
294
|
+
const result = await getStashesByPath(repoPath)
|
|
295
|
+
expect(result.desktopEntries).toEqual([])
|
|
296
|
+
expect(result.stashEntryCount).toBe(0)
|
|
297
|
+
})
|
|
298
|
+
|
|
299
|
+
it('returns same result as getStashes after creating a stash', async () => {
|
|
300
|
+
// Create a working directory change
|
|
301
|
+
writeFileSync(join(repoPath, 'stash-by-path-test.txt'), 'stash me')
|
|
302
|
+
git(repoPath, 'add stash-by-path-test.txt')
|
|
303
|
+
|
|
304
|
+
await createDesktopStashEntry(repo, 'main', [], null)
|
|
305
|
+
|
|
306
|
+
const byPath = await getStashesByPath(repoPath)
|
|
307
|
+
const byRepo = await getStashes(repo)
|
|
308
|
+
|
|
309
|
+
expect(byPath.desktopEntries.length).toBe(byRepo.desktopEntries.length)
|
|
310
|
+
expect(byPath.stashEntryCount).toBe(byRepo.stashEntryCount)
|
|
311
|
+
|
|
312
|
+
// Verify the entry has expected fields
|
|
313
|
+
const entry = byPath.desktopEntries[0]
|
|
314
|
+
expect(entry.branchName).toBe('main')
|
|
315
|
+
expect(entry.stashSha).toMatch(/^[a-f0-9]{40}$/)
|
|
316
|
+
|
|
317
|
+
// Clean up: pop the stash, unstage, and remove the test file
|
|
318
|
+
await popStashEntry(repo, entry.stashSha)
|
|
319
|
+
git(repoPath, 'reset HEAD -- stash-by-path-test.txt')
|
|
320
|
+
execSync(`rm -f ${join(repoPath, 'stash-by-path-test.txt')}`)
|
|
321
|
+
})
|
|
322
|
+
|
|
323
|
+
it('returns empty for a non-repo path', async () => {
|
|
324
|
+
const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
|
|
325
|
+
const result = await getStashesByPath(nonRepoPath)
|
|
326
|
+
expect(result.desktopEntries).toEqual([])
|
|
327
|
+
expect(result.stashEntryCount).toBe(0)
|
|
328
|
+
execSync(`rm -rf ${nonRepoPath}`)
|
|
329
|
+
})
|
|
330
|
+
})
|
|
331
|
+
|
|
332
|
+
describe('appFileStatusToString', () => {
|
|
333
|
+
it('maps each status kind to a human-readable string', () => {
|
|
334
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.New })).toBe('Added')
|
|
335
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Modified })).toBe('Modified')
|
|
336
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Deleted })).toBe('Deleted')
|
|
337
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Renamed })).toBe('Renamed')
|
|
338
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Copied })).toBe('Copied')
|
|
339
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Conflicted })).toBe('Conflicted')
|
|
340
|
+
expect(appFileStatusToString({ kind: AppFileStatusKind.Untracked })).toBe('Untracked')
|
|
341
|
+
})
|
|
342
|
+
})
|
|
343
|
+
|
|
344
|
+
describe('getRepositorySummary', () => {
|
|
345
|
+
it('returns path, head, and currentBranch for a normal repo', async () => {
|
|
346
|
+
const summary = await getRepositorySummary(repoPath)
|
|
347
|
+
expect(summary).toBeTruthy()
|
|
348
|
+
expect(summary!.path).toBe(repoPath)
|
|
349
|
+
// HEAD should be a 40-char hex SHA
|
|
350
|
+
expect(summary!.head).toMatch(/^[a-f0-9]{40}$/)
|
|
351
|
+
expect(summary!.currentBranch).toBe('main')
|
|
352
|
+
})
|
|
353
|
+
|
|
354
|
+
it('returns currentBranch as undefined when HEAD is detached', async () => {
|
|
355
|
+
git(repoPath, 'checkout --detach')
|
|
356
|
+
const summary = await getRepositorySummary(repoPath)
|
|
357
|
+
expect(summary).toBeTruthy()
|
|
358
|
+
expect(summary!.path).toBe(repoPath)
|
|
359
|
+
expect(summary!.head).toMatch(/^[a-f0-9]{40}$/)
|
|
360
|
+
expect(summary!.currentBranch).toBeUndefined()
|
|
361
|
+
// Reset back for subsequent tests
|
|
362
|
+
git(repoPath, 'checkout main')
|
|
363
|
+
})
|
|
364
|
+
|
|
365
|
+
it('returns null for a bare repository', async () => {
|
|
366
|
+
const barePath = mkdtempSync(join(tmpdir(), 'gcctest-bare-'))
|
|
367
|
+
execSync(`git init --bare ${barePath}`, { stdio: 'pipe' })
|
|
368
|
+
const summary = await getRepositorySummary(barePath)
|
|
369
|
+
expect(summary).toBeNull()
|
|
370
|
+
execSync(`rm -rf ${barePath}`)
|
|
371
|
+
})
|
|
372
|
+
|
|
373
|
+
it('returns null for a non-existent path', async () => {
|
|
374
|
+
const summary = await getRepositorySummary('/nonexistent/path')
|
|
375
|
+
expect(summary).toBeNull()
|
|
376
|
+
})
|
|
377
|
+
|
|
378
|
+
it('returns null for a path that exists but is not a git repo', async () => {
|
|
379
|
+
const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
|
|
380
|
+
const summary = await getRepositorySummary(nonRepoPath)
|
|
381
|
+
expect(summary).toBeNull()
|
|
382
|
+
execSync(`rm -rf ${nonRepoPath}`)
|
|
383
|
+
})
|
|
384
|
+
})
|
|
385
|
+
|
|
386
|
+
describe('getRemoteUrl', () => {
|
|
387
|
+
it('returns the URL for an existing remote', async () => {
|
|
388
|
+
const url = await getRemoteUrl(repoPath, 'origin')
|
|
389
|
+
expect(url).toBe('https://github.com/user/repo.git')
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
it('returns null for a non-existent remote', async () => {
|
|
393
|
+
const url = await getRemoteUrl(repoPath, 'nonexistent')
|
|
394
|
+
expect(url).toBeNull()
|
|
395
|
+
})
|
|
396
|
+
|
|
397
|
+
it('returns null for a non-repo path', async () => {
|
|
398
|
+
const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
|
|
399
|
+
const url = await getRemoteUrl(nonRepoPath, 'origin')
|
|
400
|
+
expect(url).toBeNull()
|
|
401
|
+
execSync(`rm -rf ${nonRepoPath}`)
|
|
402
|
+
})
|
|
403
|
+
})
|
|
404
|
+
|
|
405
|
+
describe('getRemotesFromPath', () => {
|
|
406
|
+
it('lists all remotes for a valid repo', async () => {
|
|
407
|
+
const remotes = await getRemotesFromPath(repoPath)
|
|
408
|
+
expect(remotes.length).toBeGreaterThanOrEqual(1)
|
|
409
|
+
const origin = remotes.find(r => r.name === 'origin')
|
|
410
|
+
expect(origin).toBeTruthy()
|
|
411
|
+
expect(origin!.url).toBe('https://github.com/user/repo.git')
|
|
412
|
+
})
|
|
413
|
+
|
|
414
|
+
it('returns an empty array for a non-repo path', async () => {
|
|
415
|
+
const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
|
|
416
|
+
const remotes = await getRemotesFromPath(nonRepoPath)
|
|
417
|
+
expect(remotes).toEqual([])
|
|
418
|
+
execSync(`rm -rf ${nonRepoPath}`)
|
|
419
|
+
})
|
|
420
|
+
})
|
|
421
|
+
|
|
422
|
+
describe('addRemote', () => {
|
|
423
|
+
it('adds a new remote and returns it', async () => {
|
|
424
|
+
const remote = await addRemote(repo, 'upstream', 'https://github.com/upstream/repo.git')
|
|
425
|
+
expect(remote.name).toBe('upstream')
|
|
426
|
+
expect(remote.url).toBe('https://github.com/upstream/repo.git')
|
|
427
|
+
|
|
428
|
+
// Verify it was persisted
|
|
429
|
+
const url = await getRemoteUrl(repoPath, 'upstream')
|
|
430
|
+
expect(url).toBe('https://github.com/upstream/repo.git')
|
|
431
|
+
})
|
|
432
|
+
})
|
|
433
|
+
|
|
434
|
+
describe('setRemoteURL', () => {
|
|
435
|
+
it('updates the URL of an existing remote', async () => {
|
|
436
|
+
const result = await setRemoteURL(repo, 'origin', 'https://github.com/user/new-repo.git')
|
|
437
|
+
expect(result).toBe(true)
|
|
438
|
+
|
|
439
|
+
// Verify it was changed
|
|
440
|
+
const url = await getRemoteUrl(repoPath, 'origin')
|
|
441
|
+
expect(url).toBe('https://github.com/user/new-repo.git')
|
|
442
|
+
})
|
|
443
|
+
})
|
|
444
|
+
|
|
445
|
+
describe('removeRemote', () => {
|
|
446
|
+
it('removes an existing remote silently', async () => {
|
|
447
|
+
// First confirm the remote exists
|
|
448
|
+
const beforeUrl = await getRemoteUrl(repoPath, 'upstream')
|
|
449
|
+
expect(beforeUrl).toBe('https://github.com/upstream/repo.git')
|
|
450
|
+
|
|
451
|
+
await removeRemote(repo, 'upstream')
|
|
452
|
+
|
|
453
|
+
// Verify it's gone
|
|
454
|
+
const afterUrl = await getRemoteUrl(repoPath, 'upstream')
|
|
455
|
+
expect(afterUrl).toBeNull()
|
|
456
|
+
})
|
|
457
|
+
|
|
458
|
+
it('silently succeeds when removing a non-existent remote', async () => {
|
|
459
|
+
// Should not throw
|
|
460
|
+
await expect(removeRemote(repo, 'nonexistent')).resolves.toBeUndefined()
|
|
461
|
+
})
|
|
462
|
+
})
|
|
463
|
+
|
|
464
|
+
describe('merge', () => {
|
|
465
|
+
it('merges feature/two into main', async () => {
|
|
466
|
+
const result = await merge(repo, 'feature/two')
|
|
467
|
+
expect(result).toBe(MergeResult.Success)
|
|
468
|
+
})
|
|
469
|
+
|
|
470
|
+
it('returns AlreadyUpToDate when merging an already-merged branch', async () => {
|
|
471
|
+
const result = await merge(repo, 'feature/two')
|
|
472
|
+
expect(result).toBe(MergeResult.AlreadyUpToDate)
|
|
473
|
+
})
|
|
474
|
+
})
|
|
475
|
+
|
|
476
|
+
describe('rebase', () => {
|
|
477
|
+
it('rebases feature/two onto feature/one', async () => {
|
|
478
|
+
// Get Branch objects with tip.sha required by the rebase API
|
|
479
|
+
const branches = await getBranches(repo)
|
|
480
|
+
const baseBranch = branches.find(b => b.nameWithoutRemote === 'feature/one')!
|
|
481
|
+
const targetBranch = branches.find(b => b.nameWithoutRemote === 'feature/two')!
|
|
482
|
+
expect(baseBranch).toBeTruthy()
|
|
483
|
+
expect(targetBranch).toBeTruthy()
|
|
484
|
+
|
|
485
|
+
const result = await rebase(repo, baseBranch, targetBranch)
|
|
486
|
+
expect(result).toBe(RebaseResult.CompletedWithoutError)
|
|
487
|
+
})
|
|
488
|
+
})
|
|
489
|
+
|
|
490
|
+
describe('stash', () => {
|
|
491
|
+
it('creates a stash entry and pops it back', async () => {
|
|
492
|
+
// Create a working directory change to stash
|
|
493
|
+
writeFileSync(join(repoPath, 'stash-test.txt'), 'stash me')
|
|
494
|
+
git(repoPath, 'add stash-test.txt')
|
|
495
|
+
|
|
496
|
+
// Create a stash entry
|
|
497
|
+
const created = await createDesktopStashEntry(repo, 'main', [], null)
|
|
498
|
+
expect(created).toBe(true)
|
|
499
|
+
|
|
500
|
+
// List stashes — should include our new entry
|
|
501
|
+
const stashes = await getStashes(repo)
|
|
502
|
+
expect(stashes.desktopEntries.length).toBeGreaterThanOrEqual(1)
|
|
503
|
+
const stashSha = stashes.desktopEntries[0].stashSha
|
|
504
|
+
expect(stashSha).toBeTruthy()
|
|
505
|
+
|
|
506
|
+
// Pop it back — changes should be restored
|
|
507
|
+
await popStashEntry(repo, stashSha)
|
|
508
|
+
const statusAfterPop = await getStatus(repo)
|
|
509
|
+
expect(statusAfterPop).toBeTruthy()
|
|
510
|
+
const stashFile = statusAfterPop!.workingDirectory.files.find(
|
|
511
|
+
f => f.path === 'stash-test.txt'
|
|
512
|
+
)
|
|
513
|
+
expect(stashFile).toBeTruthy()
|
|
514
|
+
|
|
515
|
+
// Clean up: discard the restored file (stash pop restores to working tree, not index)
|
|
516
|
+
git(repoPath, 'checkout -- stash-test.txt')
|
|
517
|
+
})
|
|
154
518
|
})
|
|
155
519
|
|
|
156
520
|
afterAll(() => {
|