Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: git/git
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: f3d618d2bf
Choose a base ref
...
head repository: git/git
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3aa6694fb3
Choose a head ref
  • 13 commits
  • 26 files changed
  • 2 contributors

Commits on Dec 8, 2017

  1. upload-pack: add object filtering for partial clone

    Teach upload-pack to negotiate object filtering over the protocol and
    to send filter parameters to pack-objects.  This is intended for partial
    clone and fetch.
    
    The idea to make upload-pack configurable using uploadpack.allowFilter
    comes from Jonathan Tan's work in [1].
    
    [1] https://public-inbox.org/git/f211093280b422c32cc1b7034130072f35c5ed51.1506714999.git.jonathantanmy@google.com/
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    10ac85c View commit details
    Browse the repository at this point in the history
  2. fetch-pack, index-pack, transport: partial clone

    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    640d8b7 View commit details
    Browse the repository at this point in the history
  3. fetch-pack: add --no-filter

    Fixup fetch-pack to accept --no-filter to be consistent with
    rev-list and pack-objects.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    bc2d0c3 View commit details
    Browse the repository at this point in the history
  4. fetch-pack: test support excluding large blobs

    Created tests to verify fetch-pack and upload-pack support
    for excluding large blobs using --filter=blobs:limit=<n>
    parameter.
    
    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonathantanmy authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    0b6069f View commit details
    Browse the repository at this point in the history
  5. fetch: refactor calculation of remote list

    Separate out the calculation of remotes to be fetched from and the
    actual fetching. This will allow us to include an additional step before
    the actual fetching in a subsequent commit.
    
    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonathantanmy authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    a174334 View commit details
    Browse the repository at this point in the history
  6. fetch: support filters

    Teach fetch to support filters. This is only allowed for the remote
    configured in extensions.partialcloneremote.
    
    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    acb0c57 View commit details
    Browse the repository at this point in the history
  7. partial-clone: define partial clone settings in config

    Create get and set routines for "partial clone" config settings.
    These will be used in a future commit by clone and fetch to
    remember the promisor remote and the default filter-spec.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    1e1e39b View commit details
    Browse the repository at this point in the history
  8. clone: partial clone

    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonathantanmy authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    548719f View commit details
    Browse the repository at this point in the history
  9. unpack-trees: batch fetching of missing blobs

    When running checkout, first prefetch all blobs that are to be updated
    but are missing. This means that only one pack is downloaded during such
    operations, instead of one per missing blob.
    
    This operates only on the blob level - if a repository has a missing
    tree, they are still fetched one at a time.
    
    This does not use the delayed checkout mechanism introduced in commit
    2841e8f ("convert: add "status=delayed" to filter process protocol",
    2017-06-30) due to significant conceptual differences - in particular,
    for partial clones, we already know what needs to be fetched based on
    the contents of the local repo alone, whereas for status=delayed, it is
    the filter process that tells us what needs to be checked in the end.
    
    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonathantanmy authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    c0c578b View commit details
    Browse the repository at this point in the history
  10. fetch-pack: restore save_commit_buffer after use

    In fetch-pack, the global variable save_commit_buffer is set to 0, but
    not restored to its original value after use.
    
    In particular, if show_log() (in log-tree.c) is invoked after
    fetch_pack() in the same process, show_log() will return before printing
    out the commit message (because the invocation to
    get_cached_commit_buffer() returns NULL, because the commit buffer was
    not saved). I discovered this when attempting to run "git log -S" in a
    partial clone, triggering the case where revision walking lazily loads
    missing objects.
    
    Therefore, restore save_commit_buffer to its original value after use.
    
    An alternative to solve the problem I had is to replace
    get_cached_commit_buffer() with get_commit_buffer(). That invocation was
    introduced in commit a97934d ("use get_cached_commit_buffer where
    appropriate", 2014-06-13) to replace "commit->buffer" introduced in
    commit 3131b71 ("Add "--show-all" revision walker flag for debugging",
    2008-02-13). In the latter commit, the commit author seems to be
    deciding between not showing an unparsed commit at all and showing an
    unparsed commit without the message (which is what the commit does), and
    did not mention parsing the unparsed commit, so I prefer to preserve the
    existing behavior.
    
    Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonathantanmy authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    a1c6d7c View commit details
    Browse the repository at this point in the history
  11. t5616: end-to-end tests for partial clone

    Additional end-to-end tests for partial clone.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    35a7ae9 View commit details
    Browse the repository at this point in the history
  12. fetch: inherit filter-spec from partial clone

    Teach (partial) fetch to inherit the filter-spec used by
    the partial clone.  Extend --no-filter to override this
    inheritance.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    aa57b87 View commit details
    Browse the repository at this point in the history
  13. t5616: test bulk prefetch after partial fetch

    Add test to t5616 to bulk fetch missing objects following
    a partial fetch.  A technique like this could be used in
    a pre-command hook for example.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jeffhostetler authored and gitster committed Dec 8, 2017
    Configuration menu
    Copy the full SHA
    3aa6694 View commit details
    Browse the repository at this point in the history
Loading