-
Notifications
You must be signed in to change notification settings - Fork 11
Description
The code base I work with previously had a single .xsd file that was unused and did not interact with Embedded Git and did not seem to cause any issues until now. This .xsd file has recently been deleted due to the interface associated with it being decommissioned.
After deleting this .xsd file from Git, doing a Pull with any Embedded Git version that has this commit 7d52f33 causes the Pull to stop after failing to delete this file. This is due to that commit causing filename
in the following code snippet to be an empty string:
git-source-control/cls/SourceControl/Git/PullEventHandler/IncrementalLoad.cls
Lines 119 to 128 in 093ec2e
set filename = ##class(SourceControl.Git.Utils).FullExternalName(item) | |
if '##class(%File).Exists(filename) { | |
do ##class(SourceControl.Git.Utils).RemoveRoutineTSH(item) | |
// file doesn't exist anymore despite error -- should be ok | |
set sc = $$$OK | |
} else { | |
// Item still exists and was not deleted -- bad | |
set sc = e.AsStatus() | |
do e.Log() | |
} |
This results in the first part of the if statement being executed where item
being empty causes an exception to be thrown within RemoveRoutineTSH
and the status is never set to $$$OK
.
I have not tested with any other filetypes but presumably anything in the Git repo that is deleted and where ##class(SourceControl.Git.Utils).FullExternalName
can return an empty string may break a subsequent pull.
IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2024.1.4 (Build 516_1U) Sat May 31 2025 12:35:51 EDT