Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Differences between MinGW from msysgit (aka Git on Windows) and MinGW from MinGW.org

I have installed msysgit via the net installer. I ended up with almost 2 giga of material, where I have among the other things git sources and MinGW.

I have three questions

  • I already had MinGW from MinGW.org. Now I think I can remove the latter and stay with msysgit distribution. Anyway MinGW from MinGW.org comes with mingw-get, which can be used to manage MinGW packages. How can I identify packages that come with msysgit? or, put it differently, (considering the huge msysgit size) what packages remain out?

  • Given the overall size and since Git is built, what are the folders that can be safely removed without affecting normal Git usage? That is assuming I don't need to build Git again.

  • And finally Should this version be considered as portable? If not, what are installed registry keys or environment variables?

In essence I need help to decide whether use the small portable Git and set symbolic links to MinGW or use the huge all-in-one distro and trash the good old MinGW.org.

like image 564
antonio Avatar asked Jun 05 '14 12:06

antonio


People also ask

Which of the following executable is used to install Git on Windows Cygwin MSysGit?

msysGit is the development environment to compile Git for Windows. It is complete, in the sense that you just need to install msysGit, and then you can build Git. Without installing any 3rd-party software. Git for Windows is an installer which installs Git -- and only Git.

What is Msys?

MSYS is an application that gives the user a Bourne shell that can run configure scripts and Makefiles. No compilers come with MSYS. In the Cygwin, MinGW, and MSYS hierarchy, it is at the bottom the food chain in terms of tools provided. However, it is very easy to use and build the OS project with MSYS.


1 Answers

Well, there a few misconceptions at play here. Let's first get them out of the way:

  1. The Unix-like shell environment you are talking about is called MSYS. It was originally developed by MinGW.org as a fork of Cygwin. This was in turn forked to be improved slightly so that git could run with it, which became msysgit. Note that the git binaries are native Win32 programs, but the POSIX shell is needed for its operation.

  2. MinGW.org provides a commandline installer/package installation tool called mingw-get. It can be run from MSYS (and I believe plain cmd as well).

Now, to answer your question:

  • I would say msysgit provides the minimal amount of packages needed for a fully functional git. Lots of git runs through the shell, so therefore you need a lot of utilities. I'm not sure about this one though.

  • Why are you building git? That sounds like an ugly endeavour. I suggest looking below for a better way to use git and MinGW and a shell together.

  • MSYS is quite portable, though you may need to rerun the postinstallation script if you relocate. By default, msysgit puts its ssh keys in your windows user folder, not in the MSYS tree, so be sure not to lose those.

Finally, to avoid all these issues and help improve your setup by a significant factor (of some random setup quality quantity): use MSYS2. What is MSYS2? It's an up to date fork of current Cygwin, patched to act like MSYS (with the whole path translation stuff), integrated with a package manager that's actually useful, and MinGW-w64 toolchains. To sum it up: MSYS2 is better, better, and better than anything you have now. Note that you can install a ton of MinWG-w64 libraries without having to build them yourself. You can also install git, although the MSYS2 package does not

like image 191
rubenvb Avatar answered Sep 27 '22 21:09

rubenvb