All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Beller <sbeller@google.com>
To: Brandon Williams <bmwill@google.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>,
	Jonathan Tan <jonathantanmy@google.com>
Subject: Re: [PATCH] convert add_to_alternates_file to use repository struct
Date: Tue, 15 Aug 2017 18:12:25 -0700	[thread overview]
Message-ID: <CAGZ79kYacubf_8qF=3heuwzEEa93KLV8_LsJo5hemhpKVbujfg@mail.gmail.com> (raw)
In-Reply-To: <20170816010432.GD21874@google.com>

On Tue, Aug 15, 2017 at 6:04 PM, Brandon Williams <bmwill@google.com> wrote:
> On 08/15, Stefan Beller wrote:
>> The long term plan is to move most functionality to be included via
>> the repository struct, starting somewhere, convert add_to_alternates_file
>> in this patch, which has link_alt_odb_entries, which is converted, too.
>> Any caller outside add_to_alternates_file, just uses `the_repository`
>> as the repository argument to keep the functionality the same.
>>
>> Signed-off-by: Stefan Beller <sbeller@google.com>
>> ---
>>
>>   For the series "object store is embedded in the repository object",
>>   I realized we have to convert sha1_file first as that is the foundation
>>   of all the object loading and writing. However there are currently other
>>   series in flight, such that I do not want to change all of sha1_file
>>   as it would yield serious conflicts.
>>
>>   This goes on top of origin/sb/sha1-file-cleanup and is one of the
>>   minimum viable things to get started with converting sha1_file to
>>   use the repository object.
>>
>>   Thanks,
>>   Stefan
>>
>>  builtin/clone.c |  9 +++++----
>>  cache.h         |  2 +-
>>  sha1_file.c     | 23 +++++++++++++++--------
>>  3 files changed, 21 insertions(+), 13 deletions(-)
>>
>> diff --git a/builtin/clone.c b/builtin/clone.c
>> index 08b5cc433c..b8d170d055 100644
>> --- a/builtin/clone.c
>> +++ b/builtin/clone.c
>> @@ -25,6 +25,7 @@
>>  #include "remote.h"
>>  #include "run-command.h"
>>  #include "connected.h"
>> +#include "repository.h"
>>
>>  /*
>>   * Overall FIXMEs:
>> @@ -327,7 +328,7 @@ static int add_one_reference(struct string_list_item *item, void *cb_data)
>>       } else {
>>               struct strbuf sb = STRBUF_INIT;
>>               strbuf_addf(&sb, "%s/objects", ref_git);
>> -             add_to_alternates_file(sb.buf);
>> +             add_to_alternates_file(the_repository, sb.buf);
>>               strbuf_release(&sb);
>>       }
>>
>> @@ -369,12 +370,12 @@ static void copy_alternates(struct strbuf *src, struct strbuf *dst,
>>               if (!line.len || line.buf[0] == '#')
>>                       continue;
>>               if (is_absolute_path(line.buf)) {
>> -                     add_to_alternates_file(line.buf);
>> +                     add_to_alternates_file(the_repository, line.buf);
>>                       continue;
>>               }
>>               abs_path = mkpathdup("%s/objects/%s", src_repo, line.buf);
>>               if (!normalize_path_copy(abs_path, abs_path))
>> -                     add_to_alternates_file(abs_path);
>> +                     add_to_alternates_file(the_repository, abs_path);
>>               else
>>                       warning("skipping invalid relative alternate: %s/%s",
>>                               src_repo, line.buf);
>> @@ -452,7 +453,7 @@ static void clone_local(const char *src_repo, const char *dest_repo)
>>       if (option_shared) {
>>               struct strbuf alt = STRBUF_INIT;
>>               strbuf_addf(&alt, "%s/objects", src_repo);
>> -             add_to_alternates_file(alt.buf);
>> +             add_to_alternates_file(the_repository, alt.buf);
>>               strbuf_release(&alt);
>>       } else {
>>               struct strbuf src = STRBUF_INIT;
>> diff --git a/cache.h b/cache.h
>> index 4109efcf24..fe1f1bc66a 100644
>> --- a/cache.h
>> +++ b/cache.h
>> @@ -1565,7 +1565,7 @@ struct alternate_object_database *alloc_alt_odb(const char *dir);
>>   * Add the directory to the on-disk alternates file; the new entry will also
>>   * take effect in the current process.
>>   */
>> -extern void add_to_alternates_file(const char *dir);
>> +extern void add_to_alternates_file(struct repository *r, const char *dir);
>>
>>  /*
>>   * Add the directory to the in-memory list of alternates (along with any
>> diff --git a/sha1_file.c b/sha1_file.c
>> index 9186e2c6c7..298185f550 100644
>> --- a/sha1_file.c
>> +++ b/sha1_file.c
>> @@ -22,6 +22,7 @@
>>  #include "pack-revindex.h"
>>  #include "sha1-lookup.h"
>>  #include "bulk-checkin.h"
>> +#include "repository.h"
>>  #include "streaming.h"
>>  #include "dir.h"
>>  #include "mru.h"
>> @@ -422,8 +423,9 @@ static const char *parse_alt_odb_entry(const char *string,
>>       return end;
>>  }
>>
>> -static void link_alt_odb_entries(const char *alt, int len, int sep,
>> -                              const char *relative_base, int depth)
>> +static void link_alt_odb_entries(const struct repository *r, const char *alt,
>> +                              int len, int sep, const char *relative_base,
>> +                              int depth)
>
> Looks like the passed in repository 'r' isn't used in this function.  Is this intentional?
>

Doh. I missed that part in the implementation, I need to pipe it through to
link_alt_odb_entry.

      reply	other threads:[~2017-08-16  1:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-16  0:45 [PATCH] convert add_to_alternates_file to use repository struct Stefan Beller
2017-08-16  1:04 ` Brandon Williams
2017-08-16  1:12   ` Stefan Beller [this message]

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='CAGZ79kYacubf_8qF=3heuwzEEa93KLV8_LsJo5hemhpKVbujfg@mail.gmail.com' \
    --to=sbeller@google.com \
    --cc=bmwill@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.