@@ -84,36 +84,51 @@ public void Run(bool firstRun)
84
84
}
85
85
} ) ;
86
86
87
- var findExecTask = new FindExecTask ( "git" , CancellationToken )
88
- . Finally ( ( b , ex , path ) => {
89
- if ( b && path != null )
90
- {
91
- Logger . Trace ( "FindExecTask Success: {0}" , path ) ;
92
-
93
- new FuncTask < NPath > ( CancellationToken , ( ) => path )
94
- . Then ( afterPathDetermined )
95
- . Start ( ) ;
96
- }
97
- else
98
- {
99
- Logger . Warning ( "FindExecTask Failure" ) ;
100
- Logger . Error ( "Git not found" ) ;
101
- }
102
- } ) ;
103
87
104
- var applicationDataPath = Environment . GetSpecialFolder ( System . Environment . SpecialFolder . LocalApplicationData ) . ToNPath ( ) ;
105
- var installDetails = new GitInstallDetails ( applicationDataPath , true ) ;
88
+ var gitExecutablePath = SystemSettings . Get ( Constants . GitInstallPathKey ) ? . ToNPath ( ) ;
89
+ if ( gitExecutablePath != null && gitExecutablePath . FileExists ( ) )
90
+ {
91
+ Logger . Trace ( "Using git install path from settings: {0}" , gitExecutablePath ) ;
106
92
107
- var gitInstaller = new GitInstaller ( Environment , CancellationToken , installDetails ) ;
108
- gitInstaller . SetupGitIfNeeded ( new ActionTask < NPath > ( CancellationToken , ( b , path ) => {
109
- Logger . Trace ( "GitInstaller Success: {0}" , path ) ;
110
- new FuncTask < NPath > ( CancellationToken , ( ) => path )
93
+ new FuncTask < NPath > ( CancellationToken , ( ) => gitExecutablePath )
111
94
. Then ( afterPathDetermined )
112
95
. Start ( ) ;
113
- } ) , new ActionTask ( CancellationToken , ( ) => {
114
- Logger . Warning ( "GitInstaller Failure" ) ;
115
- findExecTask . Start ( ) ;
116
- } ) ) ;
96
+ }
97
+ else
98
+ {
99
+ Logger . Trace ( "No git path found in settings" ) ;
100
+
101
+ var findExecTask = new FindExecTask ( "git" , CancellationToken )
102
+ . Finally ( ( b , ex , path ) => {
103
+ if ( b && path != null )
104
+ {
105
+ Logger . Trace ( "FindExecTask Success: {0}" , path ) ;
106
+
107
+ new FuncTask < NPath > ( CancellationToken , ( ) => path )
108
+ . Then ( afterPathDetermined )
109
+ . Start ( ) ;
110
+ }
111
+ else
112
+ {
113
+ Logger . Warning ( "FindExecTask Failure" ) ;
114
+ Logger . Error ( "Git not found" ) ;
115
+ }
116
+ } ) ;
117
+
118
+ var applicationDataPath = Environment . GetSpecialFolder ( System . Environment . SpecialFolder . LocalApplicationData ) . ToNPath ( ) ;
119
+ var installDetails = new GitInstallDetails ( applicationDataPath , true ) ;
120
+ var gitInstaller = new GitInstaller ( Environment , CancellationToken , installDetails ) ;
121
+
122
+ gitInstaller . SetupGitIfNeeded ( new ActionTask < NPath > ( CancellationToken , ( b , path ) => {
123
+ Logger . Trace ( "GitInstaller Success: {0}" , path ) ;
124
+ new FuncTask < NPath > ( CancellationToken , ( ) => path )
125
+ . Then ( afterPathDetermined )
126
+ . Start ( ) ;
127
+ } ) , new ActionTask ( CancellationToken , ( ) => {
128
+ Logger . Warning ( "GitInstaller Failure" ) ;
129
+ findExecTask . Start ( ) ;
130
+ } ) ) ;
131
+ }
117
132
}
118
133
119
134
public ITask InitializeRepository ( )
0 commit comments