Re: libgit2 status
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:04
Junio C Hamano [off-list ref] writes:
Ramkumar Ramachandra [off-list ref] writes:quoted
Thiago Farina wrote:quoted
[...] With some structure like: include/git.h src/git.c ... whatever. [...]Junio- is it reasonable to expect the directory-restructuring by 2.0?I actually hate "include/git.h vs src/git.c"; you have distinction between .c and .h already.
Having said that, I do not mind moving codeblocks around to make
some files purely library-ish while others purely commands.
Ideally, if you run
$ nm --defined-only -g builtin/frotz.o
you should see nothing but "T cmd_frotz" (there are exceptions, most
notably, what the commands in the "log" family do are so close with
each other that builtin/log.o can define cmd_* for all of them).
$ nm --defined-only -og builtin/*.o | grep -v 'T cmd_'
a handful of offenders. If these functions with external linkage
are truly useful across subcommands, we should move them to a more
library-ish location.
It may require splitting the bits that are too closely tied to the
external interface they are implementing from these functions,
generalizing only the core-ish logic from them, and moving them to a
more library-ish file as a preparatory step. Such a library-ish file
may be created inside lib/ subdirectory from the get-go.
Until that kind of code restructure happens, I do not see much sense
in just moving files, e.g. renaming revision.c to src/revision.c or
lib/revision.c or somesuch.