git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/7] Move code from builtin to libgit.a

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 26, 2012, 15:53 UTC
Message-ID
<1351266835-22610-1-git-send-email-pclouds@gmail.com>
In-Reply-To
<20121026120253.GA1455@sigill.intra.peff.net>
On Fri, Oct 26, 2012 at 7:02 PM, Jeff King <peff@peff.net> wrote:
Show 7 quoted lines
>> OK. I checked around for similar issues and found these used by
>> libgit.a but stay in builtin/ instead:
>
> Yeah, we have traditionally been kind of lazy about the distinction,
> because it doesn't really matter for our build system (i.e., libgit.a is
> not _really_ a library, but just a convenience in the build process). So
> one option is just not caring about these.

Yeah. We can fix it up when we encounter new undefined reference errors (e.g. a new test program that links to libgit.a). Anyway it does not look too difficult to do. Take it or drop it. Your call.

Show 10 quoted lines
> I'm also fine with fixing.
>
>> estimate_bisect_steps: bisect.c and builtin/rev-list.c
>> print_commit_list: bisect.c and builtin/rev-list.c
>>
>>  -> move them to bisect.c? another candidate is revision.c.
>
> I'd probably say bisect.c for the first, and commit.c for the latter
> (that is where commit_list functions are defined, and it is really about
> that).
Makes sense.
Show 8 quoted lines
>> setup_diff_pager: diff-no-index.c and builtin/diff.c
>>
>>  -> to diff-lib.c?
>
> I'm not sure (to be honest, I am not even sure of the intended
> difference between diff.c and diff-lib.c). That function is really not
> for general diffing, but for diff-like commands. Probably it would be OK
> in diff.c.
Ditto. check_pager_config() is also moved from git.c to pager.c.
Show 9 quoted lines
>> fetch_pack: transport.c and builtin/fetch-pack.c
>> send_pack: transport.c and builtin/send-pack.c
>>
>>  -> move them to transport.c? or new files fetch-pack.c and
>> send-pack.c? I haven't check how many functions they may pull
>> together.
>
> I think I'd rather have fetch-pack.c and send-pack.c than putting them
> into transport.c (which is getting kind of bloated already).

These two are big code moves, basically all {fetch,send}-pack code. While I think this is good cleanup (I get surprise every time I look at transport.c and it leads to buitin/fetch-pack.c), this is probably not a good idea if we have on flight topics, which may cause lots of conflicts for you and Junio. Fortunately we don't at the moment.

Nguyễn Thái Ngọc Duy (7):
  Move try_merge_command and checkout_fast_forward to libgit.a
  Move estimate_bisect_steps to libgit.a
  Move print_commit_list to libgit.a
  Move setup_diff_pager to libgit.a
  send-pack: move core code to libgit.a
  fetch-pack: remove global (static) configuration variable "args"
  fetch-pack: move core code to libgit.a
 Makefile             |   3 +
 bisect.c             |  38 ++
 bisect.h             |   4 -
 builtin.h            |   4 -
 builtin/diff.c       |  16 -
 builtin/fetch-pack.c | 951 +--------------------------------------------------
 builtin/merge.c      | 106 +-----
 builtin/rev-list.c   |  49 ---
 builtin/send-pack.c  | 333 ------------------
 cache.h              |  12 +-
 commit.c             |  10 +
 commit.h             |   4 +
 diff.c               |  16 +
 diff.h               |   1 +
 fetch-pack.c         | 951 +++++++++++++++++++++++++++++++++++++++++++++++++++
 git.c                |  33 --
 merge-recursive.h    |   5 -
 merge.c              | 112 ++++++
 pager.c              |  34 ++
 send-pack.c          | 344 +++++++++++++++++++
 sequencer.c          |   2 +-
 transport.h          |   5 +
 22 files changed, 1535 insertions(+), 1498 deletions(-)
 create mode 100644 fetch-pack.c
 create mode 100644 merge.c
 create mode 100644 send-pack.c
-- 
1.8.0.rc2.23.g1fb49df
Previous: Jeff KingNext: Nguyễn Thái Ngọc Duy
Message 5 of 13 in “Move try_merge_command and checkout_fast_forward to libgit.a”
  1. Move try_merge_command and checkout_fast_forward to libgit.aNguyễn Thái Ngọc Duy, Oct 23, 2012
  2. Jeff KingOct 25, 2012
  3. Nguyen Thai Ngoc DuyOct 25, 2012
  4. Jeff KingOct 26, 2012
  5. 0/7 Move code from builtin to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  6. 1/7 Move try_merge_command and checkout_fast_forward to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  7. 2/7 Move estimate_bisect_steps to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  8. 3/7 Move print_commit_list to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  9. 4/7 Move setup_diff_pager to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  10. 5/7 send-pack: move core code to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  11. 6/7 fetch-pack: remove global (static) configuration variable "args"Nguyễn Thái Ngọc Duy, Oct 26, 2012
  12. 7/7 fetch-pack: move core code to libgit.aNguyễn Thái Ngọc Duy, Oct 26, 2012
  13. Jeff KingOct 29, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.