|
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 | } |
|