@@ -88,9 +88,10 @@ Method %Save() As %Status
88
88
89
89
set ..namespaceTemp = ##class (%Library.File ).NormalizeDirectory (..namespaceTemp )
90
90
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
+
94
95
set @storage @(" settings" ," user" ,$username ," gitUserName" ) = ..gitUserName
95
96
96
97
set @storage @(" settings" ," user" ,$username ," gitUserEmail" ) = ..gitUserEmail
@@ -117,6 +118,16 @@ Method %Save() As %Status
117
118
quit $$$OK
118
119
}
119
120
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
+
120
131
ClassMethod Configure () As %Boolean [ CodeMode = objectgenerator ]
121
132
{
122
133
do %code .WriteLine (" set inst = ..%New()" )
@@ -188,10 +199,18 @@ Method OnAfterConfigure() As %Boolean
188
199
}
189
200
}
190
201
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 )
191
209
// using work queue manager ensures proper OS user context/file ownership
192
210
set workMgr = $System .WorkMgr .%New (" " )
193
211
$$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Utils).Init" ))
194
212
$$$ThrowOnError(workMgr .WaitForComplete ())
213
+
195
214
do ##class (SourceControl.Git.Utils ).EmptyInitialCommit ()
196
215
} elseif (value = 2 ) {
197
216
set response = ##class (%Library.Prompt ).GetString (" Git remote URL (note: if authentication is required, use SSH, not HTTPS):" ,.remote ,,,,defaultPromptFlag )
0 commit comments