WinCVS Introduction

Installing WinCVS

Installing CVS Integration for Visual Studio

Working with WinCVS

Working with CVS from Visual Studio

CVS Home Page

For Administrators:
Setting up CVS as a Server
under Linux

 

CVSln

CVS Integration Add-in for
Microsoft Visual Studio


CVSln solves the problem of lack of integration between the Windows 98/NT/2000 CVS client and Microsoft Visual Studio. A relatively painless installation of a DLL provides the programmer with the tools he needs to work with the IDE in a client-server CVS-driven development environment, in much the same manner as he would using Microsoft SourceSafe. The workflow is different, primarily due to the different nature of CVS itself. Using CVS requires more direct attention from the user; on the other hand, the user does not have to accept on blind faith that CVS is performing its tasks correctly. Everything it does is reported to the user.

CVSln Installation

Here's how to install it:

    1. Install first TCL v8.31, then WinCVS.
    2. Get a copy of the CVSln DLL from this ZIP file. Copy it to your COMMON\MSDEV98\ADDINS directory, under wherever you've installed Developer Studio.
    3. Run DevStudio.
    4. Go to menu: Tools->Customize.
    5. Select Add-ins and Macro Files tab.
    6. Use Browse button to locate and select CvsIn.dll file.
    7. Make sure the checkbox to the left of CvsIn is checked.
    8. Click Close button.

Note:
To uninstall simply un-check the checkbox next to the CvsIn and press Close button. You can also close DevStudio and remove CvsIn.dll file.

Configuring it for CVS Server Access

The CVS command setup is similiar to the one you have in WinCVS, but somewhat simplified. Here's what all the fields are for:

HOME folder - setup the same HOME as in WinCVS - CVS will store password information in this directory. If you have set HOME environmental variable it will be used instead.

CVS client  command line - it is best to have the WinCVS client in the PATH. If you don't want it that way you should setup the full path here.

Checkout Read-only - if selected then all new working files will have the Read-only attribute set. CVS global option: [-r] This is useful if you want to be extra careful not to accidentally break something, but it's not the default behavior.

Messages - you can set the amount of messages you get from CVS client. [-q][-Q]

TCP/IP compression - you can setup the level of compression during CVS operations. I recommend turning this off, since we're accessing our CVS server via the internal LAN. Compression helps on noisy or slow connections, but isn't necessary here.

Other options - you can add any other options - it will be used as global options when invoking CVS client commands. It's safe to leave this blank.

External diff program - this isn't implemented yet, but will be soon. Note that you can still specify an external DIFF program from within WinCVS that WinCVS will use.

Settings for WinCVS/Visual Studio Integration

 

WinCVS path - By default this is set to "C:\Program Files\GNU\WinCVS 1.1\WinCVS.exe". Use the browse button to locate where you put yours.

Start in - WinCVS's execution directory. When you select the file for WinCVS path the directory will be filled in automatically.

Run - You can control the way WinCVS is launched, the options are normal, minimized and maximized.

Close all on DevStudio exit - CvsIn maintains open WinCVS instances. If this checkbox is selected it will close all running WinCVS instances under it's control when you exit DevStudio.

WinCvs options


Reuse WinCVS if still active for the same file - if selected, an instance of WinCVS will be brought to the foreground if one is open for the current file.

Attempt to reuse WinCVS for file groups - this is similiar to the previous option. CvsIn will attempt to identify the groups of files (like .cpp and corresponding header).

Signature - helps to identify the main window of running WinCVS. The users of some old versions of WinCVS will notice that bringing to foreground option does not keep the focus right. It is because the older versions of WinCVS have no signature text in the title. Solution: Upgrade! As an alternative you can try to use " - " as a signature - select from the ComboBox.

Extension delimiter (period) - if option for file groups (7) is selected the delimiter is searched from the left or right side - depending on the selection. It allows users to create the files groups depending on either filename or extension.

Settings specific to CVSln

