On Tue, Nov 19, 2019 at 8:53 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > My initial impression was that the API overuses typedef. We tend to > avoid doing > > struct _foo { ... }; > typedef struct _foo foo; > > and instead write "struct foo" explicitly to make us well aware of > what we are talking about. Thanks, i'll have a look at changing it. I use typedef mainly for ergonomics, but now that the code is written, I can introduce more verbosity. > But the set of operations defined in the header file seemed at the > right granularity in order to interface with the refs.h & refs/* API > we have. It however was unclear to me how transactional ref updates > would work with it. Transactions have to interface with the file system. I imagine that different libraries (libgit vs. cgit) would have different primitives for dealing with the file system, hence I haven't implemented that part. Do you have an idea of how I could implement it in a way that is agnostic of libgit2 vs. cgit? -- Han-Wen Nienhuys - Google Munich I work 80%. Don't expect answers from me on Fridays. -- Google Germany GmbH, Erika-Mann-Strasse 33, 80636 Munich Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Paul Manicle, Halimah DeLaine Prado