@@ -140,94 +140,70 @@ ClassMethod UserAction(InternalName As %String, MenuName As %String, ByRef Targe
140
140
($system .Version .GetOS ()=" Windows" ) {
141
141
write !!," ===Path to git.exe not found: " _..GitBinPath ()_" !===" ,!
142
142
}
143
+
144
+ if (..Type (InternalName ) = " csp" ) && ($Extract (InternalName ,1 ) '= " /" ) {
145
+ set InternalName = " /" _ InternalName
146
+ }
143
147
144
- if (menuName = " %SourceMenu" ) {
145
- if (menuItemName = " %Settings" ) {
146
- set Action = 2
147
- set Target = " /isc/studio/usertemplates/gitsourcecontrol/gitprojectsettings.csp?NSpace=" _$namespace _" &Username=" _$username
148
- } elseif (menuItemName = " %Init" ) {
149
- if ##class (%File ).CreateDirectoryChain (..TempFolder ()) {
150
- // cleanup items info
151
- kill @..#Storage@(" items" )
152
- kill @..#Storage@(" TSH" )
153
- set Action = 3
154
- set Target = ..RunGitCommand (" init" ,.errStream ,.outStream )
155
- } else {
156
- set ec = ..MakeError (" Unable to create folder " _..TempFolder ())
157
- }
158
- } elseif (menuItemName = " %GitWebUI" ) {
159
- set Action = 2
160
- set Target = " /isc/studio/usertemplates/gitsourcecontrol/webuidriver.csp/" _$namespace _" /" _$ZConvert (InternalName ," O" ," URL" )
161
- } elseif (menuItemName = " %Export" ) || (menuItemName = " %ExportForce" ) {
162
- write " ==export start==" ,!
163
- set ec = ..ExportAll ($case (menuItemName =" %ExportForce" ,1 :$$$Force,:0 ))
164
- if ec {
165
- write !," ==export done==" ,!
166
- }
167
- } elseif (menuItemName = " %Import" ) {
168
- set ec = ..ImportAll ()
169
- set Reload = 1
170
- } elseif (menuItemName = " %ImportForce" ) {
171
- set ec = ..ImportAll ($$$Force)
172
- set Reload = 1
173
- } elseif (menuItemName = " %OpenRepoFolder" ) {
174
- set Action = 3
175
- set Target = ..TempFolder ()
176
- } elseif (menuItemName = " %Revert" ) {
177
- set Reload = 1
178
- quit ..Revert (InternalName )
179
- } elseif (menuItemName = " %Commit" ) {
180
- set Target = " Please enter a commit message"
181
- set Action = 7
182
- quit $$$OK
183
- } elseif (menuItemName = " %Push" ) {
184
- quit ..Push ()
185
- } elseif (menuItemName = " %Fetch" ) {
186
- $$$QuitOnError(..Fetch (.diffFiles ))
187
- set pointer = 0
188
- while $ListNext (diffFiles , pointer , item ){
189
- write !,item
190
- }
191
- write !
192
- } elseif (menuItemName = " %Pull" ) {
193
- quit ..Pull ()
194
- } elseif ..IsMenuGitCommand (menuItemName ) {
195
- set Action = 3
196
- #dim command As %String = $ZConvert ($Extract (menuItemName , 2 , *), " L" )
197
- set ec = $$$OK
198
- if $Data (@..#Storage@(" settings" ," hook" ),hook )=1 {
199
- set $ListBuild (class ,method ) = hook
200
- set ec = $classmethod (class , method , command , InternalName )
201
- }
202
- if $$$ISOK(ec ) {
203
- set Target = ..GitCommand (command )
204
- }
148
+ if (menuItemName = " %Settings" ) {
149
+ set Action = 2
150
+ set Target = " /isc/studio/usertemplates/gitsourcecontrol/gitprojectsettings.csp?NSpace=" _$namespace _" &Username=" _$username
151
+ } elseif (menuItemName = " %Init" ) {
152
+ if ##class (%File ).CreateDirectoryChain (..TempFolder ()) {
153
+ // cleanup items info
154
+ kill @..#Storage@(" items" )
155
+ kill @..#Storage@(" TSH" )
156
+ do ..RunGitCommand (" init" ,.errStream ,.outStream )
157
+ do errStream .OutputToDevice ()
158
+ do outStream .OutputToDevice ()
159
+ } else {
160
+ set ec = ..MakeError (" Unable to create folder " _..TempFolder ())
205
161
}
206
- } elseif (menuName = " %SourceContext" ) {
207
-
208
- if (..Type (InternalName ) = " csp" ) && ($Extract (InternalName ,1 ) '= " /" ) {
209
- set InternalName = " /" _ InternalName
162
+ } elseif (menuItemName = " %GitWebUI" ) {
163
+ set Action = 2
164
+ set Target = " /isc/studio/usertemplates/gitsourcecontrol/webuidriver.csp/" _$namespace _" /" _$ZConvert (InternalName ," O" ," URL" )
165
+ } elseif (menuItemName = " %Export" ) || (menuItemName = " %ExportForce" ) {
166
+ write " ==export start==" ,!
167
+ set ec = ..ExportAll ($case (menuItemName =" %ExportForce" ,1 :$$$Force,:0 ))
168
+ if ec {
169
+ write !," ==export done==" ,!
210
170
}
211
-
212
- if (menuItemName = " %AddToSC" ) {
213
- set ec = ..AddToSourceControl (InternalName )
214
- } elseif (menuItemName = " %RemoveFromSC" ) {
215
- set ec = ..RemoveFromSourceControl (InternalName )
216
- } elseif (menuItemName = " %Commit" ) {
217
- set Target = " Please enter a commit message"
218
- set Action = 7
219
- quit $$$OK
220
- }
221
- if ..IsContextMenuGitCommand (menuItemName ) {
222
- set Action = 3
223
- set command = $ZConvert ($Extract (menuItemName , 2 , *), " L" )
224
- set Target = ..GitCommand (command , InternalName )
171
+ } elseif (menuItemName = " %Import" ) {
172
+ set ec = ..ImportAll ()
173
+ set Reload = 1
174
+ } elseif (menuItemName = " %ImportForce" ) {
175
+ set ec = ..ImportAll ($$$Force)
176
+ set Reload = 1
177
+ } elseif (menuItemName = " %OpenRepoFolder" ) {
178
+ set Action = 3
179
+ set Target = ..TempFolder ()
180
+ } elseif (menuItemName = " %Revert" ) {
181
+ set Reload = 1
182
+ quit ..Revert (InternalName )
183
+ } elseif (menuItemName = " %Commit" ) {
184
+ set Target = " Please enter a commit message"
185
+ set Action = 7
186
+ quit $$$OK
187
+ } elseif (menuItemName = " %Push" ) {
188
+ quit ..Push ()
189
+ } elseif (menuItemName = " %Fetch" ) {
190
+ $$$QuitOnError(..Fetch (.diffFiles ))
191
+ set pointer = 0
192
+ while $ListNext (diffFiles , pointer , item ){
193
+ write !,item
225
194
}
195
+ write !
196
+ } elseif (menuItemName = " %Pull" ) {
197
+ quit ..Pull ()
198
+ } elseif (menuItemName = " %AddToSC" ) {
199
+ set ec = ..AddToSourceControl (InternalName )
200
+ } elseif (menuItemName = " %RemoveFromSC" ) {
201
+ set ec = ..RemoveFromSourceControl (InternalName )
202
+ } elseif (menuItemName = " %Commit" ) {
203
+ set Target = " Please enter a commit message"
204
+ set Action = 7
205
+ quit $$$OK
226
206
}
227
- if ..IsImportAfter (menuItemName ) && (Action = 3 ) {
228
- write " Choose Import All menu after work with Git!" , !
229
- }
230
- //w Target,!
231
207
quit ec
232
208
}
233
209
@@ -334,7 +310,7 @@ ClassMethod Pull(remote As %String = "origin") As %Status
334
310
merge event .ModifiedFiles = files
335
311
for i =1 :1 :$Get (files ) {
336
312
if $Data (files (i ))#2 {
337
- set internalName = ##class (SourceControl.Git.Utils ).NameToInternalName (.. ModifiedFiles (i ))
313
+ set internalName = ##class (SourceControl.Git.Utils ).NameToInternalName (event . ModifiedFiles (i ),, 0 )
338
314
if (internalName '= " " ) {
339
315
set event .ModifiedItems (internalName ) = " "
340
316
}
@@ -376,6 +352,10 @@ ClassMethod AddToSourceControl(InternalName As %String) As %Status
376
352
if 'sc {
377
353
set ec = $$$ADDSC(ec , sc )
378
354
}
355
+ // Necessary for items in new folders
356
+ do ..RunGitCommand (" add" ,.errStream ,.outStream ,..ExternalName (InternalName ))
357
+ do outStream .OutputToDevice ()
358
+ do errStream .OutputToDevice ()
379
359
}
380
360
set ec = $$$ADDSC(ec , ..ExportSCList ())
381
361
quit ec
@@ -954,11 +934,13 @@ ClassMethod ExportItem(InternalName As %String, expand As %Boolean = 1, force As
954
934
$$$QuitOnError(..ExportRoutinesAux (InternalName , " /" , 0 , force ))
955
935
}else {
956
936
if ..IsTempFileOutdated (InternalName ) || force {
957
-
958
937
#dim filename As %String = ..FullExternalName (InternalName )
959
938
write " exporting new version of " , InternalName , " to " , filename ,!
960
939
$$$QuitOnError($system .OBJ .ExportUDL (InternalName , filename ," -d/diff" ))
961
940
$$$QuitOnError(..UpdateRoutineTSH (InternalName , $Horolog ))
941
+ if '##class (SourceControl.Git.Change ).IsUncommitted (filename ) {
942
+ $$$ThrowOnError(##class (SourceControl.Git.Change ).SetUncommitted (filename , " add" , InternalName , $Username , " " , 1 , " " , " " , 0 ))
943
+ }
962
944
}
963
945
}
964
946
quit $$$OK
@@ -1328,7 +1310,7 @@ ClassMethod NameToInternalName(Name, IgnorePercent = 1, IgnoreNonexistent = 1) A
1328
1310
}
1329
1311
If ((IgnorePercent )&&($extract (InternalName )=" %" )) { Set InternalName = " " } ; don't return a result for % items if instructed to ignore them
1330
1312
If ((IgnoreNonexistent )&&('##class (%RoutineMgr ).Exists (InternalName ))) { Set InternalName = " " } ; only return item names which exist in the DB
1331
- Quit ..NormalizeInternalName (InternalName )
1313
+ Quit ..NormalizeInternalName (InternalName )
1332
1314
}
1333
1315
1334
1316
ClassMethod OutputConfigureMessage ()
@@ -1340,3 +1322,4 @@ ClassMethod OutputConfigureMessage()
1340
1322
}
1341
1323
1342
1324
}
1325
+
0 commit comments