@@ -52,20 +52,10 @@ public virtual async Task Run(bool firstRun)
5252 }
5353 else
5454 {
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 ( ) ;
6757
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 ( ) ) ;
6959
7060 if ( Environment . IsWindows )
7161 {
@@ -164,19 +154,25 @@ private async Task LoadKeychain()
164154 }
165155 }
166156
167- private static async Task < NPath > LookForGitInstallationPath ( IGitClient gitClient , ISettings systemSettings )
157+ private async Task < NPath > DetermineGitExecutablePath ( ProgressReport progress = null )
168158 {
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+ }
173165
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 )
176169 {
177- return cachedGitInstallPath ;
170+ Logger . Trace ( "Setup performed using new path" ) ;
171+ return gitInstaller . GitExecutablePath ;
178172 }
179- return await gitClient . FindGitInstallation ( ) ;
173+
174+ Logger . Trace ( "Finding git install path" ) ;
175+ return await GitClient . FindGitInstallation ( ) . SafeAwait ( ) ;
180176 }
181177
182178 protected void SetupMetrics ( string unityVersion , bool firstRun )
0 commit comments