public void updateCheckoutCopy(ManagedBufferFile srcFile, int oldVersion, TaskMonitor monitor)
			throws CancelledException, IOException {
		if (!isCheckOutCopy) {
			throw new IOException("Database is not a checkout copy");
		}
		synchronized (syncObject) {
			if (srcFile != null) {
				boolean success = false;
				// TODO: watch-out for multiple updatable BufferFile instances
				LocalManagedBufferFile localBf = new LocalManagedBufferFile(bfMgr, true, -1, -1);
				try {
					localBf.updateFrom(srcFile, oldVersion, monitor);  // performs a save
					localBf.close();
					success = true;
				}
				finally {
					if (!success) {
						localBf.delete();
					}
				}
			}
			(new File(dbDir, CUMULATIVE_CHANGE_FILENAME)).delete();
			(new File(dbDir, CUMULATIVE_MODMAP_FILENAME)).delete();
		}
	}
If this is a checked-out copy, replace the buffer file content with that
provided by the specified srcFile.  This Database must be a checkout copy.
If a cumulative change files exists, it will be deleted following the update.
@param srcFile open source data buffer file or null if current version
is already up-to-date.
@param oldVersion older version of srcFile from which this database originated.
@throws IOException
@throws CancelledException
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/db/PrivateDatabase.java