The main idea of the patch is to get rid of using custom formatting in cat-file and start using general one from ref-filter. Additional bonus is that cat-file becomes to support many new formatting commands like %(if), %(color), %(committername) etc. Updates since last review: In [PATCH v3 16/23] ref-filter: make cat_file_info independent is_cat flag is hidden into global cat_file_info variable Also make some minor refactoring.