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

Re: [GSOC] Microproject "Move ~/.git-credential-cache to ~/.config/git"

From
惠轶群 <huiyiqun@gmail.com>
Date
Mar 14, 2016, 19:53 UTC
Message-ID
<CAKqreuwgxzVTAUdZPf9+ivXCdW8F2Ksafw7V0pbLAaRPwGX9Uw@mail.gmail.com>
In-Reply-To
<xmqqshztawwd.fsf@gitster.mtv.corp.google.com>
2016-03-14 23:42 GMT+08:00 Junio C Hamano <gitster@pobox.com>:
Show 10 quoted lines
> 惠轶群 <huiyiqun@gmail.com> writes:
>
>> I'm still confused about following:
>>
>> 1. should `~/.git-credential-cache` been moved to
>> `~/.cache/git/credential`(as the descreption of the micropject says)
>> or `~/.config/git/credential`(as the title of the microproject says)?
>
> The latter, I'd think, as you noticed in 2. the former does not make
> much sense.

I'm not sure. There is only a unix socket under ~/.git-credential-cache. It's not a config.

After reading the [spec](https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.7.html) more carefully, I think that $XDG_RUNTIME_DIR may be a better choice than the above two. For ~/.git-credential-cache/socket is a unix socket and should be used only runtime.

On my computer, this variable is well defined and pointed to /run/user/$UID.

The problem is that there is no suitable default to it if $XDG_RUNTIME_DIR is not set. I guess /tmp/git-$USER is a good choice.

Show 11 quoted lines
>> 3. Does "without breaking compatibility with the old behavior." mean
>> that I should still try to connect to the unix socket placed at the
>> old place? If yes, which order is prefered?
>
> Let me be vague and oblique on purpose ;-)
>
> We used to have only ~/.gitconfig as the per-user location, and at
> some point in the history we added XDG_CONFIG_HOME support.  Study
> how that was done (hint: "git log" and "git blame" may be useful
> tools for this purpose), and imitate it.
>
I have read almost every commit which contains "XDG", as well as their diffs.

I think this issue I'm currently dealing with is a little different from formers, For this file is just an unix socket and never persistent. I could not just keep in step with old behavior unless that user manually create the file at new-style path.

Of course I could check the existence of `~/.git-credential-cache` and `$XDG_CONFIG_HOME/git/credential-cache` to decide where to put the socket, but it's not elegant enough. Because, as mentioned above, the socket file itself is not persistent.

Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 30 in “[GSOC] Microproject "Move ~/.git-credential-cache to ~/.config/git"”
  1. 惠轶群Mar 14, 2016
  2. Junio C HamanoMar 14, 2016
  3. 惠轶群Mar 14, 2016
  4. Junio C HamanoMar 14, 2016
  5. 惠轶群Mar 15, 2016
  6. Your friendMar 15, 2016
  7. Jeff KingMar 15, 2016
  8. 1/3 path.c: implement xdg_runtime_dir()Hui Yiqun, Mar 16, 2016
  9. 2/3 git-credential-cache: put socket to xdg-compatible pathHui Yiqun, Mar 16, 2016
  10. 惠轶群Mar 17, 2016
  11. 3/3 t0301: test credential-cache support of XDG_RUNTIME_DIRHui Yiqun, Mar 16, 2016
  12. Junio C HamanoMar 16, 2016
  13. 惠轶群Mar 16, 2016
  14. Jeff KingMar 16, 2016
  15. Junio C HamanoMar 16, 2016
  16. 谭俊浩Mar 17, 2016
  17. Junio C HamanoMar 17, 2016
  18. 惠轶群Mar 17, 2016
  19. 惠轶群Mar 17, 2016
  20. Jeff KingMar 16, 2016
  21. 惠轶群Mar 18, 2016
  22. Jeff KingMar 16, 2016
  23. 惠轶群Mar 17, 2016
  24. Ivan ThamMar 15, 2016
  25. Jeff KingMar 15, 2016
  26. 惠轶群Mar 16, 2016
  27. Jeff KingMar 18, 2016
  28. 惠轶群Mar 18, 2016
  29. 惠轶群Mar 18, 2016
  30. credential-cache--daemon: clarify "exit" action semanticsJeff King, Mar 18, 2016

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.