Skip to content

Commit 89dd12b

Browse files
committed
Fix discarded items still in uncommitted queue
1 parent 31862a8 commit 89dd12b

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

cls/SourceControl/Git/WebUIDriver.cls

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,16 +234,18 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
234234

235235
set gitCmd = command.%Get(0)
236236

237+
set discardedFiles = []
237238
if gitCmd = "restore" {
238239
set iter = command.%GetIterator()
239240
set isFile = 0
240241
while iter.%GetNext(,.value) {
241242
if isFile {
242243
set internalName = ##class(SourceControl.Git.Utils).NameToInternalName(value)
243244
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)
246247
$$$ThrowOnError(##class(SourceControl.Git.Change).RemoveUncommitted(externalName,0,1))
248+
do discardedFiles.%Push(externalName)
247249
}
248250

249251
}
@@ -284,6 +286,14 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
284286
do %data.Write("Git-Return-Code: " _ returnCode) // No ending newline expected
285287
do %data.Rewind()
286288
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+
287297
} elseif (pathStart = "restore-discarded") {
288298
merge data = %request.Data
289299
set fileId = data("file",1)

0 commit comments

Comments
 (0)