In adding blame functionality to cgit, I do not wish to duplicate huge portions of builtin/blame.c there. I would rather shift its core functionality into libgit.a -- which cgit already uses -- and in cgit I can focus on the web presentation aspect. I was able to split three separate cohesive pieces from blame.c into libgit. The functionality left in blame.c mostly relates to terminal presentation. Jeff Smith (10): Remove unneeded dependency on blob.h from blame Move textconv_object to be with other textconv methods Add some missing definitions to header files Remove unused parameter from get_origin() Split blame origin into its own file Move fake_working_tree_commit() to lib Break out scoreboard a little better Split blame scoreboard into its own file Break out scoreboard init and setup Move scoreboard init and setup to lib Makefile | 3 + builtin.h | 2 - builtin/blame.c | 2045 ++-------------------------------------------------- builtin/cat-file.c | 1 + commit-fake.c | 200 +++++ commit-fake.h | 9 + diff.c | 23 + diff.h | 7 + object.h | 2 + origin.c | 62 ++ origin.h | 101 +++ pathspec.h | 4 + refs.h | 3 + scoreboard.c | 1569 ++++++++++++++++++++++++++++++++++++++++ scoreboard.h | 77 ++ tree-walk.h | 2 + 16 files changed, 2108 insertions(+), 2002 deletions(-) create mode 100644 commit-fake.c create mode 100644 commit-fake.h create mode 100644 origin.c create mode 100644 origin.h create mode 100644 scoreboard.c create mode 100644 scoreboard.h -- 2.9.3