Browsing CVS Logs

When you mark one file in the main view and choose Browse Log... from the View menu or right click the marked file and choose Browse Log... from the context menu, the CVS Log dialog is shown (if you mark more than one, nothing happens, as Cervisia can only generate and parse the log for one file at a time). This dialog offers functionality that is beyond viewing the file's history. Using it as a version browser you can:

  • View the revision, author, date, branch, commit message, and tags for each version of the marked file.

  • View a graphical tree representation showing the branching and tagging of the marked file.

  • View any version of the marked file (with the default application).

  • Watch an annotated view of any version of the marked file

  • View the differences between any pair of versions of the marked file, including pairs with the current working copy version of the marked file.

  • Create patches containing the differences between any pair of versions of the marked file, including pairs with the current working copy version of the marked file.

Figure 4.4. A screenshot of Cervisia's browse logs dialog


A screenshot of Cervisia's browse logs dialog

You can choose to see the history as provided by the cvs log command (CVS Output), as a Tree, or in List form. What you prefer is of course a matter of taste and it depends on what information you are interested in. The tree is an intuitive representation of what has been done on different branches by which authors. As tooltips, you can see the corresponding log messages. The list is by its nature linear and, therefore, does not give an immediate view of branches; on the other hand, it concentrates more otherwise relevant information on less screen estate, namely the time of each change of the file and the first part of the log message. The CVS output information is complete, but long, and difficult to read. To alleviate these problems, you have the ability to search the text of the CVS output, by pressing the Find... button.

To obtain more information about a certain revision, you can click on it either in the list or the tree view. The fields in the middle of the dialog are then filled with the complete information provided by cvs log. You can mark two revisions, called "A" and "B", which are relevant if you make use of further features provided by the buttons. Revision "A" can be chosen with the left mouse button, revision "B" with the middle one. In the list view, you can also navigate with your cursor keys. In order to mark revisions "A" and "B", use the shortcuts Ctrl+A, Ctrl+B, respectively. Using the CVS Output view, you can click on the Select for revision A and Select for revision B to mark the revisions.

If you press the Annotate button, you get a dialog showing the text of file belonging to the revision marked as "A". Every line is prefixed with the information about who edited this last time, and at which revision this happened. You can get more information about viewing annotated versions in the section called “Watching an Annotated View of a File”.

If you press the Diff button, a cvs diff call is issued and you get a dialog in which all the modifications between the two marked revisions are shown. If you mark revision "A", but not revision "B", Cervisia will generate the modifications between the file version marked as revision "A" and the working copy version of the file. This allows you to view the differences between your version of the file and any version available in CVS. To make it easy to see the changes, different colors are used to mark lines which have been added, removed or simply changed. You can get more information about viewing differences in the section called “Watching Differences Between Revisions”.

If you press the Create Patch... button, you get a dialog in which you can set the format options for generating a file containing all the modifications between the two marked revisions which are shown. If you mark revision "A", but not revision "B", Cervisia will generate the modifications between the file version marked as revision "A" and the working copy version of the file. This allows you to generate a patch, or difference file, between your version of the file and any version available in CVS. After configuring the format of the patch in the dialog, and pressing OK, a cvs diff command is issued to generate the difference file. A Save As dialog will pop up. Enter the file name and location of the patch file Cervisia generated, in order to save it. You can get more information about creating patches, and the patch format options in the section called “Creating Patches”.

If you press the View button, Cervisia will retrieve the revision marked as "A" and display it using the default application for its file type.

Press the Close button to leave the dialog and return to the main view.

To generate the log that is the base for the CVS Log dialog, Cervisia issues the following command:

cvs log file name