@@ -218,9 +218,9 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
218218 } else {
219219 set inFile = " "
220220 }
221-
221+ // Want to invoke merge conflict autoresolver in case of issues
222222 set returnCode = ##class (SourceControl.Git.Utils ).RunGitCommandWithInput (" -c" ,inFile ,.errStream ,.outStream ,gitArgs ...)
223-
223+
224224 set %data = ##class (%Stream.TmpCharacter ).%New ()
225225 set changeTerminators = (%data .LineTerminator '= $char (13 ,10 ))
226226 set %data .LineTerminator = $char (13 ,10 ) // For the CSPGateway.
@@ -284,24 +284,48 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
284284 }
285285
286286 set inFile = " "
287+ if (gitCmd = " stash" ) {
288+ set st = ##class (SourceControl.Git.Utils ).RunGitAndHandleMerge (" -c" ,inFile , .resolver , .succeeded , .returnCode , .errStream , .outStream , argsArr ...)
289+
290+ set %data = ##class (%Stream.TmpCharacter ).%New ()
291+ set changeTerminators = (%data .LineTerminator '= $char (13 ,10 ))
292+ set %data .LineTerminator = $char (13 ,10 ) // For the CSPGateway.
293+ do outStream .Rewind ()
294+
295+ // Don't show merge error if merge succeeded
296+ if succeeded {
297+ do %data .WriteLine (outStream .ReadLine ())
298+ do %data .WriteLine (" Git-Stderr-Length: " _ 0 )
299+ } else {
300+ set nLines = 0
301+ do errStream .Rewind ()
302+ while 'errStream .AtEnd {
303+ do %data .WriteLine (errStream .ReadLine ())
304+ set :changeTerminators nLines = nLines + 1
305+ }
306+ do %data .WriteLine (" Git-Stderr-Length: " _ (errStream .Size + nLines ))
307+ }
308+ do %data .Write (" Git-Return-Code: " _ returnCode ) // No ending newline expected
309+ do %data .Rewind ()
310+ } else {
311+ set returnCode = ##class (SourceControl.Git.Utils ).RunGitCommandWithInput (" -c" , inFile , .errStream , .outStream , argsArr ...)
312+ set %data = ##class (%Stream.TmpCharacter ).%New ()
313+ set changeTerminators = (%data .LineTerminator '= $char (13 ,10 ))
314+ set %data .LineTerminator = $char (13 ,10 ) // For the CSPGateway.
315+ while 'outStream .AtEnd {
316+ do %data .WriteLine (outStream .ReadLine ())
317+ }
287318
288- set returnCode = ##class (SourceControl.Git.Utils ).RunGitCommandWithInput (" -c" , inFile , .errStream , .outStream , argsArr ...)
289- set %data = ##class (%Stream.TmpCharacter ).%New ()
290- set changeTerminators = (%data .LineTerminator '= $char (13 ,10 ))
291- set %data .LineTerminator = $char (13 ,10 ) // For the CSPGateway.
292- while 'outStream .AtEnd {
293- do %data .WriteLine (outStream .ReadLine ())
294- }
319+ set nLines = 0
320+ while 'errStream .AtEnd {
321+ do %data .WriteLine (errStream .ReadLine ())
322+ set :changeTerminators nLines = nLines + 1
323+ }
295324
296- set nLines = 0
297- while 'errStream .AtEnd {
298- do %data .WriteLine (errStream .ReadLine ())
299- set :changeTerminators nLines = nLines + 1
325+ do %data .WriteLine (" Git-Stderr-Length: " _ (errStream .Size + nLines ))
326+ do %data .Write (" Git-Return-Code: " _ returnCode ) // No ending newline expected
327+ do %data .Rewind ()
300328 }
301-
302- do %data .WriteLine (" Git-Stderr-Length: " _ (errStream .Size + nLines ))
303- do %data .Write (" Git-Return-Code: " _ returnCode ) // No ending newline expected
304- do %data .Rewind ()
305329 set handled = 1
306330
307331 // Make sure discarded items are not in the uncommitted queue
0 commit comments