• Home
  • Subversion Hosting
  • Documents
  • Contact Us
  • Members Login

Revision Log Dialog

For every change you make and commit, you should provide a log message for that change. That way you can later find out what changes you made and why, and you have a detailed log for your development process.

The Revision Log Dialog retrieves all those log messages and shows them to you. The display is divided into 3 panes.

  • The top pane shows a list of revisions where changes to the file/folder have been committed. This summary includes the date and time, the person who committed the revision and the start of the log message.

    Lines shown in blue indicate that something has been copied to this development line (perhaps from a branch).

  • The middle pane shows the full log message for the selected revision.

  • The bottom pane shows a list of all files and folders that were changed as part of the selected revision.

But it does much more than that - it provides context menu commands which you can use to get even more information about the project history.

Invoking the Revision Log Dialog

Figure 5.14. The Revision Log Dialog

The Revision Log Dialog

There are several places from where you can show the Log dialog:

  • From the TortoiseSVN context submenu

  • From the property page

  • From the Progress dialog after an update has finished. Then the Log dialog only shows those revisions which were changed since your last update

Getting Additional Information

Figure 5.15. The Revision Log Dialog Top Pane with Context Menu

The Revision Log Dialog Top Pane with Context Menu

The top pane of the Log dialog has a context menu that allows you to

  • Compare the selected revision with your working copy. The default Diff-Tool is TortoiseMerge which is supplied with TortoiseSVN. If the log dialog is for a folder, this will show you a list of changed files, and allow you to review the changes made to each file individually.

  • Blame the selected revision, and the file in your working BASE and compare the results using a visual diff tool. Read the section called “Blame Differences” for more detail.

  • View the changes made in the selected revision as a Unified-Diff file (GNU patch format). This shows only the differences with a few lines of context. It is harder to read than a visual file compare, but will show all file changes together in a compact format.

  • Save the selected revision to a file so you have an older version of that file. This option is only available when you access the log for a file, and it saves a version of that one file only.

  • Open the repository browser to examine the selected folder. This option is only available when you access the log for a directory.

  • Create a branch/tag from a selected revision. This is useful e.g. if you forgot to create a tag and already committed some changes which weren't supposed to get into that release.

  • Update your working copy to the selected revision. Useful if you want to have your working copy reflect a time in the past. It is best to update a whole directory in your working copy, not just one file, otherwise your working copy will be inconsistent and you will be unable to commit any changes.

  • Revert changes from which were made in the selected revision. The changes are reverted in your working copy so this operation does not affect the repository at all! Note that this will undo the changes made in that revision only. It does not replace your working copy with the entire file at the earlier revision. This is very useful for undoing an earlier change when other unrelated changes have been made since.

  • Revert to an earlier revision. If you have made several changes, and then decide that you really want to go back to how things were in revision N, this is the command you need. Again, the changes are reverted in your working copy so this operation does not affect the repository until you commit the changes. Note that this will undo all changes made after the selected revision, replacing the file/folder with the earlier version.

  • Edit the log message or author attached to a previous commit. Read the section called “Changing the Log Message and Author” to find out how this works.

  • Search log messages for the text you enter. This searches the log messages that you entered and also the action summaries created by Subversion (shown in the bottom pane). The search is not case sensitive.

Figure 5.16. Top Pane Context Menu for 2 Selected Revisions

Top Pane Context Menu for 2 Selected Revisions

If you select two revisions at once (using the usual Ctrl-modifier), the context menu changes and gives you fewer options:

  • Compare the two selected revisions using a visual difference tool. The default Diff-Tool is TortoiseMerge which is supplied with TortoiseSVN.

    If you select this option for a folder, a further dialog pops up listing the changed files and offering you further diff options. Read more about the Compare Revisions dialog in the section called “Comparing Folders”.

  • Blame the two revisions and compare the results using a visual difference tool. Read the section called “Blame Differences” for more detail.

  • View the differences between the two selected revisions as a Unified-Diff file. This works for files and folders.

  • Edit the log message or author as described above.

  • Search log messages as described above.

If you select multiple consecutive revisions (using the usual Ctrl or Shift modifiers), the context menu will include an entry to Revert all changes which were made in that range of revisions. This is the easiest way to rollback a group of revisions in one go.

Figure 5.17. The Log Dialog Bottom Pane with Context Menu

The Log Dialog Bottom Pane with Context Menu

The bottom pane of the Log dialog also has a context menu that allows you to

  • Show differences made in the selected revision for the selected file. This context menu is only available for files shown as Modified.

  • Blame the selected revision and the previous revision for the selected file, and show the differences using a visual diff tool. Read the section called “Blame Differences” for more detail.

  • Open the selected file, either with the default viewer for that file type, or with a program you choose.

  • Revert the changes made to the selected file in that revision.

  • View the Subversion properties for the selected item.

  • Show the revision log for the selected single file.

  • Save the selected revision to a file so you have an older version of that file.

Getting more log messages

