diff --git commitlog/includes/commitlog.views_default.inc commitlog/includes/commitlog.views_default.inc
index a1e10f3..ead26af 100644
--- commitlog/includes/commitlog.views_default.inc
+++ commitlog/includes/commitlog.views_default.inc
@@ -47,6 +47,7 @@ function commitlog_views_default_views() {
       'empty' => '',
       'hide_empty' => 0,
       'empty_zero' => 0,
+      'link_type' => 'log',
       'exclude' => 0,
       'id' => 'path',
       'table' => 'versioncontrol_item_revisions',
diff --git includes/views/handlers/versioncontrol_handler_field_item_revision_path.inc includes/views/handlers/versioncontrol_handler_field_item_revision_path.inc
new file mode 100644
index 0000000..234f54b
--- /dev/null
+++ includes/views/handlers/versioncontrol_handler_field_item_revision_path.inc
@@ -0,0 +1,69 @@
+<?php
+// $Id$
+class versioncontrol_handler_field_item_revision_path extends views_handler_field {
+  public $backends = NULL;
+  public $repos = array();
+  public $itemRevisions = array();
+
+  function construct() {
+    parent::construct();
+    $this->backends = versioncontrol_get_backends();
+  }
+
+  /**
+   * Get a repository of the @param $vcs type.
+   */
+  function getRepository($vcs, $repo_id) {
+    if (!isset($this->repos[$repo_id])) {
+      $this->repos[$repo_id] = $this->backends[$vcs]->loadEntity('repo', array($repo_id));
+    }
+    return $this->repos[$repo_id];
+  }
+
+  /**
+   * Get an item revision.
+   */
+  function getItemRevision($vcs, $item_revision_id) {
+    if (!isset($this->itemRevisions[$item_revision_id])) {
+      $this->itemRevisions[$item_revision_id] = $this->backends[$vcs]->loadEntity('item', array($item_revision_id));
+    }
+    return $this->itemRevisions[$item_revision_id];
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_type'] = array('default' => 'view', 'translatable' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Where to link at the repository browser'),
+      '#default_value' => $this->options['link_type'],
+      '#options' => array(
+        'view' => t('Item content'),
+        'log' => t('Item log history'),
+      ),
+    );
+  }
+
+  function render($values) {
+    $path = $values->{$this->field_alias};
+    $vcs = $values->{$this->aliases['vcs']};
+    $repo_id = $values->{$this->aliases['repo_id']};
+    $item_revision_id = $values->{$this->aliases['item_revision_id']};
+    $repo = $this->getRepository($vcs, $repo_id);
+    $url_handler = $repo->getUrlHandler();
+    $item_revision = $this->getItemRevision($vcs, $item_revision_id);
+    $link_type = !empty($this->options['link_type']) ? $this->options['link_type'] : 'view';
+    switch ($link_type) {
+      case 'log':
+        return l(check_plain($path), $url_handler->getItemLogViewUrl($item_revision));
+      case 'view':
+      default:
+        return l(check_plain($path), $url_handler->getItemViewUrl($item_revision));
+    }
+  }
+}
diff --git includes/views/handlers/versioncontrol_handler_field_operation_message.inc includes/views/handlers/versioncontrol_handler_field_operation_message.inc
new file mode 100644
index 0000000..2a8993f
--- /dev/null
+++ includes/views/handlers/versioncontrol_handler_field_operation_message.inc
@@ -0,0 +1,36 @@
+<?php
+// $Id$
+
+/**
+ * Version Control API field handler to be able to generate bug tracker
+ * links.
+ */
+class versioncontrol_handler_field_operation_message extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['issue_tracker_url'] = array('default' => '', 'translatable' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['issue_tracker_url'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Issue tracker URL'),
+      '#description' => t('Convert #123 into a link to the issue tracker. Use %issue_id in the place the issue ID should be replaced. For example http://drupal.org/node/%issue_id'),
+      '#default_value' => '',
+    );
+  }
+
+  function render($values) {
+    $message = $values->{$this->field_alias};
+    if (empty($this->options['issue_tracker_url'])) {
+      return $message;
+    }
+    return preg_replace('/#(\d+)\b/ie',
+      "strtr('<a href=\"!url\">#\\1</a>', array('!url' => strtr(\$this->options['issue_tracker_url'], array('%issue_id' => \\1))))",
+      htmlspecialchars($message)
+    );
+  }
+
+}
diff --git includes/views/handlers/versioncontrol_handler_field_operation_revision.inc includes/views/handlers/versioncontrol_handler_field_operation_revision.inc
index 45ba0e5..0228816 100644
--- includes/views/handlers/versioncontrol_handler_field_operation_revision.inc
+++ includes/views/handlers/versioncontrol_handler_field_operation_revision.inc
@@ -7,16 +7,30 @@
  */
 class versioncontrol_handler_field_operation_revision extends views_handler_field {
   public $backends = NULL;
+  public $repos = array();
 
   function construct() {
     parent::construct();
     $this->backends = versioncontrol_get_backends();
   }
 
+  /**
+   * Get a repository of the @param $vcs type.
+   */
+  function getRepository($vcs, $repo_id) {
+    if (!isset($this->repos[$repo_id])) {
+      $this->repos[$repo_id] = $this->backends[$vcs]->loadEntity('repo', array($repo_id));
+    }
+    return $this->repos[$repo_id];
+  }
+
   function render($values) {
     $revision = $values->{$this->field_alias};
     $vcs = $values->{$this->aliases['vcs']};
+    $repo_id = $values->{$this->aliases['repo_id']};
     $revision = $this->backends[$vcs]->formatRevisionIdentifier($revision, 'short');
-    return check_plain($revision);
+    $repo = $this->getRepository($vcs, $repo_id);
+    $url_handler = $repo->getUrlHandler();
+    return l(check_plain($revision), $url_handler->getCommitViewUrl($revision));
   }
 }
