We found the important issue with plug-in and PowerBuilder (8 or 9). Under
certain circumstances checked in changes in file can be overwritten by
other check in for the same file. This can cause unexpected and “hidden”
lost of changes.
The problem caused by PowerBuilder that is not designed to correctly update
(merge) the file that is currently checked out for user. Other systems can
merge the changes in checked out file with changes appeared on server.
PowerBuilder can only overwrite checked out file or leave it as is.
PowerBuilder 9 shows confirmation message box about this action, while
PowerBuilder 8 just overwrites checked out file.
Both selections (overwrite or leave as is) makes bad things. First removes
changes made by local user. This at least trivial. Other selection cause
more complex problem. Local changes are not lost, but file not really
merged. While CVS after that “think” that local user changes now are in
sync with server. When user check in his changes, changes made by other
user will lost. They can be found in history, but they will be lost for
latest version of file.
There are two options to avoid this problem:
1. Always use “reserved checkout” mode. In this case changes cannot appears
in repository if user have this file checked out.
2. Instruct developers never choose checked out files for “Get latest”
operation. Or better never call it at all if there are checked out files.
In that case merge will be correctly handled when developer check in his
changes.