@@ -52,20 +52,10 @@ public virtual async Task Run(bool firstRun)
52
52
}
53
53
else
54
54
{
55
- var progress = new ProgressReport ( ) ;
56
-
57
- var gitClient = new GitClient ( Environment , ProcessManager , Platform . CredentialManager , TaskManager ) ;
58
- var gitSetup = new GitInstaller ( Environment , CancellationToken ) ;
59
- var expectedPath = gitSetup . GitInstallationPath ;
60
- var setupDone = await gitSetup . SetupIfNeeded ( progress . Percentage , progress . Remaining ) ;
61
- if ( setupDone )
62
- Environment . GitExecutablePath = gitSetup . GitExecutablePath ;
63
- else
64
- Environment . GitExecutablePath = await LookForGitInstallationPath ( gitClient , SystemSettings ) . SafeAwait ( ) ;
65
-
66
- GitClient = gitClient ;
55
+ GitClient = new GitClient ( Environment , ProcessManager , Platform . CredentialManager , TaskManager ) ;
56
+ Environment . GitExecutablePath = await DetermineGitExecutablePath ( ) ;
67
57
68
- Logger . Trace ( "Environment.GitExecutablePath \" {0}\" Exists:{1}" , gitSetup . GitExecutablePath , gitSetup . GitExecutablePath . FileExists ( ) ) ;
58
+ Logger . Trace ( "Environment.GitExecutablePath \" {0}\" Exists:{1}" , Environment . GitExecutablePath , Environment . GitExecutablePath . FileExists ( ) ) ;
69
59
70
60
if ( Environment . IsWindows )
71
61
{
@@ -164,19 +154,25 @@ private async Task LoadKeychain()
164
154
}
165
155
}
166
156
167
- private static async Task < NPath > LookForGitInstallationPath ( IGitClient gitClient , ISettings systemSettings )
157
+ private async Task < NPath > DetermineGitExecutablePath ( ProgressReport progress = null )
168
158
{
169
- NPath cachedGitInstallPath = null ;
170
- var path = systemSettings . Get ( Constants . GitInstallPathKey ) ;
171
- if ( ! String . IsNullOrEmpty ( path ) )
172
- cachedGitInstallPath = path . ToNPath ( ) ;
159
+ var gitExecutablePath = SystemSettings . Get ( Constants . GitInstallPathKey ) ? . ToNPath ( ) ;
160
+ if ( gitExecutablePath != null && gitExecutablePath . FileExists ( ) )
161
+ {
162
+ Logger . Trace ( "Using git install path from settings" ) ;
163
+ return gitExecutablePath ;
164
+ }
173
165
174
- // Root paths
175
- if ( cachedGitInstallPath != null && cachedGitInstallPath . DirectoryExists ( ) )
166
+ var gitInstaller = new GitInstaller ( Environment , CancellationToken ) ;
167
+ var setupDone = await gitInstaller . SetupIfNeeded ( progress ? . Percentage , progress ? . Remaining ) ;
168
+ if ( setupDone )
176
169
{
177
- return cachedGitInstallPath ;
170
+ Logger . Trace ( "Setup performed using new path" ) ;
171
+ return gitInstaller . GitExecutablePath ;
178
172
}
179
- return await gitClient . FindGitInstallation ( ) ;
173
+
174
+ Logger . Trace ( "Finding git install path" ) ;
175
+ return await GitClient . FindGitInstallation ( ) . SafeAwait ( ) ;
180
176
}
181
177
182
178
protected void SetupMetrics ( string unityVersion , bool firstRun )
0 commit comments