feat: only require sync if is main wiki

This commit is contained in:
tiddlygit-test 2021-09-21 02:44:48 +08:00
parent bb88f38f3e
commit 54216db75c
6 changed files with 397 additions and 165 deletions

546
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -39,7 +39,7 @@
"electron-window-state": "5.0.3",
"errio": "1.2.2",
"fs-extra": "10.0.0",
"git-sync-js": "^0.3.1",
"git-sync-js": "^0.4.1",
"i18next": "20.3.5",
"i18next-electron-fs-backend": "1.3.8",
"i18next-fs-backend": "1.1.1",

View file

@ -7,12 +7,12 @@ import { IGitLogMessage, IGitUserInfos } from './interface';
import { defaultGitInfo } from './defaultGitInfo';
import { WikiChannel } from '@/constants/channels';
function initWikiGit(wikiFolderPath: string, isSyncedWiki?: boolean, remoteUrl?: string, userInfo?: IGitUserInfos): Observable<IGitLogMessage> {
function initWikiGit(wikiFolderPath: string, syncImmediately?: boolean, remoteUrl?: string, userInfo?: IGitUserInfos): Observable<IGitLogMessage> {
return new Observable<IGitLogMessage>((observer) => {
void initGit({
dir: wikiFolderPath,
remoteUrl,
syncImmediately: isSyncedWiki,
syncImmediately,
userInfo,
defaultGitInfo,
logger: {

View file

@ -229,9 +229,11 @@ export class Git implements IGitService {
complete: () => resolve(),
});
public async initWikiGit(wikiFolderPath: string, isSyncedWiki?: boolean, remoteUrl?: string, userInfo?: IGitUserInfos): Promise<void> {
public async initWikiGit(wikiFolderPath: string, isSyncedWiki?: boolean, isMainWiki?: boolean, remoteUrl?: string, userInfo?: IGitUserInfos): Promise<void> {
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
const syncImmediately = !!isSyncedWiki && !!isMainWiki;
return await new Promise<void>((resolve, reject) => {
this.gitWorker?.initWikiGit(wikiFolderPath, isSyncedWiki, remoteUrl, userInfo).subscribe(this.getWorkerObserver(resolve, reject));
this.gitWorker?.initWikiGit(wikiFolderPath, syncImmediately, remoteUrl, userInfo).subscribe(this.getWorkerObserver(resolve, reject));
});
}

View file

@ -38,7 +38,7 @@ export interface IGitService {
/**
* Run git init in a folder, prepare remote origin if isSyncedWiki
*/
initWikiGit(wikiFolderPath: string, isSyncedWiki: true, remoteUrl: string, userInfo: IGitUserInfos): Promise<void>;
initWikiGit(wikiFolderPath: string, isSyncedWiki: true, isMainWiki: boolean, remoteUrl: string, userInfo: IGitUserInfos): Promise<void>;
updateGitInfoTiddler(githubRepoName: string): Promise<void>;
}
export const GitServiceIPCDescriptor = {

View file

@ -36,7 +36,7 @@ export class WikiGitWorkspace implements IWikiGitWorkspaceService {
} else {
if (isSyncedWiki) {
if (typeof gitUrl === 'string' && userInfo !== undefined) {
await this.gitService.initWikiGit(wikiFolderLocation, isSyncedWiki, gitUrl, userInfo);
await this.gitService.initWikiGit(wikiFolderLocation, isSyncedWiki, !isSubWiki, gitUrl, userInfo);
} else {
throw new InitWikiGitSyncedWikiNoGitUserInfoError(gitUrl, userInfo);
}