The Main Screen, Viewing File Status and Updating

When you start Cervisia, and open a working copy by choosing FileOpen Sandbox..., you can see two main areas in Cervisia's main window: the top one is a hierarchical (tree) view of the current working copy; the bottom area is used to display the CVS commands Cervisia issues to perform its tasks, as well as the output generated by these commands.

By default, Cervisia does not display the files contained by the sub-folders, so you will have to click the folders you want to see. To display all files of the working copy, select ViewUnfold File Tree. To close back all folders from the working copy, choose ViewFold File Tree.

According to the settings in your .cvsignore files, the files you usually do not want to include into the repository - such as object files - are not shown in the tree view. For each file, you see its corresponding status. In the default setting, after opening the sandbox, this is "Unknown" because Cervisia delays the fetching of information until you select the files and folders whose status you want to update or view and choose FileUpdate or FileStatus. With this approach, you have a minimal amount of functionality available even if you do not have a permanent connection to the CVS server.

Figure 2.4. A screenshot of Cervisia's main view

A screenshot of Cervisia's main view

The commands in the File menu usually act only on the files which you have marked. You may also mark folders. Now choose FileStatus or press F5. Cervisia issues a

cvs update -n file names

command to get status information for the marked files. Note that Cervisia goes recursively into subfolders only if you have the according option in the Settings menu set. According to the respective file's status, you now see an entry in the Status column:

Locally Modified

This means you have modified the file compared to the version in the repository.

Locally Added

This means the file does not exist in the repository, but in your working copy and you have scheduled it for addition. The actual insertion into the repository only happens after a commit.

Locally Removed

This means you have scheduled the file for removal, but it still exists in the repository. The actual removal happens only after a commit.

Needs Update

This is shown if a newer version of the file exists in the repository, e.g. because someone committed a modification. Normally, you want to update this file so you have an up-to-date version in your folder.

Needs Patch

This is essentially the same as before; the difference is that in case of an update, the CVS server transfers only a patch instead of the whole file to you.

Needs Merge

Indicates that a merge of the revision of this file in your working copy with the version in the repository is necessary. This typically happens if you have made modifications to the file while someone else has committed his modifications. If you choose to update, the modifications in the repository are merged into your file. In case of a conflict (i.e. if someone else has changed some of the same lines like you) the new status is then "Conflict".

Up to Date

Indicates that the file is identical with the version in the repository.

Conflict

This is shown if this file still has conflict markers in it. Maybe you have previously updated the file and not resolved the conflicts.

Not In CVS

Indicates that the file is not registered in the CVS repository. If you want it to available for others, you should add it to the repository. If not, you may consider adding it to your .cvsignore file.

Now that you have got an overview of the current status of the CVS, you may want to do an update. Mark some files (or the root of the folder tree which is equivalent to marking all files in this folder). Now choose FileUpdate (Of course, you could have chosen this at the beginning of the session). For some of the files the status may change now. Typically, files which had "Needs Patch" or "Needs Update" are updated. So the following new items are possible in the status column:

Updated

Shown if the file was updated from the repository.

Patched

Indicates that the CVS server has sent a patch for this file and the patch has been successfully applied. If the patch was not successful because there was a conflict between your modifications and those someone else committed to the repository, the status is now Conflict.

You may have noticed that according to the status of the file, its row has a different color. The colors are chosen to somehow reflect the priority of the status. For example, a file with a conflict is marked red to show you that you have to resolve a conflict before you can continue working with the file. If your folder contains a high number of files, you may nevertheless lose the overview. To get more concise information about which files have an unusual status, simply click on the header of the Status column. The file list is then sorted by priority, so you have all important information at the top of the list. To get back to the alphabetically sorted view, click on the header of the File name column.