• Stars
    star
    229
  • Rank 174,666 (Top 4 %)
  • Language
    C
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

undo any command

NAME

Unco - undo any command

SYNOPSIS

# record changes to files made by cmd
% unco record -- cmd args

# display a list of recorded commands
% unco history

# undo a recorded change
% unco undo <index>

# redo a recorded change
% undo redo <index>

DESCRIPTION

Unco is a wrapper program that records the changes made to files by programs so that they can be undone laterwards.

It uses a technique called library preloading (for more information consult the linux documents with keyword LD_PRELOAD, or os x document with keyword DYLD_INSERT_LIBRARIES) to trap the library calls that affect the files, and records the changes made by the programs being executed.

INSTALLATION

cmake .
make
make install

SUB-COMMANDS

unco record

% unco record [--log=<path>] [--append] -- cmd args

The command executes given command while logging the changes.

--log=<path>

specifies the location of the log (if omitted, the log is stored under $HOME/.unco with appropriate index)

--append

used together with --log for appending the changes to the log (default behavior is truncate)

unco history

% unco history [--ppid=<pid>] [--cmd=<cmd>] [--cwd=<dir>]

Displays the list of recorded commands with their associated indices.

--ppid=<pid>

filters the output to commands that were spawned by given process id. If omitted, the default value is the process id that spawned the history command, so that only the records belonging to the current shell are being displayed. Set -1 as the argument to display all records.

--cmd=<cmd>

filters the output to commands starting with given prefix

--cwd=<cwd>

filters the output to commands that were spawn under given working directory

unco undo

% unco undo [--print] <index_or_path>

Undoes a recorded change. The argument is the index number displayed by "unco history" or path pointing to a unco record.

--print

displays the changes to be performed instead of actually applying them

unco redo

% unco redo [--print] <index_or_path>

Redoes a recorded change that has been undone. The index is the number displayed by "unco history" or path pointing to a unco record.

AUTHOR

Kazuho Oku https://github.com/kazuho/

LICENSE

MIT

More Repositories

1

picojson

a header-file-only, JSON parser serializer in C++
C++
1,082
star
2

picoev

a tiny, lightning fast event loop for network applications
C
388
star
3

rat

NAT written in pure ruby
Ruby
172
star
4

jailing

super-easy chroot jail builder/runner for Linux
Perl
165
star
5

kaztools

shellscripts and utilities for myself
Perl
96
star
6

picohash

header-file-only implementation of various hash algorithms
C
89
star
7

Starlet

a Plack Server, formerly known as Plack::Server::Standalone::Prefork::Server::Starter
Perl
69
star
8

C

pseudo-interpreter of the C programming language (using GCC)
C
64
star
9

mysql_json

a MySQL UDF for handling JSON
C++
63
star
10

wpbench

benchmark the load timings of a web page
HTML
61
star
11

picogc

a tiny, portable, precise, mark-and-sweep GC in C++
C
57
star
12

p5-Server-Starter

a superdaemon for hot-deploying server programs
Perl
44
star
13

rangecoder

a fast range coder in C++, using SSE
C++
37
star
14

sha1.min.js

SHA-1 implementation in JavaScript (1480 bytes; intended for bookmarklets, etc.)
JavaScript
34
star
15

url_compress

a static PPM-based URL compressor / decompressor
Perl
34
star
16

cppref

man-style access to cppreference.com documents
Perl
32
star
17

mod_reproxy

X-Reproxy-URL header support for Apache/2.x
C
31
star
18

p5-http-parser-xs

a fast http parser
C
30
star
19

zson

binary JSON, compact and with support for streaming
JavaScript
28
star
20

p5-text-microtemplate

Text::MicroTemplate
Perl
24
star
21

mysql-ranking-engine

(to become) a MySQL storage engine specializing in ranking operation
C++
23
star
22

golombset

An implementation of Golomb compressed set in C
C
22
star
23

manymanythreads

A synthetic benchmark of C10K problem using pthreads or epoll
C
21
star
24

cosmic

fail-safe management tools for network-based software RAID, using mdadm + iSCSI
Perl
18
star
25

p5-test-mysqld

mysqld runner for tests
Perl
18
star
26

komake

A wrapper of make with sub-make concurrency limit
Perl
17
star
27

force-dedupe-git-modules

forcibly dedupe git-based NPM modules
JavaScript
16
star
28

p5-Net-DNS-Lite

pure-perl DNS resolver with support for timeout
Perl
16
star
29

p5-Class-Accessor-Lite

Perl
14
star
30

daifuku

transaction logging in JSON, within the MySQL database
Perl
14
star
31

