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

Re: [PATCH v2] doc: update http.cookieFile with in-memory cookie processing

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 11, 2024, 16:05 UTC
Message-ID
<xmqqo773syll.fsf@gitster.g>
In-Reply-To
<pull.1733.v2.git.git.1720687008915.gitgitgadget@gmail.com>
"Piotr Szlazak via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Piotr Szlazak <piotr.szlazak@gmail.com>
Thanks.
Show 26 quoted lines
> Information added how to enable in-memory cookies
> processing. Cookies from server will be accepted and send
> back in successive requests within same connection.
>
> At the moment documentation only mentions how to read
> cookies from the given file and how to save them to the file
> using http.saveCookies.
>
> curl / libcurl will process cookies in memory if file name
> is blank. Check curl manpage:
> https://curl.se/docs/manpage.html#-b
> This is described here in more details:
> https://everything.curl.dev/http/cookies/engine.html
> And also explained here:
> https://www.youtube.com/watch?v=V5vZWHP-RqU&t=11459s
>
> Git documentation was updated to include suggestion how to
> enable this by setting empty value for http.cookieFile.
>
> Changes since V1:
> - better explanation what in-memory processing means
> - added explanation that http.saveCookies does not work
>   if http.cookieFile was set to empty value
>
> Signed-off-by: Piotr Szlazak <piotr.szlazak@gmail.com>
> ---
Here is how I amended the log message, FYI.
    doc: update http.cookieFile with in-memory cookie processing
    Documentation only mentions how to read cookies from the given file
    and how to save them to the file using http.saveCookies.
    But underlying libcURL allows the HTTP cookies used only in memory;
    cookies from the server will be accepted and sent back in successive
    requests within same connection, by using an empty string as the
    filename.  Document this.
    Signed-off-by: Piotr Szlazak <piotr.szlazak@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
A few points to note:
 - It is our convention to start a proposed log message by
   describing the current status in present tense ("currently", "at
   the moment", etc., are not needed).
 - The observation of the current status is followed by the
   description of a problem the patch tries to solve.
 - And then finally we give an order to the codebase to "become like
   so".
 - Changes between iterations do not belong to the log message, as
   the log messages are written for those who run "git log"; to
   them, our previous iterations do not exist.  We describe changes
   below the "---" lines.
Show 27 quoted lines
> diff --git a/Documentation/config/http.txt b/Documentation/config/http.txt
> index 2d4e0c9b869..e71ca11c10b 100644
> --- a/Documentation/config/http.txt
> +++ b/Documentation/config/http.txt
> @@ -78,16 +78,18 @@ http.extraHeader::
>  
>  http.cookieFile::
>  	The pathname of a file containing previously stored cookie lines,
> -	which should be used
> -	in the Git http session, if they match the server. The file format
> -	of the file to read cookies from should be plain HTTP headers or
> -	the Netscape/Mozilla cookie file format (see `curl(1)`).
> -	NOTE that the file specified with http.cookieFile is used only as
> -	input unless http.saveCookies is set.
> +	which should be used in the Git http session, if they match the server.
> +	The file format of the file to read cookies from should be plain HTTP
> +	headers or the Netscape/Mozilla cookie file format (see `curl(1)`).
> +	Set it to empty value (''), to accept only new cookies from the server and
> +	send them back in successive requests within same connection. NOTE that the
> +	file specified with http.cookieFile is used only as input unless
> +	http.saveCookies is set.
>  
>  http.saveCookies::
>  	If set, store cookies received during requests to the file specified by
> -	http.cookieFile. Has no effect if http.cookieFile is unset.
> +	http.cookieFile. Has no effect if http.cookieFile is not set or set to empty
> +	value ('').
I reformatted the patch and added minor word-smithing.  A few points:
 - Avoid unnecessary line rewrapping.  This file gets formatted into
   HTML or manpage and formatting tools will take care of filling
   paragraphs.
 - Use "an empty string", which is used by other parts of this file
   and other documentation files under Documentaiton/config/
   directory, instead of "empty value".  We should fix other
   instances of "empty value" in the file for consistency but it
   should be left outside the scope of this patch as #leftoverbits
   material.
Thanks again.
diff --git a/Documentation/config/http.txt b/Documentation/config/http.txt
index 2d4e0c9b86..bd04ca1c2e 100644
--- a/Documentation/config/http.txt
+++ b/Documentation/config/http.txt
@@ -82,12 +82,16 @@ http.cookieFile::
 	in the Git http session, if they match the server. The file format
 	of the file to read cookies from should be plain HTTP headers or
 	the Netscape/Mozilla cookie file format (see `curl(1)`).
+	Set it to an empty string, to accept only new cookies from
+	the server and send them back in successive requests within same
+	connection.
 	NOTE that the file specified with http.cookieFile is used only as
 	input unless http.saveCookies is set.
 
 http.saveCookies::
 	If set, store cookies received during requests to the file specified by
-	http.cookieFile. Has no effect if http.cookieFile is unset.
+	http.cookieFile. Has no effect if http.cookieFile is unset, or set to
+	an empty string.
 
 http.version::
 	Use the specified HTTP protocol version when communicating with a server.
Previous: Piotr Szlazak via GitGitGadget
Message 7 of 7 in “doc: update http.cookieFile with in-memory cookie processing”
  1. doc: update http.cookieFile with in-memory cookie processingPiotr Szlazak via GitGitGadget, Jun 23, 2024
  2. Piotr SzlazakJul 9, 2024
  3. Junio C HamanoJul 9, 2024
  4. Junio C HamanoJul 9, 2024
  5. Piotr SzlazakJul 11, 2024
  6. doc: update http.cookieFile with in-memory cookie processingPiotr Szlazak via GitGitGadget, Jul 11, 2024
  7. Junio C HamanoJul 11, 2024

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.