The program can't start because cygcrypto-0.9.8.dll is missing from your
computer. Try reinstalling the program to fix this problem.
I tried reinstalling Git-1.7.7-preview20111014.exe several times and
also tried uninstalling it followed by a normal installation. git still
fails to start.
I already had cygwin running, but I don't believe that I have its git
command installed.
$ which git
/c/home/<userid>/bin/git
My client machine runs MS windows 7 64 bit.
On the first installation, I selected "Run Git and included Unix tools
from the Windows Command Prompt". I rarely use the Windows Command
Prompt, so I didn't think it would matter. I tried the other two
options, "Run Git from the Windows Command Prompt" and "Use Git Bash
only". None of these options allowed git to start properly.
I selected Checkout as-is, commit as-is.
Thanks.
> The program can't start because cygcrypto-0.9.8.dll is missing from your
> computer. Try reinstalling the program to fix this problem.
This is a DLL from Cygwin, not (msys)Git, as it starts with "cyg...".
> On the first installation, I selected "Run Git and included Unix tools
> from the Windows Command Prompt". I rarely use the Windows Command
Git is probably trying to use your Cygwin's SSH (probably because you
have Cygwin in your PATH), which in turn requires cygcrypto-0.9.8.dll.
Check your GIT_SSH environment variable and unset it if set, or
explicitly set it to the SSH executable that comes with Git.
--
Sebastian Schuberth
This is still a path-issue. It seems you have a Cygwin tool that links
to cURL in the path as well, preventing Git from finding the right
tool.
>
> This message should be changed from "is missing from your computer"
> to "can't be found".
Not possible. This is an error message that Windows generate, not one
that we control.
> There are three environment types on my system now, Windows, Cygwin
> and Git Bash. I believe that Git Bash is the correct environment to
> change to avoid side effects in the other two. Of course git will
> only run within Git Bash, but that will suffice for now at least.
>
> Old ssh:
>
> Observation: The openssh included by msysgit is rather old:
Patches welcome.
> There seems to be a conflict between msysgit and cygwin. I have a
> pristine
> install of cygwin, except I copied a dll to fix a bug a few months
> ago.
Yes; mixing MSys (which Git Bash really is) and Cygwin in PATH is a
bad idea, and is bound to break horribly. This is a logical problem,
not really a technical one: MSys and Cygwin doesn't work the same way,
so both of these needs to do some "magic" (like translating paths into
POSIX-style rather than Windows style), but in different ways. Mixing
tools between these packages is not really going to work very well, so
they should be completely separate systems, not knowing about each
other (not even implicitly through PATH).
My point was that this was probably because Sebastian Schuberth's
suggestion _worked_. But then _another_ patch crash happened.
>> > This message should be changed from "is missing from your computer"
>> > to "can't be found".
>>
>> Not possible. This is an error message that Windows generate, not one
>> that we control.
>
> Other shells running on MS Windows like Cygwin generate error messages
> to stderr which appears as simple text in the console window.
We generate our errors on the console as well.
> They
> don't generate "Windows" style error notification windows. It is
> irritating to be using a very nice text shell and then be forced to
> click on error notification windows whose idiotic content can't even
> be changed.
As I said, not possible. This is Windows' EXE-loader's error, and is
issued before the process hits it's entrypoint.
> Presumably this is a compromise for better performance?
No, this has nothing to do with performance. It's a built-in Windows error.
>> > Old ssh:
>>
>> > Observation: The openssh included by msysgit is rather old:
>>
>> Patches welcome.
>
> As I noted before, users with a current Cygwin installation can use
>
A user with Cygwin in it's path is doomed, for the reasons I explained
in my previous e-mail. I meant a patch to provide a script that
upgrades our OpenSSH.
> Copying the Cygwin OpenSSH executables plus dependent libraries to
> the msysgit bin is another option
Not att all; it will not work.
> I got a new github.com account and they suggested using msysgit as
> a client program. I was just following their introduction to using
> git and now I'm being asked to contribute patches to a git tool.
> If you don't mind, I'll decline that "promotion" and hope you find
> what I can provide of some use.
>
Git is free software, and that usually means "scratch your own itch".
Let's put it this way: you got a hell of a lot for free, but you don't
get to make demands without being willing to put in some work for it.
Of course, you don't HAVE to do anything. But then I suspect your
"helpful suggestions" will go by without having changed a thing.
>> Yes; mixing MSys (which Git Bash really is) and Cygwin in PATH is a
>> bad idea, and is bound to break horribly. This is a logical problem,
>> not really a technical one: MSys and Cygwin doesn't work the same way,
>> so both of these needs to do some "magic" (like translating paths into
>> POSIX-style rather than Windows style), but in different ways. Mixing
>> tools between these packages is not really going to work very well, so
>> they should be completely separate systems, not knowing about each
>> other (not even implicitly through PATH).
>
> Fix: Set the following path in Bash Git:
>
> $ export PATH=/c/Program\ Files\ \(x86\)/Git/bin:$PATH
>
> In my opinion, msysgit should do the above when the Bash Git only
> installation option is selected. That should allow correct
> operation even with Cygwin also installed right after installation.
>
> Cygwin tip: To make Cygwin paths (/cygdrive...) compatible with
> msysgit and other UNIX interfaces over MS Windows, use:
>
> cygwin$ mount --change-cygdrive-prefix /
>
> For any drives you want listed in /, do "mkdir <drive-letter>"
> before using the mount command. For example "mkdir c".
>
You're just fixing the tip of the iceberg, here. Neither of these
"fixes" fix the fundamental problem of having two subsystems sharing a
namespace while depending on the same names.
> Fix: Set the following path in Bash Git:
>
> $ export PATH=/c/Program\ Files\ \(x86\)/Git/bin:$PATH
>
> In my opinion, msysgit should do the above when the Bash Git only
> installation option is selected. That should allow correct
> operation even with Cygwin also installed right after installation.
I'm glad you found a fix for your setup. However, IMHO the Git for
Windows installer should not tamper with any environment variables
unless explicitly told so. As you can see, I just can break too much.
For your specific setup with not only Cygwin installed but also in PATH,
this might be the right solution. For others, this may break things
(e.g. Windows CMD users that expect the Windows version of "find"). This
is a classic case where the user just needs to know what he's doing.
Like Erik mentioned, using MSYS (which Git for Windows is based on) and
Cygwin in parallel is in general a bad idea and also not necessary most
of the time. At work, where we required Cygwin for our build environment
before, we switched completely to the MSYS environment Git for Windows
provides instead, and it works great.
--
Sebastian Schuberth
cygwin have their own port of git. If you are using git in a cygwin
environment then that port should be used. We try and make sure we
avoid calling cygwin utilities in case a Windows user has cygwin
around. But if you are actually using a cygwin bash shell then you are
not really using Windows - you're using cygwin, so you need tools that
explicitly support that environment. Git for Windows is for a standard
windows environment. I'm not sure where the cygwin git lives as I
don't use cygwin at all - but I'm sure its easy to locate.