GP-4341 Force retained checkout if file is in-use during checkin or add-to-version-control. Deprecated upgrade concept during checkin. Revised manner in which file open for update is updated following a version control operation (perform DBHandle update).

This commit is contained in:
ghidra1 2024-03-20 17:43:49 -04:00
parent 74a5b6f0e1
commit 2dff876f0f
46 changed files with 695 additions and 852 deletions

View file

@ -126,13 +126,13 @@ public class ProgramManagerPluginScreenShots extends GhidraScreenShotGenerator
checkinComment = "Version 2";
keepCheckedOut = true;
assertTrue(df.canCheckin());
df.checkin(this, false, null);
df.checkin(this, null);
changeProgram(p, "bbb");
checkinComment = "Version 3";
keepCheckedOut = true;
assertTrue(df.canCheckin());
df.checkin(this, false, null);
df.checkin(this, null);
p.release(this);
performAction("Open File", "ProgramManagerPlugin", false);

View file

@ -216,21 +216,21 @@ public class VersionControlAction1Test extends AbstractVersionControlActionTest
// make some changes to check in
Program program = (Program) ((DomainFileNode) node).getDomainFile()
.getDomainObject(this,
true, false, TaskMonitor.DUMMY);
.getDomainObject(this, true, false, TaskMonitor.DUMMY);
editProgram(program, (p) -> {
SymbolTable symTable = p.getSymbolTable();
symTable.createLabel(p.getMinAddress().getNewAddress(0x010001000), "fred",
SourceType.USER_DEFINED);
});
program.release(this);
program = (Program) ((DomainFileNode) xnode).getDomainFile()
.getDomainObject(this, true,
false, TaskMonitor.DUMMY);
.getDomainObject(this, true, false, TaskMonitor.DUMMY);
editProgram(program, (p) -> {
SymbolTable symTable = p.getSymbolTable();
symTable.createLabel(p.getMinAddress(), "bob", SourceType.USER_DEFINED);
});
program.release(this);
DockingActionIf checkInAction = getAction("CheckIn");
performAction(checkInAction, getDomainFileActionContext(node, xnode), false);
@ -254,10 +254,8 @@ public class VersionControlAction1Test extends AbstractVersionControlActionTest
checkout(programNode);
Program program =
(Program) ((DomainFileNode) programNode).getDomainFile()
.getDomainObject(this, true,
false, TaskMonitor.DUMMY);
Program program = (Program) ((DomainFileNode) programNode).getDomainFile()
.getDomainObject(this, true, false, TaskMonitor.DUMMY);
createHistoryEntry(program, "Symbol1");
frontEnd.checkIn(programNode, "This is checkin 1");