@@ -38,6 +38,11 @@ ClassMethod TempFolder() As %String
38
38
if context .IsInGitEnabledPackage {
39
39
quit context .Package .Root
40
40
}
41
+ quit ..DefaultTempFolder ()
42
+ }
43
+
44
+ ClassMethod DefaultTempFolder () As %String
45
+ {
41
46
quit $get (@..#Storage@(" settings" ," namespaceTemp" ),..DefaultTemp ()_$translate ($znspace ," %" )_..#Slash)
42
47
}
43
48
@@ -1089,8 +1094,17 @@ ClassMethod ListItemsInFiles(ByRef itemList, ByRef err) As %Status
1089
1094
set mappedFilePath = ##class (%File ).NormalizeFilename (mappedRelativePath , ..TempFolder ())
1090
1095
1091
1096
if (##class (%File ).DirectoryExists (mappedFilePath )){
1092
- set res = $system .OBJ .ImportDir (mappedFilePath ,," -d" ,.err ,1 , .tempItemList , $$$DoNotLoad)
1093
- merge itemList = tempItemList
1097
+ if ##class (%Library.RoutineMgr ).UserType (" foo." _mappingFileType ) {
1098
+ set fileSpec = " *." _$zcvt (mappingFileType ," L" )_" ;*." _$zconvert (mappingFileType ," U" )
1099
+ set files = ##class (%Library.File ).FileSetFunc (mappedFilePath ,fileSpec )
1100
+ while files .%Next () {
1101
+ // Assumes flat file structure
1102
+ set itemList (files .ItemName ) = " "
1103
+ }
1104
+ } else {
1105
+ set res = $system .OBJ .ImportDir (mappedFilePath ,," -d" ,.err ,1 , .tempItemList , $$$DoNotLoad)
1106
+ merge itemList = tempItemList
1107
+ }
1094
1108
}
1095
1109
1096
1110
set mappingCoverage = $order ($$$SourceMapping(mappingFileType , mappingCoverage ))
@@ -1124,6 +1138,9 @@ ClassMethod ListItemsInFiles(ByRef itemList, ByRef err) As %Status
1124
1138
1125
1139
ClassMethod ImportRoutines (force As %Boolean = 0 ) As %Status
1126
1140
{
1141
+ set refContext = ##class (SourceControl.Git.PackageManagerContext ).%Get ()
1142
+ set refPackage = refContext .Package
1143
+
1127
1144
write !, " ==import start=="
1128
1145
1129
1146
#dim err , itemList
@@ -1138,10 +1155,13 @@ ClassMethod ImportRoutines(force As %Boolean = 0) As %Status
1138
1155
for {
1139
1156
set internalName = $order (itemList (internalName ))
1140
1157
quit :internalName =" "
1141
- if '..IsInSourceControl (internalName ) {
1142
- continue
1158
+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (internalName )
1159
+ continue :context .Package '=refPackage
1160
+ if ..IsInSourceControl (internalName ) {
1161
+ set sc = ..ImportItem (internalName , force )
1162
+ } else {
1163
+ set sc = ..AddToServerSideSourceControl (internalName )
1143
1164
}
1144
- #dim sc as %Status = ..ImportItem (internalName , force )
1145
1165
if $$$ISERR(sc ) {
1146
1166
set ec = $$$ADDSC(ec , sc )
1147
1167
}
@@ -1152,22 +1172,29 @@ ClassMethod ImportRoutines(force As %Boolean = 0) As %Status
1152
1172
for {
1153
1173
set item = $order (@..#Storage@(" TSH" , item ))
1154
1174
quit :item =" "
1155
-
1156
- if '##class (%File ).Exists (..FullExternalName (item )) {
1175
+
1176
+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (item )
1177
+ continue :context .Package '=refPackage
1178
+
1179
+ set fullExternalName = ..FullExternalName (item )
1180
+ if '##class (%File ).Exists (fullExternalName ) {
1181
+ write !,fullExternalName ," does not exist - deleting " ,item
1157
1182
#dim type as %String = ..Type (item )
1158
1183
#dim name as %String = ..NameWithoutExtension (item )
1159
1184
#dim deleted as %Boolean = 1
1160
1185
if type = " prj" {
1161
1186
set ec = $$$ADDSC(ec , $system .OBJ .DeleteProject (name ))
1162
1187
}elseif type = " cls" {
1163
1188
set ec = $$$ADDSC(ec , $system .OBJ .Delete (item ))
1164
- }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" , " dfi " ), type ) > 0 {
1189
+ }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" ), type ) > 0 {
1165
1190
set ec = $$$ADDSC(ec , ##class (%Routine ).Delete (item ))
1166
1191
}elseif type = " csp" {
1167
1192
#dim filename = $system .CSP .GetFileName (item )
1168
1193
if ##class (%File ).Exists (filename ) && '##class (%File ).Delete (filename ) {
1169
1194
set ec = $$$ADDSC(ec , ..MakeError (" Error while removing " _item ))
1170
1195
}
1196
+ }elseif ##class (%Library.RoutineMgr ).UserType (item ) {
1197
+ set ec = $$$ADDSC(ec , ##class (%Library.RoutineMgr ).Delete (item ))
1171
1198
} else {
1172
1199
set deleted = 0
1173
1200
}
@@ -1287,11 +1314,16 @@ ClassMethod ImportAll(force As %Boolean = 0) As %Status
1287
1314
1288
1315
ClassMethod ExportRoutines (force As %Boolean = 0 ) As %Status
1289
1316
{
1317
+ set refContext = ##class (SourceControl.Git.PackageManagerContext ).%Get ()
1318
+ set refPackage = refContext .Package
1319
+
1290
1320
#dim item as %String = " "
1291
1321
#dim ec as %Status = $$$OK
1292
1322
for {
1293
1323
set item = $order (@..#Storage@(" items" ,item ))
1294
1324
quit :item =" "
1325
+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (item )
1326
+ continue :context .Package '=refPackage
1295
1327
set ec = ..ExportItem (item , 1 , force )
1296
1328
quit :'ec
1297
1329
}
@@ -1398,6 +1430,7 @@ ClassMethod GitStatus(ByRef files, IncludeAllFiles = 0)
1398
1430
set internalName = ..NameToInternalName (externalName )
1399
1431
if (internalName '= " " ) {
1400
1432
set files (internalName ) = $listbuild (operation , externalName )
1433
+ set @..#Storage@(" items" ,..NormalizeInternalName (internalName )) = " "
1401
1434
} elseif ((IncludeAllFiles ) && (externalName '= " " )) {
1402
1435
set externalName = $TRANSLATE (externalName , " \" , " /" )
1403
1436
set files ($I (files )) = $listbuild (operation , externalName )
@@ -1810,4 +1843,3 @@ ClassMethod BuildCEInstallationPackage(ByRef destination As %String) As %Status
1810
1843
}
1811
1844
1812
1845
}
1813
-
0 commit comments