From: Jonathan Nieder <jrnieder@gmail.com>
To: Stefan Beller <sbeller@google.com>
Cc: git@vger.kernel.org, gitster@pobox.com, jonathantanmy@google.com,
pclouds@gmail.com, sunshine@sunshineco.com
Subject: Re: [PATCH 05/27] object-store: move packed_git and packed_git_mru to object store
Date: Wed, 21 Feb 2018 22:44:23 -0800 [thread overview]
Message-ID: <20180222064423.GD133592@aiede.svl.corp.google.com> (raw)
In-Reply-To: <20180221015430.96054-6-sbeller@google.com>
Hi,
Stefan Beller wrote:
> In a process with multiple repositories open, packfile accessors
> should be associated to a single repository and not shared globally.
> Move packed_git and packed_git_mru into the_repository and adjust
> callers to reflect this.
>
> Patch generated by
>
> 1. Moving the struct packed_git declaration to object-store.h
> and packed_git, packed_git_mru globals to struct object_store.
>
> 2. Applying the semantic patch
> contrib/coccinelle/refactoring/packed_git.cocci to adjust callers.
> This semantic patch is placed in a sub directory of the coccinelle
> contrib dir, as this semantic patch is not expected to be of general
> usefulness; it is only useful during developing this series and
> merging it with other topics in flight. At a later date, just
> delete that semantic patch.
Can the semantic patch go in the commit message instead? It is very
brief.
Actually, I don't see this semantic patch in the diffstat. Is the
commit message stale?
> 3. Applying line wrapping fixes from "make style" to break the
> resulting long lines.
>
> 4. Adding missing #includes of repository.h and object-store.h
> where needed.
Is there a way to automate this step? (I'm asking for my own
reference when writing future patches, not because of any concern
about the correctness of this one.)
>
> 5. As the packfiles are now owned by an objectstore/repository, which
> is ephemeral unlike globals, we introduce memory leaks. So address
> them in raw_object_store_clear().
The compound words are confusing me. What is an
objectstore/repository? Are these referring to particular identifiers
or something else?
Would some wording like the following work?
5. Freeing packed_git and packed_git_mru in raw_object_store_clear
to avoid a per-repository memory leak. Previously they were
global singletons, so code to free them did not exist.
[...]
> --- a/builtin/index-pack.c
> +++ b/builtin/index-pack.c
> @@ -12,6 +12,7 @@
> #include "exec_cmd.h"
> #include "streaming.h"
> #include "thread-utils.h"
> +#include "object-store.h"
> #include "packfile.h"
>
> static const char index_pack_usage[] =
Change from a different patch leaked into this one?
[...]
> +++ b/builtin/pack-objects.c
[...]
> @@ -1044,7 +1045,7 @@ static int want_object_in_pack(const struct object_id *oid,
> }
> want = want_found_object(exclude, p);
> if (!exclude && want > 0)
> - list_move(&p->mru, &packed_git_mru);
> + list_move(&p->mru, &the_repository->objects.packed_git_mru);
Long line. Can "make style" catch this?
[...]
> +++ b/builtin/receive-pack.c
> @@ -7,6 +7,7 @@
> #include "sideband.h"
> #include "run-command.h"
> #include "exec_cmd.h"
> +#include "object-store.h"
> #include "commit.h"
> #include "object.h"
> #include "remote.h"
Another change leaked in?
[...]
> --- a/cache.h
> +++ b/cache.h
> @@ -1585,35 +1585,6 @@ struct pack_window {
> unsigned int inuse_cnt;
> };
>
> -extern struct packed_git {
[...]
> -} *packed_git;
Move detecting diff confirms that this wasn't modified. Thanks for
creating it.
[...]
> +++ b/fast-import.c
[...]
> @@ -1110,7 +1112,7 @@ static int store_object(
> if (e->idx.offset) {
> duplicate_count_by_type[type]++;
> return 1;
> - } else if (find_sha1_pack(oid.hash, packed_git)) {
> + } else if (find_sha1_pack(oid.hash, the_repository->objects.packed_git)) {
Long line. (I'll refrain from commenting about any further ones.)
[...]
> +++ b/http-push.c
> @@ -1,4 +1,5 @@
> #include "cache.h"
> +#include "object-store.h"
> #include "commit.h"
> #include "tag.h"
> #include "blob.h"
Stray change?
> diff --git a/http-walker.c b/http-walker.c
> index 07c2b1af82..8bb5d991bb 100644
> --- a/http-walker.c
> +++ b/http-walker.c
> @@ -4,6 +4,7 @@
> #include "http.h"
> #include "list.h"
> #include "transport.h"
> +#include "object-store.h"
> #include "packfile.h"
>
> struct alt_base {
Same question.
> diff --git a/http.c b/http.c
> index 31755023a4..a4a9e583c7 100644
> --- a/http.c
> +++ b/http.c
> @@ -1,6 +1,7 @@
> #include "git-compat-util.h"
> #include "http.h"
> #include "config.h"
> +#include "object-store.h"
> #include "pack.h"
> #include "sideband.h"
> #include "run-command.h"
Likewise.
> diff --git a/object-store.h b/object-store.h
> index e78eea1dde..1de9e07102 100644
> --- a/object-store.h
> +++ b/object-store.h
> @@ -52,6 +52,30 @@ void add_to_alternates_memory(const char *dir);
> */
> struct strbuf *alt_scratch_buf(struct alternate_object_database *alt);
>
> +struct packed_git {
> + struct packed_git *next;
> + struct list_head mru;
> + struct pack_window *windows;
> + off_t pack_size;
> + const void *index_data;
> + size_t index_size;
> + uint32_t num_objects;
> + uint32_t num_bad_objects;
> + unsigned char *bad_object_sha1;
> + int index_version;
> + time_t mtime;
> + int pack_fd;
> + unsigned pack_local:1,
> + pack_keep:1,
> + freshened:1,
> + do_not_close:1,
> + pack_promisor:1;
> + unsigned char sha1[20];
> + struct revindex_entry *revindex;
> + /* something like ".git/objects/pack/xxxxx.pack" */
> + char pack_name[FLEX_ARRAY]; /* more */
> +};
> +
> struct raw_object_store {
> /*
> * Path to the repository's object store.
> @@ -59,10 +83,25 @@ struct raw_object_store {
> */
> char *objectdir;
>
> + struct packed_git *packed_git;
> + /*
> + * A most-recently-used ordered version of the packed_git list, which can
> + * be iterated instead of packed_git (and marked via mru_mark).
> + */
> + struct list_head packed_git_mru;
I don't understand the new part of the comment. Can you explain here,
for me?
Is this meant as a list of related functions, an explanation of what the
field is for, or something else?
> +
> struct alternate_object_database *alt_odb_list;
> struct alternate_object_database **alt_odb_tail;
> };
> -#define RAW_OBJECT_STORE_INIT { NULL, NULL, NULL }
> +
> +/*
> + * The mru list_head is supposed to be initialized using
> + * the LIST_HEAD macro, assigning prev/next to itself.
> + * However this doesn't work in this case as some compilers dislike
> + * that macro on member variables. Use NULL instead as that is defined
> + * and accepted, deferring the real init to prepare_packed_git_mru(). */
style nit: '*/' should be on its own line.
More importantly, we can avoid such an issue as described by Junio. :)
> +#define __MRU_INIT { NULL, NULL }
Identifiers with leading underscores like this are in a reserved
namespace for the language implementation --- we can't count on them
being available for our own use.
> +#define RAW_OBJECT_STORE_INIT { NULL, NULL, __MRU_INIT, NULL, NULL }
[...]
> --- a/object.c
> +++ b/object.c
> @@ -466,4 +466,11 @@ void raw_object_store_clear(struct raw_object_store *o)
>
> free_alt_odbs(o);
> o->alt_odb_tail = NULL;
> +
> + while (!list_empty(&o->packed_git_mru))
> + list_del(&o->packed_git_mru);
> + /*
> + * TODO: call close_all_packs once migrated to
> + * take an object store argument
> + */
Can you say more about this TODO? Does this mean the patches are out
of order (i.e. that raw_object_store_clear leaves behind a leak until
a later patch)?
[...]
> --- a/pack-check.c
> +++ b/pack-check.c
> @@ -1,5 +1,6 @@
> #include "cache.h"
> #include "pack.h"
> +#include "object-store.h"
> #include "pack-revindex.h"
> #include "progress.h"
> #include "packfile.h"
Another unexplained #include (I'll refrain from pointing out later
ones).
The rest looks good.
Thanks,
Jonathan
next prev parent reply other threads:[~2018-02-22 6:47 UTC|newest]
Thread overview: 240+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-13 1:22 [PATCH 00/26] Moving global state into the repository object (part 1) Stefan Beller
2018-02-13 1:22 ` [PATCH 01/26] repository: introduce raw object store field Stefan Beller
2018-02-13 1:22 ` [PATCH 02/26] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-13 18:51 ` Brandon Williams
2018-02-13 19:46 ` Stefan Beller
2018-02-13 1:22 ` [PATCH 03/26] object-store: free alt_odb_list Stefan Beller
2018-02-13 1:22 ` [PATCH 04/26] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-13 1:22 ` [PATCH 05/26] object-store: close all packs upon clearing the " Stefan Beller
2018-02-13 1:22 ` [PATCH 06/26] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-13 1:22 ` [PATCH 07/26] pack: move approximate object count " Stefan Beller
2018-02-13 1:22 ` [PATCH 08/26] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-13 1:22 ` [PATCH 09/26] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-13 1:22 ` [PATCH 10/26] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-13 1:22 ` [PATCH 11/26] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-13 1:22 ` [PATCH 12/26] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-13 1:22 ` [PATCH 13/26] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-13 1:22 ` [PATCH 14/26] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-14 0:37 ` Duy Nguyen
2018-02-14 18:08 ` Brandon Williams
2018-02-23 9:56 ` [PATCH 0/2] Fix initializing the_hash_algo Nguyễn Thái Ngọc Duy
2018-02-23 9:56 ` [PATCH 1/2] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-23 22:17 ` brian m. carlson
2018-02-24 3:17 ` Duy Nguyen
2018-02-23 9:56 ` [PATCH 2/2] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-23 18:24 ` Stefan Beller
2018-02-23 19:50 ` Junio C Hamano
2018-02-23 20:04 ` Stefan Beller
2018-02-23 22:26 ` Junio C Hamano
2018-02-23 22:29 ` brian m. carlson
2018-02-23 23:16 ` Brandon Williams
2018-02-24 3:44 ` Duy Nguyen
2018-02-26 23:09 ` Junio C Hamano
2018-03-03 1:51 ` Duy Nguyen
2018-02-23 22:47 ` [PATCH 0/2] Fix initializing the_hash_algo brian m. carlson
2018-02-24 3:34 ` [PATCH v2 0/5] " Nguyễn Thái Ngọc Duy
2018-02-24 3:34 ` [PATCH v2 1/5] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-24 3:34 ` [PATCH v2 2/5] sha1_file.c: keep a good name for "unknown" hash_algos[UNKNOWN] Nguyễn Thái Ngọc Duy
2018-02-24 22:39 ` brian m. carlson
2018-02-24 3:34 ` [PATCH v2 3/5] index-pack: check (and optionally set) hash algo based on input file Nguyễn Thái Ngọc Duy
2018-02-24 22:56 ` brian m. carlson
2018-02-24 3:34 ` [PATCH v2 4/5] diff.c: initialize hash algo when running in --no-index mode Nguyễn Thái Ngọc Duy
2018-02-24 8:15 ` Eric Sunshine
2018-02-24 13:45 ` Duy Nguyen
2018-02-24 14:36 ` Duy Nguyen
2018-02-24 22:29 ` brian m. carlson
2018-02-24 3:34 ` [PATCH v2 5/5] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-24 22:58 ` brian m. carlson
2018-02-25 3:29 ` Duy Nguyen
2018-02-25 20:28 ` brian m. carlson
2018-02-25 11:18 ` [PATCH v3 0/6] Fix initializing the_hash_algo Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 1/6] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 2/6] sha1_file.c: keep a good name for "unknown" hash_algos[UNKNOWN] Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 3/6] cache.h: make the_hash_algo read-only Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 4/6] index-pack: check (and optionally set) hash algo based on input file Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 5/6] diff.c: initialize hash algo when running in --no-index mode Nguyễn Thái Ngọc Duy
2018-02-25 11:18 ` [PATCH v3 6/6] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-25 20:34 ` [PATCH v3 0/6] Fix initializing the_hash_algo brian m. carlson
2018-02-26 19:20 ` Stefan Beller
2018-02-26 10:30 ` [PATCH 0/4] Delete ignore_env member in struct repository Nguyễn Thái Ngọc Duy
2018-02-26 10:30 ` [PATCH 1/4] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-02-26 18:57 ` Eric Sunshine
2018-02-27 9:11 ` Duy Nguyen
2018-02-27 9:39 ` Duy Nguyen
2018-02-26 20:30 ` Stefan Beller
2018-02-27 0:28 ` Duy Nguyen
2018-02-26 10:30 ` [PATCH 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-26 10:30 ` [PATCH 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-26 10:30 ` [PATCH 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-26 18:07 ` [PATCH 0/4] Delete ignore_env member in struct repository Junio C Hamano
2018-02-26 20:46 ` Stefan Beller
2018-02-27 0:18 ` Duy Nguyen
2018-02-27 9:58 ` [PATCH v2 " Nguyễn Thái Ngọc Duy
2018-02-27 9:58 ` [PATCH v2 1/4] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-02-27 20:09 ` Brandon Williams
2018-02-27 9:58 ` [PATCH v2 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-27 20:10 ` Brandon Williams
2018-02-27 9:58 ` [PATCH v2 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-27 20:12 ` Brandon Williams
2018-02-28 0:58 ` Duy Nguyen
2018-02-27 9:58 ` [PATCH v2 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-27 20:14 ` Brandon Williams
2018-02-27 10:10 ` [PATCH v2 0/4] Delete ignore_env member in struct repository Eric Sunshine
2018-02-27 18:09 ` Stefan Beller
2018-02-28 1:37 ` [PATCH v3 " Nguyễn Thái Ngọc Duy
2018-02-28 1:37 ` [PATCH v3 1/4] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-02-28 1:37 ` [PATCH v3 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-28 1:37 ` [PATCH v3 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-28 1:37 ` [PATCH v3 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-28 18:12 ` [PATCH v3 0/4] Delete ignore_env member in struct repository Brandon Williams
2018-02-28 18:57 ` Junio C Hamano
2018-02-13 1:22 ` [PATCH 15/26] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-13 1:22 ` [PATCH 16/26] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-13 1:22 ` [PATCH 17/26] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-13 1:22 ` [PATCH 18/26] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-13 1:22 ` [PATCH 19/26] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-13 1:22 ` [PATCH 20/26] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-13 1:22 ` [PATCH 21/26] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-13 1:22 ` [PATCH 22/26] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-13 1:22 ` [PATCH 23/26] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-13 1:22 ` [PATCH 24/26] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-13 1:22 ` [PATCH 25/26] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-13 1:22 ` [PATCH 26/26] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-13 1:38 ` [PATCH 00/26] Moving global state into the repository object (part 1) Stefan Beller
2018-02-13 11:49 ` Duy Nguyen
2018-02-13 12:13 ` Duy Nguyen
2018-02-13 16:52 ` Brandon Williams
2018-02-13 17:47 ` Stefan Beller
2018-02-13 18:57 ` Junio C Hamano
2018-02-13 19:23 ` Stefan Beller
2018-02-13 19:35 ` Junio C Hamano
2018-02-13 19:43 ` Stefan Beller
2018-02-14 0:30 ` Junio C Hamano
2018-02-13 19:26 ` Jonathan Nieder
2018-02-14 0:57 ` Duy Nguyen
2018-02-13 19:33 ` Brandon Williams
2018-02-15 20:42 ` Junio C Hamano
2018-02-15 21:09 ` Stefan Beller
2018-02-16 17:46 ` [PATCHv2 00/16] " Stefan Beller
2018-02-16 17:46 ` [PATCH 01/16] repository: introduce raw object store field Stefan Beller
2018-02-16 17:46 ` [PATCH 02/16] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-16 17:46 ` [PATCH 03/16] object-store: free alt_odb_list Stefan Beller
2018-02-16 17:46 ` [PATCH 04/16] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-16 20:27 ` Junio C Hamano
2018-02-16 17:46 ` [PATCH 05/16] object-store: close all packs upon clearing the " Stefan Beller
2018-02-16 17:46 ` [PATCH 06/16] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-16 17:46 ` [PATCH 07/16] pack: move approximate object count " Stefan Beller
2018-02-16 17:46 ` [PATCH 08/16] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-16 17:46 ` [PATCH 09/16] sha1_file: allow link_alt_odb_entries to handle arbitrary object stores Stefan Beller
2018-02-16 17:46 ` [PATCH 10/16] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-16 17:46 ` [PATCH 11/16] sha1_file: allow sha1_file_name " Stefan Beller
2018-02-16 17:46 ` [PATCH 12/16] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-16 17:46 ` [PATCH 13/16] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-16 17:46 ` [PATCH 14/16] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-16 17:46 ` [PATCH 15/16] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-16 17:46 ` [PATCH 16/16] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-16 22:34 ` [PATCHv2 00/16] Moving global state into the repository object (part 1) Jonathan Nieder
2018-02-20 18:55 ` Stefan Beller
2018-02-20 19:00 ` Brandon Williams
2018-02-20 19:03 ` Stefan Beller
2018-02-20 19:03 ` Junio C Hamano
2018-02-20 19:06 ` Stefan Beller
2018-02-20 19:55 ` Junio C Hamano
2018-02-20 20:16 ` Stefan Beller
2018-02-21 1:54 ` [PATCHv3 00/27] " Stefan Beller
2018-02-21 1:54 ` [PATCH 01/27] repository: introduce raw object store field Stefan Beller
2018-02-22 6:26 ` Jonathan Nieder
2018-02-21 1:54 ` [PATCH 02/27] object-store: migrate alternates struct and functions from cache.h Stefan Beller
2018-02-22 0:37 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 03/27] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-22 0:41 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 04/27] object-store: free alt_odb_list Stefan Beller
2018-02-22 0:42 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 05/27] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-21 21:51 ` Junio C Hamano
2018-02-23 20:01 ` Stefan Beller
2018-02-22 6:44 ` Jonathan Nieder [this message]
2018-02-23 21:42 ` Stefan Beller
2018-02-21 1:54 ` [PATCH 06/27] object-store: close all packs upon clearing the " Stefan Beller
2018-02-22 0:43 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 07/27] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-22 0:20 ` Jonathan Tan
2018-02-21 1:54 ` [PATCH 08/27] pack: move approximate object count " Stefan Beller
2018-02-22 0:47 ` Brandon Williams
2018-02-23 22:22 ` Stefan Beller
2018-02-26 8:55 ` Jeff King
2018-02-26 20:57 ` Stefan Beller
2018-02-21 1:54 ` [PATCH 09/27] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-22 0:29 ` Jonathan Tan
2018-02-21 1:54 ` [PATCH 10/27] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-21 1:54 ` [PATCH 11/27] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-21 1:54 ` [PATCH 12/27] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-21 1:54 ` [PATCH 13/27] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-22 6:51 ` Jonathan Nieder
2018-02-23 22:33 ` Stefan Beller
2018-02-21 1:54 ` [PATCH 14/27] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-22 0:49 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 15/27] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-22 0:35 ` Jonathan Tan
2018-02-23 23:18 ` Stefan Beller
2018-02-21 1:54 ` [PATCH 16/27] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-22 0:51 ` Brandon Williams
2018-02-23 22:36 ` Stefan Beller
2018-02-23 23:11 ` Brandon Williams
2018-02-21 1:54 ` [PATCH 17/27] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-22 6:52 ` Jonathan Nieder
2018-02-21 1:54 ` [PATCH 18/27] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-21 1:54 ` [PATCH 19/27] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-22 0:36 ` Jonathan Tan
2018-02-21 1:54 ` [PATCH 20/27] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-21 1:54 ` [PATCH 21/27] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-22 6:53 ` Jonathan Nieder
2018-02-21 1:54 ` [PATCH 22/27] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-22 0:44 ` Jonathan Tan
2018-02-23 22:50 ` Stefan Beller
2018-02-21 1:54 ` [PATCH 23/27] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-21 1:54 ` [PATCH 24/27] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-22 0:45 ` Jonathan Tan
2018-02-21 1:54 ` [PATCH 25/27] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-21 1:54 ` [PATCH 26/27] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-22 6:54 ` Jonathan Nieder
2018-02-21 1:54 ` [PATCH 27/27] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-22 0:26 ` [PATCHv3 00/27] Moving global state into the repository object (part 1) Stefan Beller
2018-02-24 0:47 ` [PATCHv4 " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 01/27] repository: introduce raw object store field Stefan Beller
2018-02-26 9:30 ` Duy Nguyen
2018-02-26 18:19 ` Junio C Hamano
2018-02-26 18:23 ` Brandon Williams
2018-02-26 19:28 ` Stefan Beller
2018-02-26 23:59 ` Duy Nguyen
2018-02-24 0:47 ` [PATCHv4 02/27] object-store: migrate alternates struct and functions from cache.h Stefan Beller
2018-02-24 0:47 ` [PATCHv4 03/27] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-24 0:47 ` [PATCHv4 04/27] object-store: free alt_odb_list Stefan Beller
2018-02-24 0:47 ` [PATCHv4 05/27] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-24 0:47 ` [PATCHv4 06/27] object-store: close all packs upon clearing the " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 07/27] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 08/27] pack: move approximate object count " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 09/27] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-24 0:47 ` [PATCHv4 10/27] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-24 0:47 ` [PATCHv4 11/27] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-24 0:47 ` [PATCHv4 12/27] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-24 0:47 ` [PATCHv4 13/27] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-24 0:47 ` [PATCHv4 14/27] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-24 0:47 ` [PATCHv4 15/27] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 16/27] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-24 0:47 ` [PATCHv4 17/27] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-24 0:47 ` [PATCHv4 18/27] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-24 0:47 ` [PATCHv4 19/27] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-24 0:47 ` [PATCHv4 20/27] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-24 0:47 ` [PATCHv4 21/27] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-24 0:47 ` [PATCHv4 22/27] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-24 0:47 ` [PATCHv4 23/27] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 24/27] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 25/27] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 26/27] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-24 0:47 ` [PATCHv4 27/27] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-24 15:00 ` [PATCHv4 00/27] Moving global state into the repository object (part 1) Duy Nguyen
2018-02-26 20:50 ` Stefan Beller
2018-02-27 0:02 ` Duy Nguyen
2018-02-26 18:19 ` Jonathan Tan
2018-03-03 11:35 [PATCH 00/44] reroll nd/remove-ignore-env.. sb/object-store and sb/packfiles Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 00/27] sb/object-store updates Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 05/27] object-store: move packed_git and packed_git_mru to object store Nguyễn Thái Ngọc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180222064423.GD133592@aiede.svl.corp.google.com \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=pclouds@gmail.com \
--cc=sbeller@google.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).