node package manager

local-history

Local History for Atom

Atom package for maintaining local history of files (history of your changes to the code files).

Why?

For maintaining a history of the files revisions like mostly code editors:

Especially, I need an automated backup of my work to save me from stupid accidents... ✊

Benefits

  • Local history of a file is maintained when you create or edit a file. Each time you save a file, a copy of the old contents is kept in the local history.
  • It can help you out when you change or delete a file by accident.
  • It saves your work when you forget to commit or push your code.
  • The history can also help you out when your workspace has a catastrophic problem or if you get disk errors that corrupt your workspace files.
  • Each file revision is stored in a separate file (with full path) inside the .atom/local-history directory of your home directory. e.g: /home/nicolas/.atom/local-history/var/www/my-great-project/lib/2014-06-21_17.05.43.utils.js
  • Show diff and merge with your favorite diff tool.

Install

apm install local-history

Or Settings ➔ Packages ➔ Search for local-history

Usage

Show the history of the current file:

  • From the context menu (right click)

Contextual menu

  • Or with the command

Commands

Then, select the revision to open in another tab

Revisions list

command

  • local-history:current-file show local history of current file.
  • local-history:difftool-current-file Open the current file and a given revision file with your defined diff tool (see difftoolCommand).
  • local-history:purge purge the expired revisions (see daysLimit).

Settings

fileSizeLimit

File size limit, by default: 262144 (256 KB). The files heavier than the defined size will not be saved.

daysLimit

Days retention limit, by default: 30 days. The oldest files are deleted when purging (local-history:purge).

difftoolCommand

A custom command to open your favorite diff tool, by default: meld.

Example:

meld "{current-file}" "{revision-file}"
  • {current-file} is the placeholder replaced automatically by the path of the current file.
  • {revision-file} is the placeholder replaced automatically by the path of the revision file selected.

The actual command generated will be something like this:

meld "/var/www/my-project/my-current-file.js" "/home/nicolas/.atom/local-history/var/www/my-project/2014-07-08_19.32.00.my-current-file.js"

TODO

  • Automatic purge (triggered, max 1 per day).

Contributions are welcome.

LICENSE

MIT

Author

Nicolas Tallefourtane - Nicolab.net
Nicolas Talle
Make a donation via Paypal