Skip to main content

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

Project description

CodeReview

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

The latest documentation build from the git repository is available at readthedocs.org CodeReview@readthedocs-badge

Written by Fabrice Salvaire.

CodeReview build status @travis-ci.org


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, qlog and qdiff for this task. It was the main reason why I am still using Bzr in 2015. But now 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 any GUI that aims 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 (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 a Python API to deal with Git repositories. I tried to achieve a clever design and to write a clean code.

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

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

Installation

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

Dependencies

CodeReview requires the following dependencies:

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

The 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

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page