@anvil-works/anvil-cli 0.7.0-canary.12 → 0.7.0-canary.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WatchSession.d.ts +1 -0
- package/dist/WatchSession.d.ts.map +1 -1
- package/dist/cli.js +85 -11
- package/dist/index.js +85 -11
- package/dist/services/git.d.ts +10 -0
- package/dist/services/git.d.ts.map +1 -1
- package/dist/watch/SaveProcessor.d.ts +1 -1
- package/dist/watch/SaveProcessor.d.ts.map +1 -1
- package/dist/watch/SyncManager.d.ts +4 -0
- package/dist/watch/SyncManager.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/WatchSession.d.ts
CHANGED
|
@@ -136,6 +136,7 @@ export declare class WatchSession extends Emitter<WatchSessionEvents> {
|
|
|
136
136
|
resumeAfterUserInput(): void;
|
|
137
137
|
initialize(): Promise<void>;
|
|
138
138
|
private initializeProcessors;
|
|
139
|
+
private syncAfterSave;
|
|
139
140
|
private connectWebSocket;
|
|
140
141
|
private handleDependencyRepoUpdate;
|
|
141
142
|
private queueDependencyRefresh;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WatchSession.d.ts","sourceRoot":"","sources":["../src/WatchSession.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EAOtB,MAAM,eAAe,CAAC;AAcvB,OAAO,
|
|
1
|
+
{"version":3,"file":"WatchSession.d.ts","sourceRoot":"","sources":["../src/WatchSession.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -14899,6 +14899,32 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
14899
14899
|
throw errors_createGitError.commandFailed("rebase --abort", e.message);
|
|
14900
14900
|
}
|
|
14901
14901
|
}
|
|
14902
|
+
async isAncestor(ancestorRef, descendantRef) {
|
|
14903
|
+
try {
|
|
14904
|
+
const mergeBase = (await this.git.raw([
|
|
14905
|
+
"merge-base",
|
|
14906
|
+
ancestorRef,
|
|
14907
|
+
descendantRef
|
|
14908
|
+
])).trim();
|
|
14909
|
+
const ancestorCommit = (await this.git.revparse([
|
|
14910
|
+
ancestorRef
|
|
14911
|
+
])).trim();
|
|
14912
|
+
return mergeBase === ancestorCommit;
|
|
14913
|
+
} catch {
|
|
14914
|
+
return false;
|
|
14915
|
+
}
|
|
14916
|
+
}
|
|
14917
|
+
async mergeFastForward(ref) {
|
|
14918
|
+
try {
|
|
14919
|
+
await this.git.raw([
|
|
14920
|
+
"merge",
|
|
14921
|
+
"--ff-only",
|
|
14922
|
+
ref
|
|
14923
|
+
]);
|
|
14924
|
+
} catch (e) {
|
|
14925
|
+
throw errors_createGitError.commandFailed("merge --ff-only", e.message);
|
|
14926
|
+
}
|
|
14927
|
+
}
|
|
14902
14928
|
async deleteRef(ref) {
|
|
14903
14929
|
try {
|
|
14904
14930
|
await this.git.raw([
|
|
@@ -17968,7 +17994,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
17968
17994
|
await this.handleConflict(json_resp, originalFilePaths, retryCount);
|
|
17969
17995
|
return;
|
|
17970
17996
|
}
|
|
17971
|
-
if (200 === resp.status) return void await this.handleSuccess(json_resp);
|
|
17997
|
+
if (200 === resp.status) return void await this.handleSuccess(json_resp, originalFilePaths);
|
|
17972
17998
|
logger_logger.error(`Unexpected response status: ${resp.status}`);
|
|
17973
17999
|
throw {
|
|
17974
18000
|
type: "server_error",
|
|
@@ -18071,10 +18097,10 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18071
18097
|
reason: "Unknown conflict"
|
|
18072
18098
|
};
|
|
18073
18099
|
}
|
|
18074
|
-
async handleSuccess(json_resp) {
|
|
18100
|
+
async handleSuccess(json_resp, originalFilePaths) {
|
|
18075
18101
|
const version = json_resp.version;
|
|
18076
18102
|
const oldCommitId = json_resp.previous_commit ?? null;
|
|
18077
|
-
this.config.
|
|
18103
|
+
const commitIdBeforePostSaveSync = this.config.getCommitId();
|
|
18078
18104
|
this.emit("saved", {
|
|
18079
18105
|
oldCommitId,
|
|
18080
18106
|
newCommitId: version,
|
|
@@ -18082,8 +18108,9 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18082
18108
|
});
|
|
18083
18109
|
if (this.postSaveCallback) {
|
|
18084
18110
|
logger_logger.progressUpdate("sync", "Syncing back");
|
|
18085
|
-
await this.postSaveCallback();
|
|
18111
|
+
await this.postSaveCallback(new Set(originalFilePaths));
|
|
18086
18112
|
}
|
|
18113
|
+
if (this.config.getCommitId() === commitIdBeforePostSaveSync) this.config.setCommitId(version);
|
|
18087
18114
|
}
|
|
18088
18115
|
async rerouteChanges(changes) {
|
|
18089
18116
|
logger_logger.verbose(external_chalk_default().blue(`Re-routing ${changes.length} local change(s)...`));
|
|
@@ -18154,12 +18181,22 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18154
18181
|
try {
|
|
18155
18182
|
const oldCommitId = this.config.getCommitId();
|
|
18156
18183
|
let locallyChangedFiles;
|
|
18184
|
+
let initialStatus;
|
|
18157
18185
|
if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
|
|
18158
18186
|
else {
|
|
18159
|
-
|
|
18160
|
-
locallyChangedFiles = buildLocalChangesSet(
|
|
18187
|
+
initialStatus = await this.config.gitService.getStatus();
|
|
18188
|
+
locallyChangedFiles = buildLocalChangesSet(initialStatus);
|
|
18161
18189
|
}
|
|
18162
|
-
|
|
18190
|
+
let syncMode;
|
|
18191
|
+
if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
|
|
18192
|
+
else {
|
|
18193
|
+
await this.fetchAndResetFromAnvil(locallyChangedFiles);
|
|
18194
|
+
syncMode = "preservation";
|
|
18195
|
+
}
|
|
18196
|
+
if ("clean-move" === syncMode) return {
|
|
18197
|
+
localOnlyChanges: [],
|
|
18198
|
+
conflicts: []
|
|
18199
|
+
};
|
|
18163
18200
|
const newCommitId = await this.config.gitService.getCommitId();
|
|
18164
18201
|
this.config.setCommitId(newCommitId);
|
|
18165
18202
|
const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
|
|
@@ -18184,15 +18221,43 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18184
18221
|
}
|
|
18185
18222
|
}
|
|
18186
18223
|
async fetchAndResetFromAnvil(localChangesToPreserve = new Set()) {
|
|
18224
|
+
const oldCommitId = this.config.getCommitId();
|
|
18225
|
+
await this.withFetchedAnvilRef((tempRef)=>this.resetToFetchedAnvilRef(tempRef, oldCommitId, localChangesToPreserve));
|
|
18226
|
+
}
|
|
18227
|
+
async fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles) {
|
|
18228
|
+
return this.withFetchedAnvilRef(async (tempRef)=>{
|
|
18229
|
+
const localHead = await this.config.gitService.getCommitId();
|
|
18230
|
+
if (await this.config.gitService.isAncestor(localHead, tempRef)) await this.config.gitService.mergeFastForward(tempRef);
|
|
18231
|
+
else {
|
|
18232
|
+
const statusBeforeHardReset = await this.config.gitService.getStatus();
|
|
18233
|
+
if (!this.isCleanForFastForward(statusBeforeHardReset)) {
|
|
18234
|
+
for (const filePath of buildLocalChangesSet(statusBeforeHardReset))locallyChangedFiles.add(filePath);
|
|
18235
|
+
await this.resetToFetchedAnvilRef(tempRef, oldCommitId, locallyChangedFiles);
|
|
18236
|
+
return "preservation";
|
|
18237
|
+
}
|
|
18238
|
+
await this.config.gitService.reset(tempRef, "hard");
|
|
18239
|
+
}
|
|
18240
|
+
const newCommitId = await this.config.gitService.getCommitId();
|
|
18241
|
+
this.config.setCommitId(newCommitId);
|
|
18242
|
+
await this.config.editorYaml.reload();
|
|
18243
|
+
return "clean-move";
|
|
18244
|
+
});
|
|
18245
|
+
}
|
|
18246
|
+
async withFetchedAnvilRef(callback) {
|
|
18187
18247
|
const validToken = await auth_getValidAuthToken(this.config.anvilUrl, this.config.username);
|
|
18188
18248
|
this.config.setAuthToken(validToken);
|
|
18189
18249
|
const httpUrl = getGitFetchUrl(this.config.appId, this.config.getAuthToken(), this.config.anvilUrl);
|
|
18190
18250
|
const currentBranch = this.config.getCurrentBranch();
|
|
18191
18251
|
const tempRef = `anvil-sync-temp-${Date.now()}`;
|
|
18192
|
-
|
|
18193
|
-
|
|
18252
|
+
try {
|
|
18253
|
+
await this.config.gitService.fetch(httpUrl, `+${currentBranch}:${tempRef}`);
|
|
18254
|
+
return await callback(tempRef);
|
|
18255
|
+
} finally{
|
|
18256
|
+
await this.config.gitService.deleteRef(`refs/heads/${tempRef}`);
|
|
18257
|
+
}
|
|
18258
|
+
}
|
|
18259
|
+
async resetToFetchedAnvilRef(tempRef, oldCommitId, localChangesToPreserve) {
|
|
18194
18260
|
await this.config.gitService.reset(tempRef, "mixed");
|
|
18195
|
-
await this.config.gitService.deleteRef(`refs/heads/${tempRef}`);
|
|
18196
18261
|
const newCommitId = await this.config.gitService.getCommitId();
|
|
18197
18262
|
await this.config.gitService.checkout([
|
|
18198
18263
|
".anvil_editor.yaml",
|
|
@@ -18202,6 +18267,9 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18202
18267
|
await this.deleteFilesRemovedOnAnvilLocally(oldCommitId, newCommitId, localChangesToPreserve);
|
|
18203
18268
|
await this.discardFormattingOnlyYamlChanges();
|
|
18204
18269
|
}
|
|
18270
|
+
isCleanForFastForward(status) {
|
|
18271
|
+
return status.isClean && 0 === status.modified.length && 0 === status.notAdded.length && 0 === status.created.length && 0 === status.deleted.length && 0 === status.staged.length && 0 === status.renamed.length;
|
|
18272
|
+
}
|
|
18205
18273
|
async deleteFilesRemovedOnAnvilLocally(oldCommitId, newCommitId, localChangesToPreserve) {
|
|
18206
18274
|
try {
|
|
18207
18275
|
const status = await this.config.gitService.getStatus();
|
|
@@ -18415,7 +18483,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18415
18483
|
isPaused: ()=>this.isPausedForUserInput
|
|
18416
18484
|
});
|
|
18417
18485
|
this.saveProcessor.setSyncCallback((filePaths)=>this.syncManager.syncRemoteChanges(filePaths));
|
|
18418
|
-
this.saveProcessor.setPostSaveCallback(()=>this.
|
|
18486
|
+
this.saveProcessor.setPostSaveCallback((filePaths)=>this.syncAfterSave(filePaths));
|
|
18419
18487
|
this.saveProcessor.on("save-started", (data)=>this.emit("save-started", data));
|
|
18420
18488
|
this.saveProcessor.on("save-succeeded", (data)=>this.emit("save-succeeded", data));
|
|
18421
18489
|
this.saveProcessor.on("save-failed", (data)=>this.emit("save-failed", data));
|
|
@@ -18428,6 +18496,12 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18428
18496
|
this.saveProcessor.on("sync-conflict", (data)=>this.emit("sync-conflict", data));
|
|
18429
18497
|
this.saveProcessor.on("max-retries-exceeded", (data)=>this.emit("max-retries-exceeded", data));
|
|
18430
18498
|
}
|
|
18499
|
+
async syncAfterSave(savedFilePaths) {
|
|
18500
|
+
const status = await this.gitService.getStatus();
|
|
18501
|
+
const locallyChangedFiles = buildLocalChangesSet(status);
|
|
18502
|
+
if (!this.stagedOnly) for (const filePath of savedFilePaths)locallyChangedFiles.add(filePath);
|
|
18503
|
+
return this.syncManager.syncRemoteChanges(locallyChangedFiles);
|
|
18504
|
+
}
|
|
18431
18505
|
async connectWebSocket() {
|
|
18432
18506
|
this.wsClient = new WebSocketClient({
|
|
18433
18507
|
appId: this.appId,
|
package/dist/index.js
CHANGED
|
@@ -14927,6 +14927,32 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
14927
14927
|
throw errors_createGitError.commandFailed("rebase --abort", e.message);
|
|
14928
14928
|
}
|
|
14929
14929
|
}
|
|
14930
|
+
async isAncestor(ancestorRef, descendantRef) {
|
|
14931
|
+
try {
|
|
14932
|
+
const mergeBase = (await this.git.raw([
|
|
14933
|
+
"merge-base",
|
|
14934
|
+
ancestorRef,
|
|
14935
|
+
descendantRef
|
|
14936
|
+
])).trim();
|
|
14937
|
+
const ancestorCommit = (await this.git.revparse([
|
|
14938
|
+
ancestorRef
|
|
14939
|
+
])).trim();
|
|
14940
|
+
return mergeBase === ancestorCommit;
|
|
14941
|
+
} catch {
|
|
14942
|
+
return false;
|
|
14943
|
+
}
|
|
14944
|
+
}
|
|
14945
|
+
async mergeFastForward(ref) {
|
|
14946
|
+
try {
|
|
14947
|
+
await this.git.raw([
|
|
14948
|
+
"merge",
|
|
14949
|
+
"--ff-only",
|
|
14950
|
+
ref
|
|
14951
|
+
]);
|
|
14952
|
+
} catch (e) {
|
|
14953
|
+
throw errors_createGitError.commandFailed("merge --ff-only", e.message);
|
|
14954
|
+
}
|
|
14955
|
+
}
|
|
14930
14956
|
async deleteRef(ref) {
|
|
14931
14957
|
try {
|
|
14932
14958
|
await this.git.raw([
|
|
@@ -17996,7 +18022,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
17996
18022
|
await this.handleConflict(json_resp, originalFilePaths, retryCount);
|
|
17997
18023
|
return;
|
|
17998
18024
|
}
|
|
17999
|
-
if (200 === resp.status) return void await this.handleSuccess(json_resp);
|
|
18025
|
+
if (200 === resp.status) return void await this.handleSuccess(json_resp, originalFilePaths);
|
|
18000
18026
|
logger_logger.error(`Unexpected response status: ${resp.status}`);
|
|
18001
18027
|
throw {
|
|
18002
18028
|
type: "server_error",
|
|
@@ -18099,10 +18125,10 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18099
18125
|
reason: "Unknown conflict"
|
|
18100
18126
|
};
|
|
18101
18127
|
}
|
|
18102
|
-
async handleSuccess(json_resp) {
|
|
18128
|
+
async handleSuccess(json_resp, originalFilePaths) {
|
|
18103
18129
|
const version = json_resp.version;
|
|
18104
18130
|
const oldCommitId = json_resp.previous_commit ?? null;
|
|
18105
|
-
this.config.
|
|
18131
|
+
const commitIdBeforePostSaveSync = this.config.getCommitId();
|
|
18106
18132
|
this.emit("saved", {
|
|
18107
18133
|
oldCommitId,
|
|
18108
18134
|
newCommitId: version,
|
|
@@ -18110,8 +18136,9 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18110
18136
|
});
|
|
18111
18137
|
if (this.postSaveCallback) {
|
|
18112
18138
|
logger_logger.progressUpdate("sync", "Syncing back");
|
|
18113
|
-
await this.postSaveCallback();
|
|
18139
|
+
await this.postSaveCallback(new Set(originalFilePaths));
|
|
18114
18140
|
}
|
|
18141
|
+
if (this.config.getCommitId() === commitIdBeforePostSaveSync) this.config.setCommitId(version);
|
|
18115
18142
|
}
|
|
18116
18143
|
async rerouteChanges(changes) {
|
|
18117
18144
|
logger_logger.verbose(external_chalk_default().blue(`Re-routing ${changes.length} local change(s)...`));
|
|
@@ -18182,12 +18209,22 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18182
18209
|
try {
|
|
18183
18210
|
const oldCommitId = this.config.getCommitId();
|
|
18184
18211
|
let locallyChangedFiles;
|
|
18212
|
+
let initialStatus;
|
|
18185
18213
|
if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
|
|
18186
18214
|
else {
|
|
18187
|
-
|
|
18188
|
-
locallyChangedFiles = buildLocalChangesSet(
|
|
18215
|
+
initialStatus = await this.config.gitService.getStatus();
|
|
18216
|
+
locallyChangedFiles = buildLocalChangesSet(initialStatus);
|
|
18189
18217
|
}
|
|
18190
|
-
|
|
18218
|
+
let syncMode;
|
|
18219
|
+
if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
|
|
18220
|
+
else {
|
|
18221
|
+
await this.fetchAndResetFromAnvil(locallyChangedFiles);
|
|
18222
|
+
syncMode = "preservation";
|
|
18223
|
+
}
|
|
18224
|
+
if ("clean-move" === syncMode) return {
|
|
18225
|
+
localOnlyChanges: [],
|
|
18226
|
+
conflicts: []
|
|
18227
|
+
};
|
|
18191
18228
|
const newCommitId = await this.config.gitService.getCommitId();
|
|
18192
18229
|
this.config.setCommitId(newCommitId);
|
|
18193
18230
|
const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
|
|
@@ -18212,15 +18249,43 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18212
18249
|
}
|
|
18213
18250
|
}
|
|
18214
18251
|
async fetchAndResetFromAnvil(localChangesToPreserve = new Set()) {
|
|
18252
|
+
const oldCommitId = this.config.getCommitId();
|
|
18253
|
+
await this.withFetchedAnvilRef((tempRef)=>this.resetToFetchedAnvilRef(tempRef, oldCommitId, localChangesToPreserve));
|
|
18254
|
+
}
|
|
18255
|
+
async fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles) {
|
|
18256
|
+
return this.withFetchedAnvilRef(async (tempRef)=>{
|
|
18257
|
+
const localHead = await this.config.gitService.getCommitId();
|
|
18258
|
+
if (await this.config.gitService.isAncestor(localHead, tempRef)) await this.config.gitService.mergeFastForward(tempRef);
|
|
18259
|
+
else {
|
|
18260
|
+
const statusBeforeHardReset = await this.config.gitService.getStatus();
|
|
18261
|
+
if (!this.isCleanForFastForward(statusBeforeHardReset)) {
|
|
18262
|
+
for (const filePath of buildLocalChangesSet(statusBeforeHardReset))locallyChangedFiles.add(filePath);
|
|
18263
|
+
await this.resetToFetchedAnvilRef(tempRef, oldCommitId, locallyChangedFiles);
|
|
18264
|
+
return "preservation";
|
|
18265
|
+
}
|
|
18266
|
+
await this.config.gitService.reset(tempRef, "hard");
|
|
18267
|
+
}
|
|
18268
|
+
const newCommitId = await this.config.gitService.getCommitId();
|
|
18269
|
+
this.config.setCommitId(newCommitId);
|
|
18270
|
+
await this.config.editorYaml.reload();
|
|
18271
|
+
return "clean-move";
|
|
18272
|
+
});
|
|
18273
|
+
}
|
|
18274
|
+
async withFetchedAnvilRef(callback) {
|
|
18215
18275
|
const validToken = await auth_getValidAuthToken(this.config.anvilUrl, this.config.username);
|
|
18216
18276
|
this.config.setAuthToken(validToken);
|
|
18217
18277
|
const httpUrl = anvil_api_getGitFetchUrl(this.config.appId, this.config.getAuthToken(), this.config.anvilUrl);
|
|
18218
18278
|
const currentBranch = this.config.getCurrentBranch();
|
|
18219
18279
|
const tempRef = `anvil-sync-temp-${Date.now()}`;
|
|
18220
|
-
|
|
18221
|
-
|
|
18280
|
+
try {
|
|
18281
|
+
await this.config.gitService.fetch(httpUrl, `+${currentBranch}:${tempRef}`);
|
|
18282
|
+
return await callback(tempRef);
|
|
18283
|
+
} finally{
|
|
18284
|
+
await this.config.gitService.deleteRef(`refs/heads/${tempRef}`);
|
|
18285
|
+
}
|
|
18286
|
+
}
|
|
18287
|
+
async resetToFetchedAnvilRef(tempRef, oldCommitId, localChangesToPreserve) {
|
|
18222
18288
|
await this.config.gitService.reset(tempRef, "mixed");
|
|
18223
|
-
await this.config.gitService.deleteRef(`refs/heads/${tempRef}`);
|
|
18224
18289
|
const newCommitId = await this.config.gitService.getCommitId();
|
|
18225
18290
|
await this.config.gitService.checkout([
|
|
18226
18291
|
".anvil_editor.yaml",
|
|
@@ -18230,6 +18295,9 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18230
18295
|
await this.deleteFilesRemovedOnAnvilLocally(oldCommitId, newCommitId, localChangesToPreserve);
|
|
18231
18296
|
await this.discardFormattingOnlyYamlChanges();
|
|
18232
18297
|
}
|
|
18298
|
+
isCleanForFastForward(status) {
|
|
18299
|
+
return status.isClean && 0 === status.modified.length && 0 === status.notAdded.length && 0 === status.created.length && 0 === status.deleted.length && 0 === status.staged.length && 0 === status.renamed.length;
|
|
18300
|
+
}
|
|
18233
18301
|
async deleteFilesRemovedOnAnvilLocally(oldCommitId, newCommitId, localChangesToPreserve) {
|
|
18234
18302
|
try {
|
|
18235
18303
|
const status = await this.config.gitService.getStatus();
|
|
@@ -18443,7 +18511,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18443
18511
|
isPaused: ()=>this.isPausedForUserInput
|
|
18444
18512
|
});
|
|
18445
18513
|
this.saveProcessor.setSyncCallback((filePaths)=>this.syncManager.syncRemoteChanges(filePaths));
|
|
18446
|
-
this.saveProcessor.setPostSaveCallback(()=>this.
|
|
18514
|
+
this.saveProcessor.setPostSaveCallback((filePaths)=>this.syncAfterSave(filePaths));
|
|
18447
18515
|
this.saveProcessor.on("save-started", (data)=>this.emit("save-started", data));
|
|
18448
18516
|
this.saveProcessor.on("save-succeeded", (data)=>this.emit("save-succeeded", data));
|
|
18449
18517
|
this.saveProcessor.on("save-failed", (data)=>this.emit("save-failed", data));
|
|
@@ -18456,6 +18524,12 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
|
|
|
18456
18524
|
this.saveProcessor.on("sync-conflict", (data)=>this.emit("sync-conflict", data));
|
|
18457
18525
|
this.saveProcessor.on("max-retries-exceeded", (data)=>this.emit("max-retries-exceeded", data));
|
|
18458
18526
|
}
|
|
18527
|
+
async syncAfterSave(savedFilePaths) {
|
|
18528
|
+
const status = await this.gitService.getStatus();
|
|
18529
|
+
const locallyChangedFiles = buildLocalChangesSet(status);
|
|
18530
|
+
if (!this.stagedOnly) for (const filePath of savedFilePaths)locallyChangedFiles.add(filePath);
|
|
18531
|
+
return this.syncManager.syncRemoteChanges(locallyChangedFiles);
|
|
18532
|
+
}
|
|
18459
18533
|
async connectWebSocket() {
|
|
18460
18534
|
this.wsClient = new WebSocketClient({
|
|
18461
18535
|
appId: this.appId,
|
package/dist/services/git.d.ts
CHANGED
|
@@ -146,6 +146,16 @@ export declare class GitService {
|
|
|
146
146
|
* @throws {GitError} if abort fails
|
|
147
147
|
*/
|
|
148
148
|
rebaseAbort(): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Check whether ancestorRef is an ancestor of descendantRef.
|
|
151
|
+
* Returns false when Git cannot prove the ancestor relationship.
|
|
152
|
+
*/
|
|
153
|
+
isAncestor(ancestorRef: string, descendantRef: string): Promise<boolean>;
|
|
154
|
+
/**
|
|
155
|
+
* Fast-forward the current branch to a ref.
|
|
156
|
+
* @throws {GitError} if the merge cannot be completed as a fast-forward
|
|
157
|
+
*/
|
|
158
|
+
mergeFastForward(ref: string): Promise<void>;
|
|
149
159
|
/**
|
|
150
160
|
* Delete a local ref.
|
|
151
161
|
* Does not throw if ref doesn't exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ type SyncCallback = (filePaths: Set<string>) => Promise<{
|
|
|
62
62
|
localOnlyChanges: FileChange[];
|
|
63
63
|
conflicts: FileChange[];
|
|
64
64
|
}>;
|
|
65
|
-
type PostSaveCallback =
|
|
65
|
+
type PostSaveCallback = SyncCallback;
|
|
66
66
|
export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
|
|
67
67
|
private hasPendingChanges;
|
|
68
68
|
private debounceTimer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkBrC,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAqB5E,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,gBAAgB,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC;IACtE,eAAe,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,iCAAiC,EAAE,IAAI,CAAC;IACxC,mBAAmB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC;IACjF,eAAe,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC;IAChG,sBAAsB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC;CACjF;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,sBAAsB,EAAE,MAAM,MAAM,CAAC;IACrC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,KAAK,YAAY,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CAAC;AAErH,KAAK,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,10 @@ export declare class SyncManager extends Emitter<SyncManagerEvents> {
|
|
|
44
44
|
* @throws {AuthError | GitError} on failure
|
|
45
45
|
*/
|
|
46
46
|
fetchAndResetFromAnvil(localChangesToPreserve?: Set<string>): Promise<void>;
|
|
47
|
+
private fetchAndMoveCleanTreeToAnvilHead;
|
|
48
|
+
private withFetchedAnvilRef;
|
|
49
|
+
private resetToFetchedAnvilRef;
|
|
50
|
+
private isCleanForFastForward;
|
|
47
51
|
private deleteFilesRemovedOnAnvilLocally;
|
|
48
52
|
private discardFormattingOnlyYamlChanges;
|
|
49
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAQH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,EAAE,CAAC;IACnB,gBAAgB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED,qBAAa,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,iBAAiB;IAKrC;;;;;;;OAOG;IACG,iBAAiB,CACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC;QAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAsDvE;;;OAGG;IACG,sBAAsB,CAAC,sBAAsB,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO9E,gCAAgC;YA2BhC,mBAAmB;YAgBnB,sBAAsB;IAapC,OAAO,CAAC,qBAAqB;YAYf,gCAAgC;YAiBhC,gCAAgC;CAkGjD"}
|