@@ -44,32 +44,45 @@ Method OnPull() As %Status
44
44
}
45
45
46
46
Method DeleteFile (item As %String ) As %Status
47
- {
48
- set sc = $$$OK
49
- set type = ##class (SourceControl.Git.Utils ).Type (item )
50
- set name = ##class (SourceControl.Git.Utils ).NameWithoutExtension (item )
51
- set deleted = 1
52
- if type = " prj" {
53
- set sc = $system .OBJ .DeleteProject (name )
54
- }elseif type = " cls" {
55
- set sc = $system .OBJ .Delete (item )
56
- }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" ), type ) > 0 {
57
- set sc = ##class (%Routine ).Delete (item )
58
- }elseif type = " csp" {
59
- set sc = $System .CSP .DeletePage (item )
60
- }elseif ##class (SourceControl.Git.Utils ).UserTypeCached (item ) {
61
- set sc = ##class (%Library.RoutineMgr ).Delete (item )
62
- } else {
63
- set deleted = 0
64
- }
65
-
66
- if deleted && $$$ISOK(sc ) {
67
- do ##class (SourceControl.Git.Utils ).RemoveRoutineTSH (item )
68
- kill $$$TrackedItems(##class (SourceControl.Git.Utils ).NormalizeExtension (item ))
69
- } else {
70
- if +$system .Status .GetErrorCodes (sc ) = $$$ClassDoesNotExist {
71
- // if something we wanted to delete is already deleted -- good!
47
+ {
48
+ try {
49
+ set sc = $$$OK
50
+ set type = ##class (SourceControl.Git.Utils ).Type (item )
51
+ set name = ##class (SourceControl.Git.Utils ).NameWithoutExtension (item )
52
+ set deleted = 1
53
+ if type = " prj" {
54
+ set sc = $system .OBJ .DeleteProject (name )
55
+ }elseif type = " cls" {
56
+ set sc = $system .OBJ .Delete (item )
57
+ }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" ), type ) > 0 {
58
+ set sc = ##class (%Routine ).Delete (item )
59
+ }elseif type = " csp" {
60
+ set sc = $System .CSP .DeletePage (item )
61
+ }elseif ##class (SourceControl.Git.Utils ).UserTypeCached (item ) {
62
+ set sc = ##class (%Library.RoutineMgr ).Delete (item )
63
+ } else {
64
+ set deleted = 0
65
+ }
66
+
67
+ if deleted && $$$ISOK(sc ) {
68
+ do ##class (SourceControl.Git.Utils ).RemoveRoutineTSH (item )
69
+ kill $$$TrackedItems(##class (SourceControl.Git.Utils ).NormalizeExtension (item ))
70
+ } else {
71
+ if +$system .Status .GetErrorCodes (sc ) = $$$ClassDoesNotExist {
72
+ // if something we wanted to delete is already deleted -- good!
73
+ set sc = $$$OK
74
+ }
75
+ }
76
+ } catch e {
77
+ set filename = ##class (SourceControl.Git.Utils ).FullExternalName (item )
78
+ if '##class (%File ).Exists (filename ) {
79
+ do ##class (SourceControl.Git.Utils ).RemoveRoutineTSH (item )
80
+ // file doesn't exist anymore despite error -- should be ok
72
81
set sc = $$$OK
82
+ } else {
83
+ // Item still exists and was not deleted -- bad
84
+ set sc = e .AsStatus ()
85
+ do e .Log ()
73
86
}
74
87
}
75
88
return sc
0 commit comments