@@ -120,18 +120,29 @@ public ITask<ValidateGitInstallResult> ValidateGitInstall(NPath path)
120120 Version gitVersion = null ;
121121 Version gitLfsVersion = null ;
122122
123- var gitVersionTask = new GitVersionTask ( cancellationToken ) . Configure ( processManager , path ) ;
124- var gitLfsVersionTask = new GitLfsVersionTask ( cancellationToken ) . Configure ( processManager , path ) ;
125-
126- return gitVersionTask
127- . Then ( ( result , version ) => gitVersion = version )
128- . Then ( gitLfsVersionTask )
129- . Then ( ( result , version ) => gitLfsVersion = version )
130- . Then ( success => new ValidateGitInstallResult ( success &&
123+ var endTask = new FuncTask < ValidateGitInstallResult > ( cancellationToken ,
124+ ( ) => new ValidateGitInstallResult (
131125 gitVersion ? . CompareTo ( Constants . MinimumGitVersion ) >= 0 &&
132126 gitLfsVersion ? . CompareTo ( Constants . MinimumGitLfsVersion ) >= 0 ,
133- gitVersion , gitLfsVersion )
134- ) ;
127+ gitVersion , gitLfsVersion ) ) ;
128+
129+ var gitLfsVersionTask = new GitLfsVersionTask ( cancellationToken ) . Configure ( processManager , path ) ;
130+
131+ gitLfsVersionTask
132+ . Then ( ( result , version ) => { return gitLfsVersion = version ; } )
133+ . Then ( endTask , taskIsTopOfChain : true ) ;
134+
135+ gitLfsVersionTask . Then ( endTask , TaskRunOptions . OnFailure , taskIsTopOfChain : true ) ;
136+
137+ var gitVersionTask = new GitVersionTask ( cancellationToken ) . Configure ( processManager , path ) ;
138+
139+ gitVersionTask
140+ . Then ( ( result , version ) => { return gitVersion = version ; } )
141+ . Then ( gitLfsVersionTask , taskIsTopOfChain : true ) ;
142+
143+ gitVersionTask . Then ( endTask , TaskRunOptions . OnFailure , taskIsTopOfChain : true ) ;
144+
145+ return endTask ;
135146 }
136147
137148 public ITask Init ( IOutputProcessor < string > processor = null )
0 commit comments