Move definition of call_silently() earlier.
Add workaround for systems that do not have /dev/null.

It requires stdout to be read to RAM, but at least it works.
Check that the work tree is clean before starting any nontrivial work.
Use subcommands rather than options to select action.
Split part of the "merge" functionality into a new "find-conflict" subcommand.
Add a "reparent" command.
Reset the working tree after the inquiry commands are done.