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 built from the git repository is available at readthedocs.org
Written 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, qlog and qdiff for this task. 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
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.
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:
Pygments
PyYAML
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.