Re: Rewriting git-repack.sh in C
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Aug 2, 2013, 14:10 UTC
- Message-ID
- <CACsJy8CaTA2vT0CxOAm0FacCWjNDJjZhg6mwSyspTChia-5ppQ@mail.gmail.com>
- In-Reply-To
- <51FBB8CB.8020600@googlemail.com>
On Fri, Aug 2, 2013 at 8:48 PM, Stefan Beller <stefanbeller@googlemail.com> wrote:
Show 20 quoted lines
> Hello, > > I'd like to rewrite the repack shell script in C. > So I tried the naive approach reading the man page and > the script itself and write C program by matching each block/line > of the script with a function in C > > Now I stumble upon other git commands (git pack-objects). > What's the best way to approach such a plumbing command? > > I don't think just calling cmd_pack_objects(argc, **argv) would > be the right thing to do, as we're not using all the command > line parameters, so some of the logic in cmd_pack_object could > be skipped. > Another approach would be to use some of the functions as used > by cmd_pack_objects, but these mostly reside in builtin/pack_objects.c > They'd need to be moved up to pack.h/pack.c. > > So my question is, how you'd generally approach rewriting a > shell script in C.
Start a new process via start_command/run_command interface. It's safer to retain the process boundary at this stage. You can try to integrate further later.
-- Duy