git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's cooking in git.git (Dec 2017, #02; Thu, 7)

From
JHJeff Hostetler <git@jeffhostetler.com>
Date
Dec 13, 2017, 15:58 UTC
Message-ID
<329228e6-bad0-3685-1110-635da044e11b@jeffhostetler.com>
In-Reply-To
<CAP8UFD3Jt+0Lq9Yx_7x3sJD+jG+A25bAgDg7zp+dZV43+1-vow@mail.gmail.com>
On 12/12/2017 4:30 AM, Christian Couder wrote:
Show 56 quoted lines
> On Thu, Dec 7, 2017 at 7:04 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>
>> * jh/object-filtering (2017-12-05) 9 commits
>>    (merged to 'next' on 2017-12-05 at 3a56b51085)
>>   + rev-list: support --no-filter argument
>>   + list-objects-filter-options: support --no-filter
>>   + list-objects-filter-options: fix 'keword' typo in comment
>>    (merged to 'next' on 2017-11-27 at e5008c3b28)
>>   + pack-objects: add list-objects filtering
>>   + rev-list: add list-objects filtering support
>>   + list-objects: filter objects in traverse_commit_list
>>   + oidset: add iterator methods to oidset
>>   + oidmap: add oidmap iterator methods
>>   + dir: allow exclusions from blob in addition to file
>>   (this branch is used by jh/fsck-promisors and jh/partial-clone.)
>>
>>   In preparation for implementing narrow/partial clone, the object
>>   walking machinery has been taught a way to tell it to "filter" some
>>   objects from enumeration.
>>
>>
>> * jh/fsck-promisors (2017-12-05) 12 commits
>>   - gc: do not repack promisor packfiles
>>   - rev-list: support termination at promisor objects
>>   - fixup: sha1_file: add TODO
>>   - fixup: sha1_file: convert gotos to break/continue
>>   - sha1_file: support lazily fetching missing objects
>>   - introduce fetch-object: fetch one promisor object
>>   - index-pack: refactor writing of .keep files
>>   - fsck: support promisor objects as CLI argument
>>   - fsck: support referenced promisor objects
>>   - fsck: support refs pointing to promisor objects
>>   - fsck: introduce partialclone extension
>>   - extension.partialclone: introduce partial clone extension
>>   (this branch is used by jh/partial-clone; uses jh/object-filtering.)
>>
>>   In preparation for implementing narrow/partial clone, the machinery
>>   for checking object connectivity used by gc and fsck has been
>>   taught that a missing object is OK when it is referenced by a
>>   packfile specially marked as coming from trusted repository that
>>   promises to make them available on-demand and lazily.
> 
> I am currently working on integrating this series with my external odb
> series (https://public-inbox.org/git/20170916080731.13925-1-chriscool@tuxfamily.org/).
> 
> Instead of using an "extension.partialclone" config variable, an odb
> will be configured like using an "odb.<odbname>.promisorRemote" (the
> name might still change) config variable. Other odbs could still be
> configured using "odb.<odbname>.scriptCommand" and
> "odb.<odbname>.subprocessCommand".
> 
> The current work is still very much WIP and some tests fail, but you
> can take a look there:
> 
> https://github.com/chriscool/git/tree/gl-promisor-external-odb440
> 

In our current V6 patch series, Jonathan Tan and I are using the extension.partialclone config variable for 2 purposes. First, to indicate a change in the repository format and stop non-aware clients (older versions of git.exe) from operating on the repo -- since they won't know how to handle missing objects. Second, to name the remote to help the client later demand load missing objects. This is a current limitation (we only support one promisor remote), so this second usage may change. I haven't had time to look at your branch yet, so I can't comment on how it might help/solve our second usage, but we do need to keep the first usage in mind.

Jeff
Previous: Philip Oakley
Message 9 of 9 in “What's cooking in git.git (Dec 2017, #02; Thu, 7)”
  1. Junio C HamanoDec 7, 2017
  2. Torsten BögershausenDec 8, 2017
  3. Johannes SchindelinDec 8, 2017
  4. Junio C HamanoDec 8, 2017
  5. Christian CouderDec 8, 2017
  6. Junio C HamanoDec 8, 2017
  7. Christian CouderDec 12, 2017
  8. Philip OakleyDec 12, 2017
  9. Jeff HostetlerDec 13, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.