git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Steven Penny <srpen6@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: credential-store get: No such file or directory
Date: Thu, 4 Nov 2021 10:55:50 -0400	[thread overview]
Message-ID: <YYP0dnBgfY16fSP7@coredump.intra.peff.net> (raw)
In-Reply-To: <CAP8dQmtLt_2+ExGUB71nJz_PWHKRrzqQVtX7d8T6FpPqgatiFQ@mail.gmail.com>

On Thu, Nov 04, 2021 at 09:12:39AM -0500, Steven Penny wrote:

> On Thu, Nov 4, 2021 at 4:43 AM Jeff King wrote:
> > It's because internally, the "git credential-store get" command is
> > assembled as a single string passed to the shell, whereas remote-https
> > is run directly via exec/spawn.
> 
> Actually, I bet that is whats causing the problem. I am using MSYS2 Git [1],
> which is not a native Windows build of Git, but one that relies on the MSYS2 DLL
> for path translations and such. I have actually built a Windows native Git, but
> its a pain, so its easier just to use the package. Anyway, the "non native"
> Windows version, probably considers Bash the shell, so any commands being passed
> to a shell probably will be looking for Bash. I dont have Bash on my system,
> because for the most part I dont want or need it. If I need a shell, I just use
> PowerShell.

OK, that would explain it, I think.

> Would it be possible for Git to just run "credential-store" directly, like other
> commands? I assume stuff like "~/.git-credentials" would be a problem, but
> couldnt you just do something like this instead (pseudocode):
> 
>     var cred string = os.Getenv("HOME") + "/.git-credentials"

Possible yes, easy no.

The "~" part is trivial; that's expanded inside the C program anyway.
The harder thing is that helper strings can be arbitrary shell commands
(if you start them with "!"), so we decide at parse time whether to
stick the "git credential-" in front and then always treat it as a shell
command, rather than carrying through the knowledge that it doesn't need
a shell. So switching that would ripple through the whole call stack and
the data structures.

Definitely not impossible, and not even _hard_, but it's not like a
one-liner change.

-Peff

      reply	other threads:[~2021-11-04 14:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-03  0:27 credential-store get: No such file or directory Steven Penny
2021-11-03  1:19 ` Steven Penny
2021-11-03  2:25 ` Jeff King
2021-11-03  3:57   ` Steven Penny
2021-11-03 11:10     ` Jeff King
2021-11-03 16:01       ` Steven Penny
2021-11-04  9:43         ` Jeff King
2021-11-04 14:12           ` Steven Penny
2021-11-04 14:55             ` Jeff King [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YYP0dnBgfY16fSP7@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=srpen6@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).