Wednesday, April 2, 2014

Announcing Unco - undo changes to files made by any command

Being sick of myself occasionally wiping off the changes made to files by running wrong commands, I have started writing a program called "Unco" (pronunciation: an-ko) - a command that records the changes to the file system, and let the users undo the changes afterwards if necessary.

Unlike existing command-level solutions like aliasing rm to trash-cli, Unco is designed to be capable of undoing changes made by any program; it hooks the library calls that affect the file system and records the changes for later undoing.

The following scenario illustrates how it can be used, in case of git.
  1. instruct the shell to record all git commands
    % alias git="unco record -- git"
    
  2. edit file under the git repository
    % vi program.c
    
  3. Oops! I have accidentally reset the changes
    % git reset --hard HEAD
    
  4. don't worry, just undo the last action
    % undo history
    index    command (*=undone)
         1   git reset --hard HEAD
    % unco undo 1
    
As described, you can apply unco for rm or make install or whatever command.

The development is still in early stages, and I would not advise anybody not capable of debugging the code by oneself to use it. But for those interested, the repo is at github.com/kazuho/unco.

For the time being, the program runs on OS X and linux (edited Apr. 3 2014)only on OS X. Hopefully the command may be polished up so that it can be turned on by default; i.e. record all commands run on the shell by default.

27 comments:

  1. The 147th edition of the British Open begins July 19 at the Carnoustie Race Championship in Angus, Scotland.Defending champion Jordan Spieth leads the pack as he tries to put Claret Jug up for his fourth major victory in his career.MORE: Chances of winning the British Open 2018


    British Open 2018
    British Open
    The British Open 2018
    British Open Golf
    British Open 2018 Live
    2018 British Open

    British Open 2018
    British Open
    The British Open 2018
    British Open Golf
    British Open 2018 Live
    2018 British Open



    Open Championship
    Open Championship Live
    Open Championship 2018

    The Open Championship
    The Open Championship Live
    Open Championship Golf Live

    ReplyDelete