| 114 | } |
| 115 | |
| 116 | protected override syncProjectToRemoteOnce( |
| 117 | _projectPath: string, |
| 118 | _layout: RemoteProjectLayout, |
| 119 | _initLogger: InitLogger, |
| 120 | _abortSignal?: AbortSignal, |
| 121 | options: { forceNoThin?: boolean } = {} |
| 122 | ): Promise<void> { |
| 123 | const action = this.actions.shift(); |
| 124 | if (!action) { |
| 125 | return Promise.reject(new Error("Missing sync action")); |
| 126 | } |
| 127 | |
| 128 | this.callOrder.push(action.label); |
| 129 | this.forceNoThinPerAttempt.push(options.forceNoThin === true); |
| 130 | action.abortController?.abort(); |
| 131 | if (action.error) { |
| 132 | return Promise.reject(action.error); |
| 133 | } |
| 134 | return Promise.resolve(); |
| 135 | } |
| 136 | |
| 137 | protected override async cleanupRetryableProjectSyncFailure( |
| 138 | baseRepoPathArg: string, |