@@ -88,8 +88,9 @@ Method %Save() As %Status
8888
8989 set ..namespaceTemp = ##class (%Library.File ).NormalizeDirectory (..namespaceTemp )
9090 set @storage @(" settings" ," namespaceTemp" ) = ..namespaceTemp
91-
92- do ..CreateNamespaceTempFolder ()
91+ set workMgr = $System .WorkMgr .%New (" " )
92+ $$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Settings).CreateNamespaceTempFolder" ))
93+ $$$ThrowOnError(workMgr .WaitForComplete ())
9394
9495 set @storage @(" settings" ," user" ,$username ," gitUserName" ) = ..gitUserName
9596
@@ -117,13 +118,14 @@ Method %Save() As %Status
117118 quit $$$OK
118119}
119120
120- ClassMethod CreateNamespaceTempFolder () {
121+ ClassMethod CreateNamespaceTempFolder () As %Status
122+ {
121123 set storage = ##class (SourceControl.Git.Utils ).#Storage
122- if ('##class (%File ).DirectoryExists (@storage @(" settings" ," namespaceTemp" ))){
123- set workMgr = $System .WorkMgr .%New (" " )
124- $$$ThrowOnError(workMgr .Queue (" ##class(%Library.File).CreateDirectoryChain(@storage@(" " settings" " ," " namespaceTemp" " ))" ))
125- $$$ThrowOnError(workMgr .WaitForComplete ())
124+ if ('##class (%File ).DirectoryExists (@storage @(" settings" ," namespaceTemp" ))){
125+ do ##class (%Library.File ).CreateDirectoryChain (@storage @(" settings" ," namespaceTemp" ))
126126 }
127+
128+ return $$$OK
127129}
128130
129131ClassMethod Configure () As %Boolean [ CodeMode = objectgenerator ]
@@ -197,10 +199,18 @@ Method OnAfterConfigure() As %Boolean
197199 }
198200 }
199201 if (value = 1 ) {
202+ set settings = ##class (SourceControl.Git.Settings ).%New ()
203+ set repoRootFolder = settings .namespaceTemp
204+ if ($extract (repoRootFolder , $length (repoRootFolder )) = " \" ) || ($extract (repoRootFolder , $length (repoRootFolder )) = " /" ) {
205+ set repoRootFolder = $extract (settings .namespaceTemp , 1 , $length (settings .namespaceTemp ) - 1 )
206+ }
207+ set repoRootFolder = $translate (repoRootFolder , " \" , " /" )
208+ do ##class (SourceControl.Git.Utils ).RunGitCommandWithInput (" config" ,,,," --global" , " --add" , " safe.directory" , repoRootFolder )
200209 // using work queue manager ensures proper OS user context/file ownership
201210 set workMgr = $System .WorkMgr .%New (" " )
202211 $$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Utils).Init" ))
203212 $$$ThrowOnError(workMgr .WaitForComplete ())
213+
204214 do ##class (SourceControl.Git.Utils ).EmptyInitialCommit ()
205215 } elseif (value = 2 ) {
206216 set response = ##class (%Library.Prompt ).GetString (" Git remote URL (note: if authentication is required, use SSH, not HTTPS):" ,.remote ,,,,defaultPromptFlag )
0 commit comments