scroll-through-time
scroll-through-time copied to clipboard
Scroll through git history
Currently this scrolls through undo/redo history. In addition, it would be nice to scroll back through git history as well.
Hum that's a difficult feature to conceptualise:
- does it navigate only in the history of the current file?
- if so, it probably won't work with the rest of the files
- if not, it will probably be super slow
- does it actually checkout the different commits?
- if so, when starting to make changes after an old commit, you will need to force push
- what do you do with the current changes to the file? I guess you need to block the feature when there is changes
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:
- Run
git rev-list HEAD
when scrolling starts, to get a list of all parent commits. - Run
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.