On Fri, Jun 14, 2024 at 3:32 AM Jeff King <peff@xxxxxxxx> wrote: > > Now that the url/pushurl fields of "struct remote" own their strings, we > can switch from bare arrays to strvecs. This has a few advantages: > > - push/clear are now one-liners > > - likewise the free+assigns in alias_all_urls() can use > strvec_replace() > > - we now use size_t for storage, avoiding possible overflow > > - this will enable some further cleanups in future patches > > There's quite a bit of fallout in the code that reads these fields, as > it tends to access these arrays directly. But it's mostly a mechanical > replacement of "url_nr" with "url.nr", and "url[i]" with "url.v[i]", > with a few variations (e.g. "*url" could become "*url.v", but I used > "url.v[0]" for consistency). > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > builtin/archive.c | 4 +-- > builtin/clone.c | 4 +-- > builtin/ls-remote.c | 6 ++-- > builtin/push.c | 10 +++---- > builtin/remote.c | 56 +++++++++++++++++++------------------- > remote-curl.c | 2 +- > remote.c | 52 ++++++++++++++--------------------- > remote.h | 12 ++------ > t/helper/test-bundle-uri.c | 2 +- > transport.c | 4 +-- > 10 files changed, 68 insertions(+), 84 deletions(-) > [...] I really like the simplifications this provides in remote.[hc]; the rest all looks like straightforward translations.