CVS is an old but powerful version control software. Honestly, it's a bit out-of-date and young people are not quite familiar with it. If you're such an unfortunate guy and you have to use it in your working environment, this extension will have your back. You can easily acquire Visual Studio Code style diff instead of incomprehensible CVS diff. Hope you like it!
Important
This extension supports multi-root workspaces. Please open each CVS repository at the top of the workspace, like this
I highly recommend to work alongside Remote - SSH and Remote - Containers so that you're able to do some tricks on your remote CVS repository.
Tested environment
Ubuntu 20.04
Concurrent Versions System (CVS) 1.12.13-MirDebian-27 (client/server)
If you add a new repository into the workspace, please click this button to fetch all folders again.
cvs status
Get all file status from the selected folder.
Select the folder you want to check and click the status button.
Wait
Please do NOT click the status button repeatedly. If you have a large repository, you might need to wait for a while. CVS is not a fast tool but it gives your the correct result finally.
See the file status
There are four status types provided. The modified and conflict files are enabled by default.
M : Modified file
C : Conflict file
? : Questionable file
U : Updated file (in server)
You can select the types you're interested in. The items will be updated then.
cvs diff
Select the file you want to compare and click the diff button. All revisions would be shown in the list. Just Select what you want.
*** Note ***
This function is a bit different than the standard cvs diff. The diff content is from comparing the current code to the revision code you selected instead of the previous one. Therefore, it's highly recommended that you always perform cvs update.
(Not essential) You can click this button to open the file.
cvs annotate
Open the file you want to annotate on the editor. This file should be in your repository. Right-click on the file tab title and find cvs annotate in the list. For sure, this extension MUST be active to get this button.
Wait a second then the annotate text will appear like this.
cvs update
Select the repository you want to update and click the update button.
Because this action will change your repository, you need to be certain of it. Please fill in yes in the dialog.
Wait a minute. You will see the success message like The repository is updated successfully.
If the update action fails, there might be some conflict. Please check the file status with cvs status button. Then open the file and resolve it.
*** Note ***
This functionality is only tested in my personal env. If you have any problem with it. Please report the log to me. It would be extremely helpful. Thanks a lot.
cvs revert
Revert all changes of this file.
Select the repository you want to revert and click the revert button.
Because this action will change this file, you need to be sure. Please fill in yes in the dialog.
If revert action works well, CVS-plugin would refresh the repository status at the end. You should see the modified file is remove from the list.
cvs commit
*Under construction*
Misc.
You can check the extension log cvs-plugin-log from VSCode OUTPUT Panel. It shows every cvs command you've used and the return code. If you find out some bugs, this log information would be very helpful to me.
Any bugs, please report it to this repository. Enjoy!