1. 15 Jan, 2019 2 commits
    • Josh Steadmon's avatar
      filter-options: expand scaled numbers · 87c2d9d3
      Josh Steadmon authored
      When communicating with a remote server or a subprocess, use
      expanded numbers rather than numbers with scaling suffix in the
      object filter spec (e.g.  "limit:blob=1k" becomes
      "limit:blob=1024").
      
      Update the protocol docs to note that clients should always perform this
      expansion, to allow for more compatibility between server
      implementations.
      Signed-off-by: 's avatarJosh Steadmon <steadmon@google.com>
      Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
      87c2d9d3
    • Matthew DeVore's avatar
      list-objects-filter: teach tree:# how to handle >0 · c813a7c3
      Matthew DeVore authored
      Implement positive values for <depth> in the tree:<depth> filter. The
      exact semantics are described in Documentation/rev-list-options.txt.
      
      The long-term goal at the end of this is to allow a partial clone to
      eagerly fetch an entire directory of files by fetching a tree and
      specifying <depth>=1. This, for instance, would make a build operation
      fast and convenient. It is fast because the partial clone does not need
      to fetch each file individually, and convenient because the user does
      not need to supply a sparse-checkout specification.
      
      Another way of considering this feature is as a way to reduce
      round-trips, since the client can get any number of levels of
      directories in a single request, rather than wait for each level of tree
      objects to come back, whose entries are used to construct a new request.
      Signed-off-by: 's avatarMatthew DeVore <matvore@google.com>
      Reviewed-by: 's avatarJonathan Tan <jonathantanmy@google.com>
      Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
      c813a7c3
  2. 06 Oct, 2018 1 commit
    • Matthew DeVore's avatar
      list-objects-filter: implement filter tree:0 · bc5975d2
      Matthew DeVore authored
      Teach list-objects the "tree:0" filter which allows for filtering
      out all tree and blob objects (unless other objects are explicitly
      specified by the user). The purpose of this patch is to allow smaller
      partial clones.
      
      The name of this filter - tree:0 - does not explicitly specify that
      it also filters out all blobs, but this should not cause much confusion
      because blobs are not at all useful without the trees that refer to
      them.
      
      I also considered only:commits as a name, but this is inaccurate because
      it suggests that annotated tags are omitted, but actually they are
      included.
      
      The name "tree:0" allows later filtering based on depth, i.e. "tree:1"
      would filter out all but the root tree and blobs. In order to avoid
      confusion between 0 and capital O, the documentation was worded in a
      somewhat round-about way that also hints at this future improvement to
      the feature.
      Signed-off-by: 's avatarMatthew DeVore <matvore@google.com>
      Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
      bc5975d2
  3. 08 Dec, 2017 2 commits
  4. 05 Dec, 2017 1 commit
  5. 22 Nov, 2017 1 commit
    • Jeff Hostetler's avatar
      list-objects: filter objects in traverse_commit_list · 25ec7bca
      Jeff Hostetler authored
      Create traverse_commit_list_filtered() and add filtering
      interface to allow certain objects to be omitted from the
      traversal.
      
      Update traverse_commit_list() to be a wrapper for the above
      with a null filter to minimize the number of callers that
      needed to be changed.
      
      Object filtering will be used in a future commit by rev-list
      and pack-objects for partial clone and fetch to omit unwanted
      objects from the result.
      
      traverse_bitmap_commit_list() does not work with filtering.
      If a packfile bitmap is present, it will not be used.  It
      should be possible to extend such support in the future (at
      least to simple filters that do not require object pathnames),
      but that is beyond the scope of this patch series.
      Signed-off-by: 's avatarJeff Hostetler <jeffhost@microsoft.com>
      Reviewed-by: 's avatarJonathan Tan <jonathantanmy@google.com>
      Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
      25ec7bca