|
1 | 1 | import*asTTfrom'typings/tutorial'
|
2 | 2 | import{exec,exists}from'../node'
|
| 3 | +import{version,compareVersions}from'../dependencies' |
3 | 4 | importloggerfrom'../logger'
|
4 | 5 |
|
5 | 6 | exportconstgitOrigin='coderoad'
|
@@ -70,8 +71,22 @@ export async function clear(): Promise<Error | void> {
|
70 | 71 | }
|
71 | 72 |
|
72 | 73 | asyncfunctioninit():Promise<Error|void>{
|
| 74 | +constgitVersion=awaitversion('git') |
| 75 | +if(!gitVersion){ |
| 76 | +thrownewError('Error: No git version found') |
| 77 | +} |
| 78 | +consthasInitialBranch=awaitcompareVersions(gitVersion,'>=2.28.0') |
| 79 | +letstderr |
| 80 | +if(hasInitialBranch){ |
| 81 | +// --initial-branch is introduced in git v2.28 when git changed the default master -> main |
| 82 | +constinitResult=awaitexec({command:'git init --initial-branch=master'}) |
| 83 | +stderr=initResult.stderr |
| 84 | +}else{ |
| 85 | +// pre git v2.28, master is default branch |
| 86 | +constinitResult=awaitexec({command:'git init'}) |
| 87 | +stderr=initResult.stderr |
| 88 | +} |
73 | 89 | // note: prevents stderr warning concerning default init branch
|
74 |
| -const{ stderr}=awaitexec({command:'git init --initial-branch=master'}) |
75 | 90 | if(stderr){
|
76 | 91 | thrownewError(`Error initializing Git:${stderr}`)
|
77 | 92 | }
|
|