Subject: Re: [PATCH v4 0/22] pack bitmaps

From: Thomas Rast <[email-masked]>
Date: Sat, 21 Dec 2013 19:34:59 +0100

Jeff King <[email-masked]> writes:

> Here's the v4 re-roll of the pack bitmap series.
>
> The changes from v3 are:
>
>  - reworked add_object_entry refactoring (see patch 11, which is new,
>    and patch 12 which builds on it in a more natural way)

This now looks like this (pasting because it is hard to see in the diffs):

  static int add_object_entry(const unsigned char *sha1, enum object_type type,
                              const char *name, int exclude)
  {
          struct packed_git *found_pack;
          off_t found_offset;
          uint32_t index_pos;

          if (have_duplicate_entry(sha1, exclude, &index_pos))
                  return 0;

          if (!want_object_in_pack(sha1, exclude, &found_pack, &found_offset))
                  return 0;

          create_object_entry(sha1, type, pack_name_hash(name),
                              exclude, name && no_try_delta(name),
                              index_pos, found_pack, found_offset);

          display_progress(progress_state, to_pack.nr_objects);
          return 1;
  }

  static int add_object_entry_from_bitmap(const unsigned char *sha1,
                                          enum object_type type,
                                          int flags, uint32_t name_hash,
                                          struct packed_git *pack, off_t offset)
  {
          uint32_t index_pos;

          if (have_duplicate_entry(sha1, 0, &index_pos))
                  return 0;

          create_object_entry(sha1, type, name_hash, 0, 0, index_pos, pack, offset);

          display_progress(progress_state, to_pack.nr_objects);
          return 1;
  }

Much nicer.  Thanks for going the extra mile!

-- 
Thomas Rast
[email-masked]