skip to navigation
skip to content

CodeReview 0.3.1

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

CodeReview

CodeReview Home Page is located at http://fabricesalvaire.github.io/CodeReview

Authored by Fabrice Salvaire.


Introduction

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.

Features

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 https://docs.python.org/3.4/library/difflib.html

Installation

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

Dependencies

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 https://pypi.python.org/pypi/CodeReview

Run this command to install the last release:

pip install CodeReview

Installation from Source

CodeReview source code is hosted at https://github.com/FabriceSalvaire/CodeReview

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

git clone git@github.com:FabriceSalvaire/CodeReview.git

Then to build and install CodeReview run these commands:

python setup.py build
python setup.py install

How to use CodeReview ?

CodeReview provides to executable pyqgit and diff-viewer.

 
File Type Py Version Uploaded on Size
CodeReview-0.3.1.tar.gz (md5) Source 2017-10-10 520KB