Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kevinw/gitviz
Visualize git repository internals as they change, live, in the browser.
https://github.com/kevinw/gitviz
canvas git live teaching
Last synced: about 2 months ago
JSON representation
Visualize git repository internals as they change, live, in the browser.
- Host: GitHub
- URL: https://github.com/kevinw/gitviz
- Owner: kevinw
- License: mit
- Created: 2012-08-30T19:34:12.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-05-17T18:45:48.000Z (over 11 years ago)
- Last Synced: 2024-04-15T10:44:21.178Z (9 months ago)
- Topics: canvas, git, live, teaching
- Language: JavaScript
- Homepage:
- Size: 493 KB
- Stars: 62
- Watchers: 8
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
gitviz
======Visualize git repositories as they change, live in the browser.
![gitvize screenshot](https://github.com/kevinw/gitviz/raw/master/docs/examples/gitviz_example.png)
Why?
----gitviz might be useful as a teaching tool for git.
It draws graphviz graphs on <canvas> elements, and updates them as you modify the target git repository on the fly.
Requirements
------------You need Python, Node.js, npm, and a git repository.
Installation
------------# get code
git clone git://github.com/kevinw/gitviz.git# start the webserver
cd gitviz
./run-server PATH_TO_REPOS # where PATH_TO_REPOS is the path above your repositories# see live graphs in the browser
open http://localhost:3000/reponameLibraries
---------gitviz is just glue around lots of great libraries:
* [dulwich](http://www.samba.org/~jelmer/dulwich/) reads your git repositories as graphs
* [pydot](http://code.google.com/p/pydot/) emits those graphs as DOT language
* [canviz](http://code.google.com/p/canviz/) draws DOT language as visual graphs in <canvas> tags in the browser
* [express](http://expressjs.com/) serves the webpage showing the graph
* [socket.io](http://socket.io/) notifies the browser in realtime when the graph changesTODO
----* The node library "watch" we're using uses polling under the hood. There are definitely better alternatives that hook into filesystem events.
* Animate the graph when it changes.
* Show working copy modifications. Maybe an asterisk next to the blobs that differ?
* Eliminate bottlenecks for non-toy-sized repositories, and make them navigable/intelligible in some way.
* Make the graph interactive, or somehow have each node show the git command that made it.