Code Monkey home page Code Monkey logo

pharo-git-thermite's Introduction

Pharo Git Thermite

Git Thermite is a visual tool to assess GIT commits, GitHub Pull Requests, and Monticello commits. Git Thermite provides a visual support to commit, usually presented in a textual fashion.

Here is an example of a large commit: Git Thermite Visualization

The visualization is obtained directly from the Monticello window. The left hand side gives a summary of the change:

  • the change has many new lines of code and a few removed lines (top large green bar and a short red bar)
  • many classes have been modified and a few new classes are added (the middle bar has a small green bar and a large yellow bar)
  • many new and modified methods (lower green and yellow bar).

The right hand side gives detail about these changes.

  • each inner box is a class. yellow = modified classes and green = new class
  • each inner-inner box is a method.

Installation

The following script installs Git Thermite in a Pharo 7 image:

Metacello new
   baseline: 'Thermite';
   repository: 'github://ronsaldo/pharo-git-thermite/src';
   load

Usage

Iceberg integration

For visualizing the local image changes to commit with Iceberg, there is a Thermite button in the dialog for reviewing the changes to commit.

Iceberg commit integration

Iceberg arbitrary commit comparison

For visualizing arbitrary iceberg git commits with Git Thermite, there is the Thermite -> Create Thermite visualization... context menu in the repositories browser.

Iceberg integration

This menu entries opens a dialog for selecting the two git commits to visualize with Thermite, along with some options to customize the visualization.

Iceberg thermite commit selection

Iceberg integration demo video

A short demo video on how to use the Iceberg integration is available at:

Git Thermite Iceberg integration demo

Visualizing a local git commit

For visualizing a local Git commit, you can use the dialog in the World Menu -> Git Thermite -> Visualize local commit.

Visualize local commit menu

Visualize local commit dialog

Thermite Local Commit Video Example: https://youtu.be/LCHTiJ4nx3g

In this dialog Local Repository Path is the path for a locally cloned git repository. Commit Name is the name of a git commit (or branch, tag, etc) as accepted by git. Parent Commit Name is the name of the commit to use for comparing against. By default this is set to ~1 which is a git notation for naming the immediate parent of the commit present in the Commit Name text input field.

Visualizing a GitHub pull request

For visualizing a GitHub pull request, you can use the dialog in the World Menu -> Git Thermite -> Visualize pull request.

Visualize Pull Request Menu

Visualize Pull Request Dialog

GithHub Pull Request Thermite Video Example: https://youtu.be/f196btLfYxM

In this dialog GitHub Project Owner is the name of the owner of the GitHub repository to analyze. GitHub Project Name is the name of the GitHub project to analyze.

Visualizing Monticello commits

Pharo Git Thermite adds some additional buttons into the Monticello Repository Browser. The Thermite changes buttons allows you to visualize the changes introduced by a single monticello commit using Pharo Git Thermite. The Thermite parent changes button allows you to select a parent commit for comparing using Pharo Git Thermite.

Monticello Thermite Buttons Monticello Thermite Video Example: https://youtu.be/02CUHBmm-K8

Legend

Legend

Feedback form

For giving feedback on Git Thermite, you can use the Google form.

pharo-git-thermite's People

Contributors

bergel avatar ronsaldo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pharo-git-thermite's Issues

can not read whole description of commit/Layout of window

I wonder why you did the layout of the window like this
because i can not read the description of the commit
and on the right side there is a lot of place not used
For me it would be better to use the whole width for the tables
bildschirmfoto 2019-01-02 um 19 30 23

Problem with h5py

There is a problem when analyzing h5py. I use the configuration:
screenshot 2018-06-14 16 27 48

And selecting a modified methods give me:
screenshot 2018-06-14 16 28 35

Which obviously, is incorrect

Version

Indicate, in the README.md file for which platform of Pharo Thermite works

World menu does not work

I loaded it in Pharo 6.1 which worked but the world menu does not work because WebBrowser is not known

bildschirmfoto 2019-01-02 um 16 39 06

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.