skip to navigation
skip to content

CodeReview 0.3.6

CodeReview is a Python 3 / Qt5 GUI to perform code review on files and Git repositories.


CodeReview Home Page is located at

Authored by Fabrice Salvaire

How to help

  • test it on Windows and OSX
  • fix bugs: look at issues
  • sometime pyqgit is slow: profile code to find issues


I started to write some pieces of code of CodeReview at the end of 2011, as a port of the Bzr Qt plugin QBzr for Git when Bzr started to seriously fall down. I am an addict of code review and I cannot work without it. QBzr features two nice tools for this task: qlog and qdiff. It was the main reason why I used Bzr until 2015 and didn’t switched to Git before this date. But I succeed to release an alternative.

The aim of CodeReview is to provide tools for code review tasks, like to show the difference between two versions. However I am not a fan of GUI softwares that aim to deal with Git with only a mouse and one finger. Thus CodeReview is not intended to compete with a “power” IDE like eclipse, idea, pycharm, kate … But just to provide features not available in Emacs and Magit Mode (my editor) or github like a diff side-by-side on local changes.

CodeReview is written in Python 3 and the GUI is based on the Qt5 framework. The libgit2 and pygit2 provides the Python API to deal with Git repositories. I tried to achieve a clever design and to write a clean code.


The main features of CodeReview are:

  • display and browse the log and paches of a Git repository
  • diff side by side using Patience algorithm
  • watch for file system changes

Diff viewer features:

  • stage/unstage file
  • number of context lines
  • font size
  • line number mode
  • align mode
  • complete mode
  • highlight mode

Ideas for Additional Features

Actually CodeReview has a limited number of features. The followings list gives some ideas to extend its features:

  • Add Mercurial support. (Git and Mercurial are actually the most cool VCS)
  • Add a graphical representation of the branches. I don’t understand the crappy code of qlog and I don’t know any algorithm on this topic (graphviz, qgit ?). To summarize I don’t what and how to do.
  • Implement the detection of code translocations. Sometimes we move code within a file or a project. Such changes are related as deletion and addition in the code, which don’t help to review code. We can do something clever by computing a distance between all the added and deleted chuncks. The distance could be computed using a Levenshtein, Damerau–Levenshtein, Needleman–Wunsch or Smith–Waterman algorithm (DNA alignment algorithms).
  • Implement code analyser/validator as language plugins. The idea is to annotate change as cosmetic or dangerous modifications. For example a deleted or added space is a cosmetic change in C, but it can be a regression in Python where the indentation is part of the grammar.
  • Implement blame wich is another important feature.
  • Implement comments and maybe as a client-server architecture.
  • look


CodeReview requires some dependencies wich are easier to install on a Linux distribution.


CodeReview requires the following dependencies:

  • Python v3.4
  • libgit2 see link for installation instruction

Theses packages are available via pip:

For development, you will need in addition:

Installation from PyPi Repository

CodeReview is made available on the PyPI repository at

Run this command to install the last release:

pip install CodeReview

Installation from Source

CodeReview source code is hosted at

To clone the Git repository, run this command in a terminal:

git clone

Then to build and install CodeReview run these commands:

python build
python install

How to use CodeReview ?

CodeReview provides to executable pyqgit and diff-viewer.

File Type Py Version Uploaded on Size
CodeReview-0.3.6.tar.gz (md5, pgp) Source 2017-11-22 517KB