Subject: Re: [PATCHv2 00/16] object-store refactoring 3 (replace objects, main ref store)

From: Brandon Williams <[email-masked]>
Date: Mon, 9 Apr 2018 16:25:36 -0700

On 04/09, Stefan Beller wrote:

I've looked through the series and it looks good.  My only concern is
making sure that the ref-store is in a good place to be embedded into
the repository struct.

> v2:
> This applies on top of a merge of
> origin/bc/object-id and origin/sb/packfiles-in-repository,
> both of which are pending merge to master. It is also available at
> https://github.com/stefanbeller/git/tree/object-store-3
> 
> * removed whitespaces as noted by Stolee
> * incorporated Renes patch as the first patch of this series
>   (It may go independently if this series takes too long)
> * Adressed Erics concern regarding sloppy commit messages
>   (removed #Conflict markers), typo in comment
> * I did not drop the main_ from the ref store, yet, as asked by Duy.
> 
> Thanks,
> Stefan
> 
> v1:
> This applies on top of 464416a2eaadf84d2bfdf795007863d03b222b7c
> (sb/packfiles-in-repository).
> It is also available at https://github.com/stefanbeller/git/tree/object-store-3
> 
> This series will bring the replacement mechanism (git replace)
> into the object store.
> 
> The first patches are cleaning up a bit, and patches 6-19 are converting
> one function at a time using the tick-tock pattern with the #define trick.
> See cfc62fc98c (sha1_file: add repository argument to link_alt_odb_entry,
> 2018-03-23) for explanation.
> 
> Thanks,
> Stefan
> 
> René Scharfe (1):
>   replace_object: use oidmap
> 
> Stefan Beller (15):
>   replace_object.c: rename to use dash in file name
>   replace-object: move replace_map to object store
>   object-store: move lookup_replace_object to replace-object.h
>   replace-object: eliminate replace objects prepared flag
>   replace-object: check_replace_refs is safe in multi repo environment
>   refs: add repository argument to get_main_ref_store
>   refs: add repository argument to for_each_replace_ref
>   replace-object: add repository argument to prepare_replace_object
>   replace-object: add repository argument to do_lookup_replace_object
>   replace-object: add repository argument to lookup_replace_object
>   refs: store the main ref store inside the repository struct
>   refs: allow for_each_replace_ref to handle arbitrary repositories
>   replace-object: allow prepare_replace_object to handle arbitrary
>     repositories
>   replace-object: allow do_lookup_replace_object to handle arbitrary
>     repositories
>   replace-object: allow lookup_replace_object to handle arbitrary
>     repositories
> 
>  Makefile                  |   2 +-
>  builtin/mktag.c           |   3 +-
>  builtin/pack-refs.c       |   3 +-
>  builtin/replace.c         |   4 +-
>  cache.h                   |  19 ------
>  environment.c             |   2 +-
>  object-store.h            |   8 +++
>  object.c                  |   3 +-
>  refs.c                    |  80 +++++++++++++------------
>  refs.h                    |   4 +-
>  replace-object.c          |  73 +++++++++++++++++++++++
>  replace-object.h          |  36 ++++++++++++
>  replace_object.c          | 120 --------------------------------------
>  repository.h              |   3 +
>  revision.c                |   5 +-
>  sha1_file.c               |   7 ++-
>  streaming.c               |   3 +-
>  t/helper/test-ref-store.c |   3 +-
>  18 files changed, 183 insertions(+), 195 deletions(-)
>  create mode 100644 replace-object.c
>  create mode 100644 replace-object.h
>  delete mode 100644 replace_object.c
> 
> -- 
> 2.17.0.484.g0c8726318c-goog
> 

-- 
Brandon Williams