diff --git a/cls/SourceControl/Git/Extension.cls b/cls/SourceControl/Git/Extension.cls index 0ed86fd5..31e2a219 100644 --- a/cls/SourceControl/Git/Extension.cls +++ b/cls/SourceControl/Git/Extension.cls @@ -47,10 +47,7 @@ Method UserAction(Type As %Integer, Name As %String, InternalName As %String, Se if menu '= "%SourceMenu", menu'="%SourceContext" { quit $$$OK } - do $System.OBJ.GetPackageList(.files,InternalName) - if ($DATA(files) '= 0) { - set InternalName = ($piece($order(files("")), ".", 1)_".pkg") - } + set InternalName = ##class(Utils).NormalizeInternalName(InternalName) set context = ##class(SourceControl.Git.PackageManagerContext).ForInternalName(InternalName) set ec = ##class(Utils).UserAction(InternalName, Name, .Target, .Action, .Reload) @@ -135,7 +132,9 @@ Method OnSourceMenuContextItem(itemName As %String, menuItemName As %String, ByR { if (itemName = "") || '##class(Utils).IsNamespaceInGit() { set Enabled = -1 - } elseif $find(itemName,",") > 0 { //if more than one item is selected, we can only add/remove, no diff or blame + } elseif (($find(itemName,",") > 0) || (##class(SourceControl.Git.Utils).Type(itemName) = "pkg")) { + //if more than one item is selected, we can only add/remove, no diff or blame + // if a package is selected we should show options to add missing items and remove exisiting ones set Enabled = $case(menuItemName,"AddToSC":1,"RemoveFromSC":1,:-1) } elseif menuItemName = "Revert" { set Enabled = 1 @@ -164,14 +163,6 @@ Method OnSourceMenuContextItem(itemName As %String, menuItemName As %String, ByR /// this menu item from the list totally, 0 will gray the menu item out and the default 1 will display the menu item as normal. Method OnMenuItem(MenuName As %String, InternalName As %String, SelectedText As %String, ByRef Enabled As %Boolean, ByRef DisplayName As %String) As %Status { - - if (InternalName '= ""){ - do $System.OBJ.GetPackageList(.files,InternalName) - if ($DATA(files) '= 0) { - set InternalName = ($piece($order(files("")), ".", 1)_".pkg") - } - } - set InternalName = ##class(Utils).NormalizeInternalName(InternalName) set context = ##class(SourceControl.Git.PackageManagerContext).ForInternalName(InternalName) diff --git a/cls/SourceControl/Git/PullEventHandler/IncrementalLoad.cls b/cls/SourceControl/Git/PullEventHandler/IncrementalLoad.cls index 27ae47ca..43a4aaca 100644 --- a/cls/SourceControl/Git/PullEventHandler/IncrementalLoad.cls +++ b/cls/SourceControl/Git/PullEventHandler/IncrementalLoad.cls @@ -16,37 +16,6 @@ Method OnPull() As %Status set internalName = ..ModifiedFiles(i).internalName if ((internalName = "") && (..ModifiedFiles(i).changeType '= "D")) { write ..ModifiedFiles(i).externalName, " was not imported into the database and will not be compiled. ", ! - } elseif ..ModifiedFiles(i).changeType = "D" { - #dim type as %String = ##class(SourceControl.Git.Utils).Type(internalName) - #dim name as %String = ##class(SourceControl.Git.Utils).NameWithoutExtension(internalName) - #dim deleted as %Boolean = 1 - write ! - - if type = "prj" { - set loadSC = $$$ADDSC(loadSC, $system.OBJ.DeleteProject(name)) - }elseif type = "cls" { - set loadSC = $$$ADDSC(loadSC, $system.OBJ.Delete(internalName)) - }elseif $listfind($listbuild("mac","int","inc","bas","mvb","mvi","dfi"), type) > 0 { - set loadSC = $$$ADDSC(loadSC, ##class(%Routine).Delete(internalName)) - }elseif type = "csp" { - #dim filename = $system.CSP.GetFileName(internalName) - if ##class(%File).Exists(filename) && '##class(%File).Delete(filename) { - set loadSC = $$$ADDSC(loadSC, ##class(SourceControl.Git.Utils).MakeError("Error while removing "_internalName)) - } - } else { - set deleted = 0 - } - - if deleted && loadSC { - do ##class(SourceControl.Git.Utils).RemoveRoutineTSH(internalName) - } else { - if +$system.Status.GetErrorCodes(loadSC) '= $$$ClassDoesNotExist { - write "Error: could not delete ", internalName, ! - } else { - // if something we wanted to delete is already deleted -- good! - set loadSC = $$$OK - } - } } else { set compilelist(internalName) = "" set nFiles = nFiles + 1 @@ -62,4 +31,3 @@ Method OnPull() As %Status } } - diff --git a/cls/SourceControl/Git/Utils.cls b/cls/SourceControl/Git/Utils.cls index a0da16f9..c629732a 100644 --- a/cls/SourceControl/Git/Utils.cls +++ b/cls/SourceControl/Git/Utils.cls @@ -10,8 +10,6 @@ Parameter InstallNamespace = "%SYS"; Parameter Slash = {$case($system.Version.GetOS(),"Windows":"\",:"/")}; /// Name of the file with version controlled items -Parameter SCListFilename = "sc-list.txt"; - Parameter GitMenuItems = ",Settings,Commit,Pull,Fetch,Push,Revert,"; Parameter ImportAfterGitMenuItems = ",Commit,Pull,Fetch,Push,"; @@ -336,9 +334,14 @@ ClassMethod Pull(remote As %String = "origin") As %Status while (outStream.AtEnd = 0) { set file = outStream.ReadLine() set modification = ##class(SourceControl.Git.Modification).%New() - set modification.changeType = $piece(file, " ", 1) - set modification.externalName = $zstrip($piece(file," ",2,*),"force = 1 then we export item even if timestamp in system is older ClassMethod ExportAll(force As %Boolean = 0) As %Status { - $$$QuitOnError(..ExportRoutines(force)) - quit ..ExportSCList() + quit ..ExportRoutines(force) } /// if force = 1 then we import item even if timestamp in system is newer ClassMethod ImportAll(force As %Boolean = 0) As %Status { - $$$QuitOnError(..ImportSCList()) quit ..ImportRoutines(force) } @@ -1203,58 +1250,6 @@ ClassMethod ExportRoutines(force As %Boolean = 0) As %Status quit ec } -ClassMethod ExportSCList() As %Status -{ - #dim filename = ..TempFolder()_..#SCListFilename - #dim file as %File = ##class(%File).%New(filename) - #dim item as %String = "" - #dim defaultCspApp as %String = $system.CSP.GetDefaultApp($znspace) - $$$QuitOnError(file.Open("WSN")) - - for { - set item = $order(@..#Storage@("items",item)) - quit:item="" - #dim fixedItem as %String = item - if $extract(fixedItem, 1, $length(defaultCspApp)) = defaultCspApp { - set $extract(fixedItem, 1, $length(defaultCspApp)) = "" - } - - do file.WriteLine(fixedItem) - - } - $$$QuitOnError(file.%Save()) - do file.Close() - kill file - - do ..RunGitWithArgs(.errStream, .outStream, "add", ..#SCListFilename) - do errStream.OutputToDevice() - do outStream.OutputToDevice() - quit $$$OK -} - -ClassMethod ImportSCList() As %Status -{ - #dim filename = ..TempFolder()_..#SCListFilename - #dim file as %File = ##class(%File).%New(filename) - #dim defaultCspApp as %String = $system.CSP.GetDefaultApp($znspace) - #dim eol as %Boolean - - $$$QuitOnError(file.Open("R", 10)) - - #dim a - while 'file.AtEnd { - #dim s as %String = file.ReadLine(,,.eol) - continue:s="" - #dim item as %String = $replace(s, "", defaultCspApp) - set a(..NormalizeExtension(item)) = "" - } - kill @..#Storage("items") - merge @..#Storage("items") = a - do file.Close() - kill file - quit $$$OK -} - /// returns true if directory was deleted ClassMethod RemoveFolderIfEmpty(path As %String) As %Boolean { diff --git a/sc-list.txt b/sc-list.txt deleted file mode 100644 index 143893bf..00000000 --- a/sc-list.txt +++ /dev/null @@ -1,17 +0,0 @@ -SourceControl.Git.API.CLS -SourceControl.Git.Change.CLS -SourceControl.Git.Extension.CLS -SourceControl.Git.Modification.CLS -SourceControl.Git.PackageManagerContext.CLS -SourceControl.Git.PullEventHandler.CLS -SourceControl.Git.PullEventHandler.Default.CLS -SourceControl.Git.PullEventHandler.IncrementalLoad.CLS -SourceControl.Git.PullEventHandler.PackageManager.CLS -SourceControl.Git.Settings.CLS -SourceControl.Git.StreamServer.CLS -SourceControl.Git.Utils.CLS -SourceControl.Git.WebUIDriver.CLS -SourceControl.Git.inc -SourceControl.Git.pkg -SourceControl.pkg -UnitTest.SourceControl.Git.pkg