@@ -234,16 +234,18 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
234
234
235
235
set gitCmd = command .%Get (0 )
236
236
237
+ set discardedFiles = []
237
238
if gitCmd = " restore" {
238
239
set iter = command .%GetIterator ()
239
240
set isFile = 0
240
241
while iter .%GetNext (,.value ) {
241
242
if isFile {
242
243
set internalName = ##class (SourceControl.Git.Utils ).NameToInternalName (value )
243
244
do ##class (SourceControl.Git.DiscardState ).SaveDiscardState (internalName , value )
244
- if (internalName ) {
245
- set externalName = ##class (Source .Git.Utils ).FullExternalName (internalName )
245
+ if (internalName '= " " ) {
246
+ set externalName = ##class (SourceControl .Git.Utils ).FullExternalName (internalName )
246
247
$$$ThrowOnError(##class (SourceControl.Git.Change ).RemoveUncommitted (externalName ,0 ,1 ))
248
+ do discardedFiles .%Push (externalName )
247
249
}
248
250
249
251
}
@@ -284,6 +286,14 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
284
286
do %data .Write (" Git-Return-Code: " _ returnCode ) // No ending newline expected
285
287
do %data .Rewind ()
286
288
set handled = 1
289
+
290
+ // Make sure discarded items are not in the uncommitted queue
291
+ set item = discardedFiles .%Pop ()
292
+ while (item '= " " ) {
293
+ do ##class (SourceControl.Git.Change ).RemoveUncommitted (externalName ,0 ,1 )
294
+ set item = discardedFiles .%Pop ()
295
+ }
296
+
287
297
} elseif (pathStart = " restore-discarded" ) {
288
298
merge data = %request .Data
289
299
set fileId = data (" file" ,1 )
0 commit comments