Output  (messages from CVSln itself)
Use Output Window - Use this to activate messages in the Macro sheet in the Output Window. This should be on.

Use Status Bar - this controls messages send to the DevStudio Status Bar. It works works best if Visual Assist and AIC are installed.

Warnings/Prompts 
Activate file in ../Cvs/Base/ - this warning prevents you from editing files from the CVS administrative folder when using "cvs edit". Make sure this is checked.

Misc
Dial-Up connection - set this if you are connected using Dial-Up force a connection if one isn't currently active.If you're working over a LAN, leave this unchecked.

Save before CVS command - if set, all files will be saved before invoking CVS command. Make sure this one is checked.
CvsIn options

The User Interface

Features of the User Interface:

Toolbars.
    CvsIn Options - to invoke the Options dialog where you can change the CvsIn settings.
    Run WinCVS - launch WinCVS for the current file, or find already running one.

CVS commands toolbars:
   
CVS update - cvs update <active file>
    CVS commit - cvs commit <active file>
    Query CVS update - cvs -n update <active file>
    CVS diff - cvs diff <active file>
    CVS log - cvs log <active file>
    CVS status - cvs status <active file>
    CVS edit - cvs edit <active file>
    CVS unedit - cvs unedit <active file>
    CVS watch - cvs watch add <active file>
    CVS release watch - cvs watch remove <active file>
    CVS tag - cvs tag <active file>
    CVS untag - cvs tag -d <active file>
    CVS fork - cvs tag -b <active file>
    CVS unlock - cvs admin -u <active file>

    Addtional toolbars:
   
Graph - show the graph or revisions and tags (at the moment, this launches WinCVS.)
    Wizard - not frequently used CVS commands (add/delete etc.) and special tools (Not yet
    implemented)

Macro sheet in the Output Window. You will see all the messages from CvsIn here.

Status Bar - short information about the activated file will be displayed here. Currently it displays the information about file attributes in the following way:
    [rahs] - Read-only, Archive, Hidden, System.
   if the attribute is not set then the '-' is displayed.
   Example: [ra--] - Read-only, Archiv file.

Note:
You can use more commands and assign keybindings for easier access for all the functions.

A Few things to remember when using CVS commands:
If you receive an updated CVSln.DLL, you must uninstall the old one before installing the new one, and go through the complete setup procedure again.

You have to make sure CvsIn can see the cvs client (in our case, that would be WinCVS). Either add the location of the cvs.exe to your PATH, or specify the full path in the settings.

Remember that DevStudio doesn't scroll the output window - you will have to go to the "Macro" sheet of the Output window and place the cursor at the end - click there and then use "Ctrl+End".

Do NOT exit the DevStudio if the CVS command is running. If that happens - you will have to use the task manager and kill the process by hand. Remember, CVS is a separate thread. Try to be aware of when it's active and when it isn't.

If you use the Dial-up connection - it is better to select 'Dial-up' in the CvsIn Options->CvsIn or the Dial-up dialog won't popup - it's a Microsoft bug.

At the moment the graph button calls WinCVS to do the graphing. There is no self-contained graphing as of yet. The wizard bar isn't finished either, but we'll be getting updates as we go.

Controlling WinCVS Sessions

CvsIn options
 

You can easily manipulate your WinCVS sessions. By pressing the control keys while pushing the 'RunWinCVS' button you'll get various behaviors:


Ctr+'RunWinCVS' - this will invoke the sessions manager, which will allow you to:
    Refresh the list of running sessions
    Switch to selected seesions
    Open new session for the selected file - previous session is closed!
    Close the selected session
    Close all sessions
Note: The list control is hot - one click activate!

Ctr+Shift+'RunWinCVS' - the list of active sessions will be printed to the Output Window

Shift+RunWinCVS - open the new WinCVS session without the attached file, regardless of the active file exists or not. It is useful to emulate the 'single instance of Browser (WinCVS)' working model model.