Rather than duplicate large portions of builtin/blame.c in cgit, it would be better to shift its core functionality into libgit.a. The functionality left in builtin/blame.c mostly relates to terminal presentation. Since RFC v2 patchset: Rebased (merged in timestamp_t changes) Reorganized to split out and group 'mechanical' changes Jeff Smith (29): blame: remove unneeded dependency on blob.h blame: move textconv_object with related functions blame: remove unused parameters blame: rename origin structure to blame_origin blame: rename scoreboard structure to blame_scoreboard blame: rename origin-related functions blame: rename coalesce function blame: rename ent_score function blame: rename nth_line function blame: move stat counters to scoreboard blame: move copy/move thresholds to scoreboard blame: move contents_from to scoreboard blame: move reverse flag to scoreboard blame: move show_root flag to scoreboard blame: move xdl_opts flags to scoreboard blame: move no_whole_file_rename flag to scoreboard blame: make sanity_check use a callback in scoreboard blame: move progess updates to a scoreboard callback blame: wrap blame_sort and compare_blame_final blame: rework methods that determine 'final' commit blame: create scoreboard init function blame: create scoreboard setup function blame: create entry prepend function blame: move core structures to header blame: move origin-related methods to libgit blame: move fake-commit-related methods to libgit blame: move scoreboard-related methods to libgit blame: move scoreboard setup to libgit blame: move entry prepend to libgit Makefile | 1 + blame.c | 1863 +++++++++++++++++++++++++++++++++++++++++++++ blame.h | 175 +++++ builtin.h | 2 - builtin/blame.c | 2130 ++-------------------------------------------------- builtin/cat-file.c | 1 + diff.c | 23 + diff.h | 7 + 8 files changed, 2143 insertions(+), 2059 deletions(-) create mode 100644 blame.c create mode 100644 blame.h -- 2.9.3