xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
<root> / data / plugins / saf-revisions /
File Mode Size
README.md 100644 1,430B
init.lua 100644 4,330B

/README.md

saf-revisions Vifm plugin

Install vifm plugin by copying or symlinking saf-revisions (plugin folder) to $VIFM/plugins/ (usually ~/.config/vifm/plugins/ or ~/.vifm/plugins/). This will make :Saf* commands available in Vifm:

:SafRevisionsToggle     -- Activate or deactivate saf-revisions
:SafRevisionsActivate   -- Turn saf-revisions on
:SafRevisionsDeactivate -- Turn saf-revisions off
:SafPreviousRevision    -- Starfield! Warp! Magic! Back in time.
:SafNextRevision        -- Starfield! Warp! Magic! Forward in time.

Map appropriate keys to saf-revisions plugin functions, pick any unused keys that work for you:

nnoremap @ :SafRevisionsToggle<cr>
nnoremap < :SafPreviousRevision<cr>
nnoremap > :SafNextRevision<cr>

Start Vifm, then in any folder backed up with saf to local file system backup target (reaching remote targets is not possible at the moment) execute :SafRevisionsToggle command, or with definitions like above press @. Navigate trough all the backups where folder content is changed with :SafPreviousRevision and :SafNextRevision functions or keys mapped to those functions. Switch back to normal with another :SafRevisionsToggle.

NOTE: Please keep in mind that you will be browsing actual backup folder content. Changing such content is possible but usually a bad idea. Limit interaction to review and copy content to backup source folder, not the other way around.

Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master