The Log dialog does not always show all changes ever made for a number of reasons:

  • For a large repository there may be hundreds or even thousands of changes and fetching them all could take a long time. Normally you are only interested in the more recent changes. By default, the number of log messages fetched is limited to 100, but you can change this value in TortoiseSVNSettings (the section called “TortoiseSVN's Settings”),

  • When the Stop on copy/rename box is checked, Show Log will stop at the point that the selected file or folder was copied from somewhere else within the repository. This can be useful when looking at branches (or tags) as it stops at the root of that branch, and gives a quick indication of changes made in that branch only.

    Normally you will want to leave this option unchecked. TortoiseSVN remembers the state of the checkbox, so it will respect your preference.

    When the Show Log dialog is invoked from within the Merge dialog, the box is always checked by default. This is because merging is most often looking at changes on branches, and going back beyond the root of the branch does not make sense in that instance.

    Note that Subversion currently implements renaming as a copy/delete pair, so renaming a file or folder will also cause the log display to stop if this option is checked.

If you want to see more log messages, click the Next 100 to retrieve the next 100 log messages. You can repeat this as many times as needed.

Next to this button there is a multi-function button which remembers the last option you used it for. Click on the arrow to see the other options offered.

Use Show Range ... if you want to view a specific range of revisions. A dialog will then prompt you to enter the start and end revision.

Use Show All if you want to see all log messages from HEAD right back to revision 1.

Changing the Log Message and Author

Sometimes you might want to change a log message you once entered, maybe because there's a spelling error in it or you want to improve the message or change it for other reasons. Or you want to change the author of the commit because you forgot to set up authentication or...

Subversion lets you change both the log message and the author of revisions any time you want. But since such changes can't be undone (those changes are not versioned) this feature is disabled by default. To make this work, you must set up a pre-revprop-change hook. Please refer to the chapter on Hook Scripts in the Subversion Book for details about how to do that. Read the section called “Hook Scripts” to find some further notes on implementing hooks on a Windows machine.

Once you've set up your server with the required hooks, you can change both author and log message of any revision, using the context menu from the top pane of the Log dialog.

Warning

Because Subversion's revision properties are not versioned, making modifications to such a property (for example, the svn:log commit message property) will overwrite the previous value of that property forever.

Filtering Log Messages

If you want to restrict the log messages to show only those you are interested in rather than scrolling through a list of hundreds, you can use the filter controls at the top of the Log Dialog. The start and end date controls allow you to restrict the output to a known date range. The search box allows you to show only messages which contain a particular phrase.

Note that these filters act on the messages already retrieved. They do not control downloading of messages from the repository.

You can also filter the path names in the bottom pane using the Hide unrelated changed paths checkbox. Related paths are those which contain the path used to display the log. If you fetch the log for a folder, that means anything in that folder or below it. For a file it means just that one file. The checkbox is tri-state: you can show all paths, grey out the unrelated ones, or hide the unrelated paths completely.

Statistical Information

The Statistics button brings up a box showing some interesting information about the revisions shown in the Log dialog. This shows how many authors have been at work, how many commits they have made, progress by week, and much more. Now you can see at a glance who has been working hardest and who is slacking ;-)

Statistics Page

This page gives you all the numbers you can think of, in particular the period and number of revisions covered, and some min/max/average values.

Commits by Author Page

Figure 5.18. Commits-by-Author Histogram

Commits-by-Author Histogram

This graph shows you which authors have been active on the project as a simple histogram, stacked histogram or pie chart.

Figure 5.19. Commits-by-Author Pie Chart

Commits-by-Author Pie Chart

Where there are a few major authors and many minor contributors, the number of tiny segments can make the graph more difficult to read. The slider at the bottom allows you to set a threshold (as a per centage of total commits) below which any activity is grouped into an Others category.

Commits by Week Page

Figure 5.20. Commits-by-Week Graph

Commits-by-Week Graph

This page gives you a graphical representation of project activity in terms of number of commits and author. This gives some idea of when a project is being worked on, and who was working at which time.

When there are several authors, you will get many lines on the graph. There are two views available here: normal, where each author's activity is relative to the base line, and stacked, where each author's activity is relative to the line underneath. The latter option avoids the lines crossing over, which can make the graph easier to read, but less easy to see one author's output.

By default the analysis is case-sensitive, so users PeterEgan and PeteRegan are treated as different authors. However, in many cases usernames are not case-sensitive, and are sometimes entered inconsistently, so you may want DavidMorgan and davidmorgan to be treated as the same person. Use the Authors case insensitive checkbox to control how this is handled.

Note that the statistics cover the same period as the Log dialog. If that is only displaying one revision then the statistics will not tell you very much.

All Plans Include

All plans free for 2008
Trac wiki linked to each repository
Online management tools
Access control lists (ALCs)
Read only or read write users
Secure HTTPS connections
Data mirrored onto backup servers
Disk usage reporting
Online invoices & payments
Unlimited support
Click for Free Subversion Hosting