diff --git includes/views/versioncontrol.views.inc includes/views/versioncontrol.views.inc
index 4de3c8f..cb9e302 100755
--- includes/views/versioncontrol.views.inc
+++ includes/views/versioncontrol.views.inc
@@ -291,6 +291,7 @@ function versioncontrol_views_data() {
       'click sortable' => TRUE,
       'additional fields' => array(
         'vcs' => array('table' => 'versioncontrol_repositories', 'field' => 'vcs'),
+        'repo_id' => array('table' => 'versioncontrol_repositories', 'field' => 'repo_id'),
       ),
     ),
     'sort' => array(
@@ -307,7 +308,7 @@ function versioncontrol_views_data() {
     'title'    => t('Message'),
     'help'     => t('The Operation Message'),
     'field'    => array(
-      'handler' => 'views_handler_field',
+      'handler' => 'versioncontrol_handler_field_operation_message',
     ),
   );
   $data['versioncontrol_operations']['table']['join'] = array(
@@ -440,8 +441,14 @@ function versioncontrol_views_data() {
   $data['versioncontrol_item_revisions']['path'] = array(
     'title' => t("File path"),
     'help' => t("The file path within the repository"),
-    'field' => array(
-      'handler' => 'views_handler_field',
+    'field'    => array(
+      'handler' => 'versioncontrol_handler_field_item_revision_path',
+      'click sortable' => TRUE,
+      'additional fields' => array(
+        'vcs' => array('table' => 'versioncontrol_repositories', 'field' => 'vcs'),
+        'repo_id' => array('table' => 'versioncontrol_repositories', 'field' => 'repo_id'),
+        'item_revision_id',
+      ),
     ),
     'sort' => array(
       'handler' => 'views_handler_sort',
@@ -461,6 +468,7 @@ function versioncontrol_views_data() {
       'click sortable' => TRUE,
       'additional fields' => array(
         'vcs' => array('table' => 'versioncontrol_repositories', 'field' => 'vcs'),
+        'repo_id' => array('table' => 'versioncontrol_repositories', 'field' => 'repo_id'),
       ),
     ),
     'sort' => array(
@@ -545,6 +553,9 @@ function versioncontrol_views_handlers() {
       'versioncontrol_handler_field_operation_type' => array(
         'parent' => 'views_handler_field',
       ),
+      'versioncontrol_handler_field_operation_message' => array(
+        'parent' => 'views_handler_field',
+      ),
       'versioncontrol_handler_field_operation_revision' => array(
         'parent' => 'views_handler_field',
       ),
@@ -557,6 +568,9 @@ function versioncontrol_views_handlers() {
       'versioncontrol_handler_field_item_revision_action' => array(
         'parent' => 'views_handler_field',
       ),
+      'versioncontrol_handler_field_item_revision_path' => array(
+        'parent' => 'views_handler_field',
+      ),
       'versioncontrol_handler_field_item_revision_visual_diffstat' => array(
         'parent' => 'views_handler_field',
       ),
