Skip to main content

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

Project description

CodeReview

CodeReview license CodeReview python version

CodeReview last version

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

Authored by Fabrice Salvaire

https://raw.github.com/FabriceSalvaire/CodeReview/master/doc/sphinx/source/images/code-review-log.png https://raw.github.com/FabriceSalvaire/CodeReview/master/doc/sphinx/source/images/code-review-diff.png

How to help

  • test it on Windows and OSX

  • fix bugs: look at issues

  • sometime pyqgit is slow: profile code to find issues

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

CodeReview-0.3.3.tar.gz (534.0 kB view hashes)

Uploaded Source

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