Merge branch 'jt/lazy-fetch'
Updates to on-demand fetching code in lazily cloned repositories. * jt/lazy-fetch: fetch: no FETCH_HEAD display if --no-write-fetch-head fetch-pack: remove no_dependents code promisor-remote: lazy-fetch objects in subprocess fetch-pack: do not lazy-fetch during ref iteration fetch: only populate existing_refs if needed fetch: avoid reading submodule config until needed fetch: allow refspecs specified through stdin negotiator/noop: add noop fetch negotiator
This commit is contained in:
@ -171,20 +171,13 @@ additional flag.
|
||||
Fetching Missing Objects
|
||||
------------------------
|
||||
|
||||
- Fetching of objects is done using the existing transport mechanism using
|
||||
transport_fetch_refs(), setting a new transport option
|
||||
TRANS_OPT_NO_DEPENDENTS to indicate that only the objects themselves are
|
||||
desired, not any object that they refer to.
|
||||
+
|
||||
Because some transports invoke fetch_pack() in the same process, fetch_pack()
|
||||
has been updated to not use any object flags when the corresponding argument
|
||||
(no_dependents) is set.
|
||||
- Fetching of objects is done by invoking a "git fetch" subprocess.
|
||||
|
||||
- The local repository sends a request with the hashes of all requested
|
||||
objects as "want" lines, and does not perform any packfile negotiation.
|
||||
objects, and does not perform any packfile negotiation.
|
||||
It then receives a packfile.
|
||||
|
||||
- Because we are reusing the existing fetch-pack mechanism, fetching
|
||||
- Because we are reusing the existing fetch mechanism, fetching
|
||||
currently fetches all objects referred to by the requested objects, even
|
||||
though they are not necessary.
|
||||
|
||||
|
Reference in New Issue
Block a user