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

Re: [PATCH 3/3] upload-pack: Optionally allow fetching reachable sha1

From
Eric Sunshine <sunshine@sunshineco.com>
Date
May 12, 2015, 22:01 UTC
Message-ID
<CAPig+cQe3=Y15+RBZCxry7-78kbNL6H0PfdYs=OV_DMifOWxaA@mail.gmail.com>
In-Reply-To
<1431465265-18486-3-git-send-email-fredrik.medley@gmail.com>

On Tue, May 12, 2015 at 5:14 PM, Fredrik Medley <fredrik.medley@gmail.com> wrote:

Show 7 quoted lines
> With uploadpack.allowReachableSHA1InWant configuration option set on the
> server side, "git fetch" can make a request with a "want" line that names
> an object that has not been advertised (likely to have been obtained out
> of band or from a submodule pointer). Only objects reachable from the
> branch tips, i.e. the union of advertised branches and branches hidden by
> transfer.hideRefs, will be processed. Note that there is an associated
> cost of having to walk back the hstory to check the reachability.
Mentioned previously[1]: s/hstory/history/
Show 23 quoted lines
> This feature can be used when obtaining the content of a certain commit,
> for which the sha1 is known, without the need of cloning the whole
> repository, especially if a shallow fetch is used. Useful cases are e.g.
> repositories containing large files in the history, fetching only the
> needed data for a submodule checkout, when sharing a sha1 without telling
> which exact branch it belongs to and in Gerrit, if you think in terms of
> commits instead of change numbers. (The Gerrit case has already been
> solved through allowTipSHA1InWant as every Gerrit change has a ref.)
>
> Signed-off-by: Fredrik Medley <fredrik.medley@gmail.com>
> ---
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 2b86fe6..ffc4cf4 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -2538,6 +2538,12 @@ uploadpack.allowTipSHA1InWant::
>         of a hidden ref (by default, such a request is rejected).
>         see also `uploadpack.hideRefs`.
>
> +uploadpack.allowReachableSHA1InWant::
> +       Allow `upload-pack` to accept a fetch request that asks for an
> +       object that is reachable from any ref tip. However, note that
> +       calculating     object reachability is computationally expensive.
Mentioned previously[1]: s/\s+/ /
Show 12 quoted lines
> +       Defaults to `false`.
> +
> diff --git a/fetch-pack.c b/fetch-pack.c
> index 77174f9..6c63d8e 100644
> --- a/fetch-pack.c
> +++ b/fetch-pack.c
> @@ -545,7 +547,7 @@ static void filter_refs(struct fetch_pack_args *args,
>         }
>
>         /* Append unmatched requests to the list */
> -       if (allow_request_with_bare_object_name & ALLOW_TIP) {
> +       if (allow_request_with_bare_object_name & (ALLOW_TIP | ALLOW_REACHABLE)) {
Wrap this in extra parentheses to avoid compilation warnings:
    if ((foo & (bar | baz))) {
>                 for (i = 0; i < nr_sought; i++) {
>                         unsigned char sha1[20];
>
[1]: http://article.gmane.org/gmane.comp.version-control.git/268428
Previous: Fredrik MedleyNext: Fredrik Medley
Message 15 of 34 in “upload-pack: Optionally allow fetching reachable sha1”
  1. upload-pack: Optionally allow fetching reachable sha1Fredrik Medley, May 2, 2015
  2. Junio C HamanoMay 3, 2015
  3. Fredrik MedleyMay 3, 2015
  4. Eric SunshineMay 3, 2015
  5. upload-pack: Optionally allow fetching reachable sha1Fredrik Medley, May 5, 2015
  6. Junio C HamanoMay 5, 2015
  7. Fredrik MedleyMay 6, 2015
  8. Junio C HamanoMay 6, 2015
  9. 1/3 config.txt: Clarify allowTipSHA1InWant with camelCaseFredrik Medley, May 12, 2015
  10. 2/3 upload-pack: Prepare to extend allow-tip-sha1-in-wantFredrik Medley, May 12, 2015
  11. Eric SunshineMay 12, 2015
  12. Junio C HamanoMay 12, 2015
  13. Fredrik MedleyMay 19, 2015
  14. 3/3 upload-pack: Optionally allow fetching reachable sha1Fredrik Medley, May 12, 2015
  15. Eric SunshineMay 12, 2015
  16. 1/3 config.txt: clarify allowTipSHA1InWant with camelCaseFredrik Medley, May 19, 2015
  17. 2/3 upload-pack: prepare to extend allow-tip-sha1-in-wantFredrik Medley, May 19, 2015
  18. Junio C HamanoMay 19, 2015
  19. Fredrik MedleyMay 20, 2015
  20. 3/3 upload-pack: optionally allow fetching reachable sha1Fredrik Medley, May 19, 2015
  21. Junio C HamanoMay 19, 2015
  22. 1/3 config.txt: clarify allowTipSHA1InWant with camelCaseFredrik Medley, May 21, 2015
  23. 2/3 upload-pack: prepare to extend allow-tip-sha1-in-wantFredrik Medley, May 21, 2015
  24. Junio C HamanoMay 21, 2015
  25. Fredrik MedleyMay 22, 2015
  26. Junio C HamanoMay 23, 2015
  27. 3/3 upload-pack: optionally allow fetching reachable sha1Fredrik Medley, May 21, 2015
  28. Junio C HamanoMay 21, 2015
  29. Fredrik MedleyMay 22, 2015
  30. Junio C HamanoMay 23, 2015
  31. Eric SunshineMay 12, 2015
  32. Junio C HamanoMay 12, 2015
  33. Junio C HamanoMay 12, 2015
  34. Eric SunshineMay 5, 2015

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.