Loading...

All project content is available for reading, but you need to be a member of the project for Subversion checkout of source code, or to create/modify any information.
Login if you are a member. Apply here to request membership (open to all).

Changesets and Revision Log

CodeResort has a built-in functionality for visualizing “diffs” - changes to files.

There are different kinds of change sets. Some can correspond to revisions made in the repositories, others can aggregate changes made in several revisions, but in the end, any kind of differences can be shown.

The changeset view consists of two parts, the header and the diff views.

Changeset Header

The header shows an overview of the whole changeset. Here you will find information such as:

  • Timestamp -- When the changeset was commited
  • Author -- Who commited the changeset
  • Message -- A brief description from the author (the commit log message)
  • Files -- A list of files affected by this changeset

If more than one revision is involved in the set of changes being displayed, the Timestamp, Author and Message fields won't be shown.

In front of each listed file, you'll find a colored rectangle. The color indicates how the file is affected by the changeset.

  • Green: Added
  • Red: Removed
  • Yellow: Modified
  • Blue: Copied
  • Gray: Moved

The color legend is located below the header as a reminder.

Diff Views

Below the header is the main part of the changeset, the diff view. Each file is shown in a separate section, each of which will contain only the regions of the file that are affected by the changeset. There are two different styles of displaying the diffs: inline or side-by-side (you can switch between those styles using the preferences form):

  • The inline style shows the changed regions of a file underneath each other. A region removed from the file will be colored red, an added region will be colored green. If a region was modified, the old version is displayed above the new version. Line numbers on the left side indicate the exact position of the change in both the old and the new version of the file.
  • The side-by-side style shows the old version on the left and the new version on the right (this will typically require more screen width than the inline style.) Added and removed regions will be colored in the same way as with the inline style (green and red, respectively), but modified regions will have a yellow background.

In addition, various advanced options are available in the preferences form for adjusting the display of the diffs:

  • You can set how many lines are displayed before and after every change (if the value all is used, then the full file will be shown)
  • You can toggle whether blank lines, case changes and white space changes are ignored, thereby letting you find the functional changes more quickly

The Different Ways to Get a Diff

Examining a Changeset

When viewing a repository check-in, such as when following a changeset link or a changeset event in the timeline, the viewer will display the exact changes made by the check-in.

There will be also navigation links to the Previous Changeset to and Next Changeset.

Examining Differences Between Revisions

Often you'll want to look at changes made on a file or on a directory spanning multiple revisions. The easiest way to get there is from the Revision Log, where you can select the old and the new revisions of the file or directory, and then click the View changes button.

Examining Differences Between Branches

One of the core features of version control systems is the possibility to work simultaneously on different Lines of Developments, commonly called “branches”. Trac enables you to examine the exact differences between such branches.

Using the View changes ... button in the source code Browser allows you to enter From: and To: path/revision pairs. The resulting set of differences consist of the changes that should be applied to the From: content in order to get to the To: content.

For convenience, it is possible to invert the roles of the old and the new path/revision pairs by clicking the Reverse Diff link on the changeset page.

Checking the Last Change

The last possibility for examining changes is to use the Last Change link provided by the Browser.

This link will take you to the last change that was made on that path. From there, you can use the Previous Change and Next Change links to traverse the change history of the file or directory.

Viewing Revision Logs

When you browse the repository, it's always possible to query the Revision Log view corresponding to the path you're currently seeing. This will display a list of the most recent changesets in which the current path or any other path below it has been modified.

It's possible to set the revision at which the revision log should start, using the View log starting at field. An empty value or a value of head is taken to be the newest changeset.

It's also possible to specify the revision at which the log should stop, using the back to field. By default, it's left empty, which means the revision log will stop as soon as 100 revisions have been listed.

Also, there are three modes of operation of the revision log.

By default, the revision log stops on copy, which means that whenever an Add, Copy or Rename operation is detected, no older revision will be shown. That's very convenient when working with branches, as one only sees the history corresponding to what has been done on the branch.

It's also possible to indicate that one wants to see what happened before a Copy or Rename change, by selecting the Follow copies mode. This will cross all copies or renames changes. Each time the name of the path changes, there will be an additional indentation level. That way, the changes on the different paths are easily grouped together visually.

It's even possible to go past an Add change, in order to see if there has been a Delete change on that path, before that Add. This mode corresponds to the mode called Show only adds, moves and deletes. While quite useful at times, be aware that this operation is quite resource intensive.

Finally, there's also a checkbox Show full log messages, which controls whether the full content of the commit log message should be displayed for each change, or only a shortened version of it.

The Revision Log Information

For each revision log entry, there are 7 columns shown:

  1. The first column contains a pair of radio buttons and should used for selecting the old and the new revisions that will be used for viewing the actual changes.
  2. A color code (similar to the one used for the changesets) indicating kind of change. Clicking on this column refreshes the revision log so that it restarts with this change.
  3. The Date at which the change was made.
  4. The Revision number, displayed as @xyz. This is a link to the Browser, using that revision as the base line.
  5. The Changeset number, displayed as [xyz]. This is a link to the Changeset view.
  6. The Author of the change.
  7. The Log Message, which contains either a summary or the full commit log message, depending on the value of the Show full log messages checkbox in the form above.

Inspecting Changes Between Revisions

The View changes... buttons (placed above and below the list of changes, on the left side) will show the set of differences corresponding to the aggregated changes starting from the old revision (first radio-button) to the new revision (second radio-button), in the Changeset view.

Note that the old revision doesn't need to be actually older than the new revision: it simply gives a base for the diff. It's therefore entirely possible to easily generate a reverse diff, for reverting what has been done in the given range of revisions.

Finally, if the two revisions are identical, the corresponding changeset will be shown (same effect as clicking on column 5).

RSS Support

The revision log also provides a RSS feed to monitor the changes. To subscribe to a RSS feed for a file or directory, open its revision log in the browser and click the orange 'XML' icon at the bottom of the page. For more information on RSS support, see HelpUser/RSS.