@@ -88,9 +88,10 @@ Method %Save() As %Status
8888
8989 set ..namespaceTemp = ##class (%Library.File ).NormalizeDirectory (..namespaceTemp )
9090 set @storage @(" settings" ," namespaceTemp" ) = ..namespaceTemp
91- if ('##class (%File ).DirectoryExists (@storage @(" settings" ," namespaceTemp" ))){
92- do ##class (%Library.File ).CreateDirectoryChain (@storage @(" settings" ," namespaceTemp" ))
93- }
91+ set workMgr = $System .WorkMgr .%New (" " )
92+ $$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Settings).CreateNamespaceTempFolder" ))
93+ $$$ThrowOnError(workMgr .WaitForComplete ())
94+
9495 set @storage @(" settings" ," user" ,$username ," gitUserName" ) = ..gitUserName
9596
9697 set @storage @(" settings" ," user" ,$username ," gitUserEmail" ) = ..gitUserEmail
@@ -117,6 +118,16 @@ Method %Save() As %Status
117118 quit $$$OK
118119}
119120
121+ ClassMethod CreateNamespaceTempFolder () As %Status
122+ {
123+ set storage = ##class (SourceControl.Git.Utils ).#Storage
124+ if ('##class (%File ).DirectoryExists (@storage @(" settings" ," namespaceTemp" ))){
125+ do ##class (%Library.File ).CreateDirectoryChain (@storage @(" settings" ," namespaceTemp" ))
126+ }
127+
128+ return $$$OK
129+ }
130+
120131ClassMethod Configure () As %Boolean [ CodeMode = objectgenerator ]
121132{
122133 do %code .WriteLine (" set inst = ..%New()" )
@@ -188,10 +199,18 @@ Method OnAfterConfigure() As %Boolean
188199 }
189200 }
190201 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 )
191209 // using work queue manager ensures proper OS user context/file ownership
192210 set workMgr = $System .WorkMgr .%New (" " )
193211 $$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Utils).Init" ))
194212 $$$ThrowOnError(workMgr .WaitForComplete ())
213+
195214 do ##class (SourceControl.Git.Utils ).EmptyInitialCommit ()
196215 } elseif (value = 2 ) {
197216 set response = ##class (%Library.Prompt ).GetString (" Git remote URL (note: if authentication is required, use SSH, not HTTPS):" ,.remote ,,,,defaultPromptFlag )
0 commit comments