p5-Parallel-Scoreboard

A scoreboard for monitoring status of many processes
Perl
14
star
32

blockdiff

differential backup tool for block devices and files
Perl
13
star
33

p5-test-httpd-apache2

Apache2 starter for testing perl modules
Perl
13
star
34

p5-Cache-LRU

a simple, fast implementation of an LRU cache in pure perl
Perl
12
star
35

p5-string-filter

Regexp-based structured text converter
Perl
12
star
36

kmyacc

http://www005.upp.so-net.ne.jp/kmori/kmyacc/
C
11
star
37

p5-parallel-prefork

Perl
11
star
38

picotemplate

a tiny template engine for embedded HTML
Perl
10
star
39

nopan

install software directly from SVN or Git (instead of from CPAN)
Perl
9
star
40

hq

C++
8
star
41

qhashmap

an open-addressing, linear-probing hash table, derived from v8/src/hashmap.h
C++
8
star
42

picostring

simple rope impl. using std::string
C++
8
star
43

add_with_overflow

an example that links LLVM bitcode and C++ with link-time optimization
C++
8
star
44

App-Restarter

restart command when files change
7
star
45

visiflate

a dumper for Deflate (RFC 1951); useful for visualizing the algorithm
C
7
star
46

git-pushdir

pushes the files in current directory to Git repository
Perl
7
star
47

h2-cache-digest

code snippets for h2-cache-digest
C
6
star
48

puby

6
star
49

draft-kazuho-httpbis-priority

Makefile
6
star
50

p5-test-postgresql

postgresql runner for tests
Perl
5
star
51

CGI-Application-Emulate-PSGI

a legacy-code-friendly PSGI adapter for CGI::Application
Perl
5
star
52

mprofile

http://developer.cybozu.co.jp/archives/kazuho/2009/07/mysql-539d.html
Perl
5
star
53

fakeiops

an LD_PRELOAD library for simulating storage systems with various IOPS
C
5
star
54

draft-kazuho-quic-quic-on-streams

Makefile
5
star
55

quic-perf-metrics

Makefile
5
star
56

ieee754.js

Pure-javascript decoder for IEEE 754 floating point numbers
JavaScript
4
star
57

japanize.firefox

Firefox plugin for Japanize
JavaScript
4
star
58

incline

replicator for RDB shards
C++
4
star
59

friendsd

server of the `friends` program, used at komaba.ecc.u-tokyo.ac.jp from 1996 to 1999
4
star
60

benchart

Minimalistic benchmark logger and visualizer
Perl
3
star
61

p5-Sub-Throttle

Perl
3
star
62

SQL-QueryMaker

helper functions for SQL query generation
Perl
3
star
63

Plack-Middleware-AddDefaultCharset

port of Apache2's AddDefaultCharset
Perl
3
star
64

bindlocal

an LD_PRELOAD library that forces servers to listen on 127.0.0.1 instead of 0.0.0.0
C
3
star
65

esDateParser

a date parser compliant to ECMA 262, derived from V8
C++
3
star
66

p5-Sub-Timekeeper

calls a function with a stopwatch
Perl
3
star
67

Test-Mocha-PhantomJS

JavaScript
3
star
68

examples

code snippets
C
3
star
69

kazuho.github.com

HTML
2
star
70

draft-kazuho-quic-authenticated-handshake

Authenticated Handshake for QUIC (using ESNI)
Makefile
2
star
71

p5-DBIx-Printf

A printf-style prepared statement
Perl
2
star
72

aobench.jsx

original: http://kioku.sys-k.net/aobench_jsx/
JavaScript
2
star
73

draft-kazuho-quic-address-bound-token

Makefile
2
star
74

gh-fetch-submodules

fetch the missing submodule contents within a GitHub release tarball
Perl
2
star
75

kazutils.c

tiny set of C functions
1
star
76

myfirst-usdt

learning userspace DTrace
Makefile
1
star
77

early-hints

now part of https://github.com/httpwg/http-extensions
Makefile
1
star
78

net.examp1e.picoorm

Java
1
star
79

picoshparser

(experimental) parser of Structured Headers
C
1
star
80

force-dedupe-git-modules.m2

test repo for https://github.com/kazuho/force-dedupe-git-modules
JavaScript
1
star
81

draft-kazuho-httpbis-selftrace

Makefile
1
star
82

force-dedupe-git-modules.m1

test repo for https://github.com/kazuho/force-dedupe-git-modules
JavaScript
1
star
83

protected-sni

Makefile
1
star
84

http-cache-fingerprint

cache fingerprint header for HTTP
Makefile
1
star