Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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.
  • 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.

Release History

Release History

This version
History Node

0.3.1

History Node

0.3.0

History Node

0.2.1

History Node

0.2.0

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
CodeReview-0.3.1.tar.gz (533.0 kB) Copy SHA256 Checksum SHA256 Source Oct 10, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting