MCPcopy Index your code
hub / github.com/JonathanAquino/git-time-lapse-view

github.com/JonathanAquino/git-time-lapse-view @v1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1 ↗ · + Follow
207 symbols 505 edges 23 files 144 documented · 70%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Git Time-Lapse View is a cross-platform viewer that downloads all revisions of a file and lets you scroll through them by dragging a slider. As you scroll, you are shown a visual diff of the current revision and the previous revision. Thus you can see how a file evolved, and you can easily find the revision at which lines appeared, disappeared, or changed.

Time-Lapse View is a powerful visual alternative to the Git "blame" command. It is inspired by the excellent Time-Lapse View in the Perforce version-control system.

Screenshot 1

Git Time-Lapse View runs on Windows, Mac, Linux, and any platform that runs Java.

Screenshot 2

Installation

Download the program from the Releases page. Then double-click GitTimeLapseView.jar or type java -jar git-time-lapse-view.jar at a command prompt. The Git Time-Lapse View window will appear.

Mac users: If you get a message about the app not opening "because it is from an unidentifed developer", try Control-clicking the icon, then clicking Open.

Usage

Now let's examine all of the revisions of one of your files. In the "File Path/URL" field, enter the path to the file in your Git repository, like

C:\svn\myproject\trunk\myfile.php

There is also a field that lets you limit the number of revisions to download. Finally, hit the Load button. You'll see a progress bar as the revisions are downloaded.

Now comes the fun part. You can drag the slider at the top to scroll through all of the revisions of the file. Changes between each revision are highlighted in blue. As an alternative to the slider, you can click the left and right buttons in the upper-right corner.

The number of differences is indicated in the lower-right corner. There are up and down arrows for moving from one difference to the next. Additionally, a search box is provided in the lower-left corner.

You can also control the four arrow buttons using Alt+Left, Alt+Right, Alt+Up, and Alt+Down.

You might find it more convenient to view only the differences instead of the entire file. Try selecting the Show Differences Only checkbox at the bottom of the window.

You can also use the Browse Directories button ("...") to choose a file.

Build Instructions

  1. Open your favorite Java IDE.
  2. Add src and test as source paths.
  3. Add the jars in lib and lib/test.
  4. Run com.jonathanaquino.gittimelapseview.Application.

Libraries

The author gratefully acknowledges the use of the following libraries.

- JGit. Git client library. https://eclipse.org/jgit/
- Apache Commons Lang. Java utility functions. http://commons.apache.org/
- JArgs. Command-line parsing. http://jargs.sourceforge.net/
- OpenJUMP (author's past project). Various Java snippets. http://openjump.org/
- Java Diff. Diff algorithm. http://www.incava.org/projects/java/java-diff/
- svn-time-lapse-view. The original. https://github.com/JonathanAquino/svn-time-lapse-view

Contact

Jonathan Aquino - jonathan.aquino@gmail.com - http://jonathanaquino.com

Kim Tiedemann - http://www.tiede.dk:8080/roller/kim/

Extension points exported contracts — how you extend this code

Closure (Interface)
An anonymous function that can be passed around. [7 implementers]
src/com/jonathanaquino/gittimelapseview/Closure.java

Core symbols most depended-on inside this repo

get
called by 35
src/com/jonathanaquino/gittimelapseview/Configuration.java
search
called by 27
src/com/jonathanaquino/gittimelapseview/Searcher.java
getSide
called by 26
src/com/jonathanaquino/gittimelapseview/Searcher.java
getPosition
called by 26
src/com/jonathanaquino/gittimelapseview/Searcher.java
handleExceptions
called by 22
src/com/jonathanaquino/gittimelapseview/helpers/MiscHelper.java
toString
called by 14
src/org/incava/util/diff/Difference.java
getDifferencePositions
called by 14
src/com/jonathanaquino/gittimelapseview/Diff.java
append
called by 9
src/org/incava/util/diff/Diff.java

Shape

Method 179
Class 27
Interface 1

Languages

Java100%

Modules by API surface

src/com/jonathanaquino/gittimelapseview/ApplicationWindow.java29 symbols
src/org/incava/util/diff/Diff.java20 symbols
test/com/jonathanaquino/gittimelapseview/helpers/DiffHelperTest.java12 symbols
src/com/jonathanaquino/gittimelapseview/helpers/GuiHelper.java12 symbols
src/com/jonathanaquino/gittimelapseview/LoadPanel.java12 symbols
src/com/jonathanaquino/gittimelapseview/GitLoader.java12 symbols
src/com/jonathanaquino/gittimelapseview/Configuration.java12 symbols
src/org/incava/util/diff/Difference.java10 symbols
src/com/jonathanaquino/gittimelapseview/SearchPanel.java10 symbols
src/com/jonathanaquino/gittimelapseview/Application.java10 symbols
test/com/jonathanaquino/gittimelapseview/ConfigurationTest.java9 symbols
src/com/jonathanaquino/gittimelapseview/helpers/DiffHelper.java9 symbols

For agents

$ claude mcp add git-time-lapse-view \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact