CodeReview is a Python 3 / Qt5 GUI to perform code review on files and Git repositories.
Project description
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.
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
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.
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.
Source Distribution
File details
Details for the file CodeReview-0.3.1.tar.gz
.
File metadata
- Download URL: CodeReview-0.3.1.tar.gz
- Upload date:
- Size: 533.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4292c81178070e27e9e1d7410bef5bb6e1015a316ddd4475a1c1f235c7657440 |
|
MD5 | b2917d7b0de29ed5b1c1192d6d646ef0 |
|
BLAKE2b-256 | 995ad887181bb4d565654034eaf832f36d5e6755cce2e1a2c659d3c85d60e097 |