thank you,because of most cases use old version cache,it don't support %Studio.SourceControl. do you know why Projections is a bad way? what  disaster  does it will cause? one side is backup local code,i backup it to local,and then upload to gitee, i tried to used gitee’s callback function to autobackup,but failed。and the second side is to make backuping and updating code being simplly.Implementation Engineers want a simple way.

you can test this code,it will work

B64S=##class(%GlobalCharacterStream).%New()
'$IsObject(file) d
.fileName=file
.file=##class(%FileBinaryStream).%New()
.file.LinkToFile(fileName)
.file.Rewind()
len=513 ; text must be divisible by 3 and 57
While 'file.AtEnd {
text=file.Read(.len)
q:len'>0
B64S.Write($tr($system.Encryption.Base64Encode(text),$c(10,13),""))
}
B64S