     (let ((default-directory git-timemachine-directory)
           (file git-timemachine-file))
      (with-temp-buffer
-      (unless (zerop (process-file vc-git-program nil t nil "--no-pager" "log" "--name-only" "--follow" "--pretty=format:%H:%ar:%ad:%s" file))
+
+      (unless (zerop (if git-branch
+                      (process-file vc-git-program nil t nil "--no-pager" "log" git-branch "--name-only" "--follow" "--pretty=format:%H%x00%ar%x00%ad%x00%s%x00%an" "--" file)
+                      (process-file vc-git-program nil t nil "--no-pager" "log" "--name-only" "--follow" "--pretty=format:%H%x00%ar%x00%ad%x00%s%x00%an" "--" file)))
        (error "Git log command exited with non-zero exit status for file: %s" file))
+
       (goto-char (point-min))
       (let ((lines)
             (commit-number (/ (1+ (count-lines (point-min) (point-max))) 3)))
        (while (not (eobp))
         (let ((line (buffer-substring-no-properties (line-beginning-position) (line-end-position))))
-         (string-match "\\([^:]*\\):\\([^:]*\\):\\(.*\\):\\(.*\\)" line)
+         (string-match "\\([^\0]*\\)\0\\([^\0]*\\)\0\\([^\0]*\\)\0\\(.*\\)\0\\(.*\\)" line)
          (let ((commit (match-string 1 line))
                (date-relative (match-string 2 line))
                (date-full (match-string 3 line))
-               (subject (match-string 4 line)))
+               (subject (match-string 4 line))
+               (author (match-string 5 line)))
           (forward-line 1)
           (let ((file-name (buffer-substring-no-properties (line-beginning-position) (line-end-position))))
-           (push (list commit file-name commit-number date-relative date-full subject) lines))))
+           (push (list commit file-name commit-number date-relative date-full subject author) lines))))
         (setq commit-number (1- commit-number))
         (forward-line 2))
        (nreverse lines))))

 (interactive)
 (git-timemachine-show-revision (car (git-timemachine--revisions))))

(defun git-timemachine--next-revision (revisions)
 "Return the revision following the current revision in REVISIONS."
 (cadr (cl-member (car git-timemachine-revision) revisions :key #'car :test #'string=)))

(defun git-timemachine-show-previous-revision ()
 "Show previous revision of file."

 (unless (vc-git-registered file)
  (error "This file is not git tracked")))

(defun git-timemachine--start (get-revision-fn)
 "Setup a timemachine buffer and populate it from the result of GET-REVISION-FN."
 (setq git-timemachine--revisions-cache nil)
 (git-timemachine-validate (buffer-file-name))
 (let ((git-directory (expand-file-name (vc-git-root (buffer-file-name))))
