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

[PATCH v3 0/6] Partial clone part 1: object filtering

From
JHJeff Hostetler <git@jeffhostetler.com>
Date
Nov 7, 2017, 19:35 UTC
Message-ID
<20171107193546.10017-1-git@jeffhostetler.com>
From: Jeff Hostetler <jeffhost@microsoft.com>

Here is V3 of the list-object filtering. This addresses the comments on the mailing list for the V2 series as well as the various TODO items I left in the code. I also documented some of the bit flags and fields that I added.

In the blob size filter, I removed the ".git*" pattern matching for special files. I don't think we need it any more and it simplifies the code. This patch series does not support traverse_bitmap_commit_list() and the --use-bitmap-index feature in rev-list, but by removing the ".git*" pattern matching now we should be able allow filtering and bitmaps to be used together in a future effort. (That is beyond the scope of the current partial-clone effort.)

With this patch series, I think part 1 is complete unless there are further comments or questions.

Jeff Hostetler (6):
  dir: allow exclusions from blob in addition to file
  oidmap: add oidmap iterator methods
  oidset: add iterator methods to oidset
  list-objects: filter objects in traverse_commit_list
  rev-list: add list-objects filtering support
  pack-objects: add list-objects filtering
 Documentation/git-pack-objects.txt     |  12 +-
 Documentation/git-rev-list.txt         |   6 +-
 Documentation/rev-list-options.txt     |  34 +++
 Makefile                               |   2 +
 builtin/pack-objects.c                 |  28 ++-
 builtin/rev-list.c                     |  75 +++++-
 dir.c                                  | 132 ++++++++---
 dir.h                                  |   3 +
 list-objects-filter-options.c          | 148 ++++++++++++
 list-objects-filter-options.h          |  50 ++++
 list-objects-filter.c                  | 401 +++++++++++++++++++++++++++++++++
 list-objects-filter.h                  |  77 +++++++
 list-objects.c                         |  95 ++++++--
 list-objects.h                         |  13 +-
 object.h                               |   1 +
 oidmap.h                               |  22 ++
 oidset.c                               |  10 +
 oidset.h                               |  36 +++
 t/t5317-pack-objects-filter-objects.sh | 369 ++++++++++++++++++++++++++++++
 t/t6112-rev-list-filters-objects.sh    | 225 ++++++++++++++++++
 20 files changed, 1686 insertions(+), 53 deletions(-)
 create mode 100644 list-objects-filter-options.c
 create mode 100644 list-objects-filter-options.h
 create mode 100644 list-objects-filter.c
 create mode 100644 list-objects-filter.h
 create mode 100755 t/t5317-pack-objects-filter-objects.sh
 create mode 100755 t/t6112-rev-list-filters-objects.sh
-- 
2.9.3
Next: Jeff Hostetler
Message 1 of 13 in “Partial clone part 1: object filtering”
  1. 0/6 Partial clone part 1: object filteringJeff Hostetler, Nov 7, 2017
  2. 3/6 oidset: add iterator methods to oidsetJeff Hostetler, Nov 7, 2017
  3. 2/6 oidmap: add oidmap iterator methodsJeff Hostetler, Nov 7, 2017
  4. 5/6 rev-list: add list-objects filtering supportJeff Hostetler, Nov 7, 2017
  5. 6/6 pack-objects: add list-objects filteringJeff Hostetler, Nov 7, 2017
  6. Jonathan TanNov 8, 2017
  7. 4/6 list-objects: filter objects in traverse_commit_listJeff Hostetler, Nov 7, 2017
  8. Jonathan TanNov 7, 2017
  9. Junio C HamanoNov 8, 2017
  10. Jeff HostetlerNov 16, 2017
  11. Jeff HostetlerNov 16, 2017
  12. 1/6 dir: allow exclusions from blob in addition to fileJeff Hostetler, Nov 7, 2017
  13. Junio C HamanoNov 8, 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.