diff file generation