@@ -3,7 +3,7 @@ Class SourceControl.Git.DiscardState Extends (%Persistent, %JSON.Adaptor)
33
44Property FullExternalName As %String (MAXLEN = " " ) [ Required ];
55
6- Property InternalName As %String [ Required ];
6+ Property Name As %String [ Required ];
77
88Property Contents As %Stream .GlobalCharacter (LOCATION = " ^DiscardStateContents" );
99
@@ -13,25 +13,41 @@ Property Branch As %String [ Required ];
1313
1414Property Timestamp As %TimeStamp [ Required ];
1515
16+ Property ExternalFile As %Boolean [ Required ];
17+
1618Method RestoreToFileTree ()
1719{
1820 set fileStream = ##class (%Stream.FileCharacter ).%OpenId (..FullExternalName ,,.sc )
1921 $$$ThrowOnError(sc )
2022 do fileStream .CopyFrom (..Contents )
2123 $$$ThrowOnError(fileStream .%Save ())
22- do ##class (SourceControl.Git.Utils ).ImportItem (..InternalName , 1 , 1 )
23- do ##class (SourceControl.Git.Utils ).AddToServerSideSourceControl (..InternalName )
24+ if '..ExternalFile {
25+ do ##class (SourceControl.Git.Utils ).ImportItem (..Name , 1 , 1 )
26+ do ##class (SourceControl.Git.Utils ).AddToServerSideSourceControl (..Name )
27+ }
28+
2429 $$$ThrowOnError(..%DeleteId (..%Id ()))
2530}
2631
27- ClassMethod SaveDiscardState (InternalName As %String ) As %Status
32+ ClassMethod SaveDiscardState (InternalName As %String , name As %String ) As %Status
2833{
2934 set discardState = ..%New ()
30- set discardState .FullExternalName = ##class (SourceControl.Git.Utils ).FullExternalName (InternalName )
31- set discardState .InternalName = InternalName
35+
36+ // If not an IRIS file
37+ if (InternalName = " " ) {
38+ set externalName = ##class (%File ).Construct ($Get (^SYS (" SourceControl" ," Git" ," settings" ," namespaceTemp" )),name )
39+ set discardState .FullExternalName = externalName
40+ set discardState .Name = name
41+ set discardState .ExternalFile = 1
42+ } else {
43+ set discardState .FullExternalName = ##class (SourceControl.Git.Utils ).FullExternalName (InternalName )
44+ set discardState .Name = InternalName
45+ set discardState .ExternalFile = 0
46+ }
3247
3348 set fileStream = ##class (%Stream.FileCharacter ).%New ()
3449 set fileStream .Filename = discardState .FullExternalName
50+
3551 do fileStream .%Open ()
3652 do discardState .Contents .CopyFrom (fileStream )
3753 do fileStream .%Close ()
@@ -85,6 +101,12 @@ Storage Default
85101<Value name =" 7" >
86102<Value >Timestamp </Value >
87103</Value >
104+ <Value name =" 8" >
105+ <Value >Name </Value >
106+ </Value >
107+ <Value name =" 9" >
108+ <Value >ExternalFile </Value >
109+ </Value >
88110</Data >
89111<DataLocation >^SourceControl22B9 .DiscardStateD </DataLocation >
90112<DefaultData >DiscardStateDefaultData </DefaultData >
@@ -95,4 +117,3 @@ Storage Default
95117}
96118
97119}
98-
0 commit comments