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 initial patchset: Made commit titles consistent Broke some commits into more atomic pieces Fleshed out commit message bodies Made public structure and method names more clearly blame-related Jeff Smith (22): blame: remove unneeded dependency on blob.h blame: move textconv_object with related functions blame: remove unused parameters blame: move origin and entry structures to header blame: move scoreboard structure to header 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: move origin-related methods to libgit blame: move fake-commit-related methods to libgit blame: move scoreboard-related methods to libgit blame: create scoreboard init function in libgit blame: create scoreboard setup function in libgit blame: create entry prepend function in 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