Open pixelcort opened 7 years ago
Hum that's a difficult feature to conceptualise:
You would need to load the history of all commits, then play them back. This will change all other files in the project as well. Plus you need to stash the current changes or prevent scrolling when there are changes.
Another way would do git log -p myFile
and see all changes of the file up to it's creation and get that into the file somehow. Then you do not need to stash anything, because all changes are added.
If you like, apparently, you can keep track of one file as explained here: https://stackoverflow.com/questions/11128434/how-can-i-use-git-to-track-versions-of-a-single-file/13336304#13336304
Actually, Git does provide an API for viewing the contents of files at another revision, without checking them out; the command is git show
. [stack overflow]
So to implement the "scroll through git history" feature, you can:
git rev-list HEAD
when scrolling starts, to get a list of all parent commits.git show REVISION:PATH_OF_CURRENT_FILE
as you scroll through different revisions to get the contents.@szhu this will be "read-only"
@xtrasmal can you clarify what you are referring to? I believe both your solution and mine are solutions that only read from the Git API.
This sounds cool and possibly lightly useful
In Atom there is the "git-time-machine" Package from littlebee which enables a timeline where you can look at your older commits.
Currently this scrolls through undo/redo history. In addition, it would be nice to scroll back through git history as well.