merge: don't call hooks for revert
- don't call hooks for revert
- use extra variables to avoid swapping contexts
% new file
applying patch from stdin
% chmod +x
applying patch from stdin
% copy
applying patch from stdin
a
a
% rename
applying patch from stdin
copyx
new
rename
% delete
applying patch from stdin
new
rename
% regular diff
applying patch from stdin
% copy and modify
applying patch from stdin
a
a
b
a
a
% rename and modify
applying patch from stdin
copy2: No such file or directory
a
a
b
c
a