Of course, for serious development I use Git, but sometimes I just
hack around on a script, prepare a draft, or golf down some code and
want to keep old versions of a file. For this, I use
keep
:
% keep foo
‘/home/chris/mess/2013/27/foo’ -> ‘/home/chris/mess/2013/27/foo.1’
% vi foo
% keep foo
‘/home/chris/mess/2013/27/foo’ -> ‘/home/chris/mess/2013/27/foo.2’
% keep foo
/home/chris/mess/2013/27/foo.2 not modified
As you can see, it creates numbered backup files—if the file has
changed. The major benefit over doing this manually (with cp foo
foo.1
) is that it won’t ever overwrite an old revision accidentally
because you blindly used your shell history.
I have not yet felt the need to add diffs or restoring of old versions.
(Tom Duff has an interesting, but more complicated version of this program.)
NP: Lia Ices—After Is Always Before