The version of msysGit that ships with GitHub for Windows
Перейти к файлу
Johannes Schindelin 42977446c3 Update xargs.exe to version 4.4.2
Now Ilya Basin can use the -d option!

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2014-04-02 14:44:15 -05:00
bin Update xargs.exe to version 4.4.2 2014-04-02 14:44:15 -05:00
cmd cmd: Add a .bat file that attempts to authorize SSH keys with ssh-agent 2013-11-27 11:55:57 +00:00
doc Update the submodules in preparation for 1.9.0 2014-02-17 22:42:38 +00:00
etc Delete oboslete etc/ssh_known_hosts2 2013-12-30 21:02:16 +01:00
git@0fce85db5b Update the submodules in preparation for 1.9.0 2014-02-17 22:42:38 +00:00
include MSYS: Add flex-2.5.35-1-msys-1.0.11-bin.tar.lzma 2010-03-25 13:03:26 +01:00
lib Perl readline creates empty sys$command files if no STDIN is connected 2014-01-02 17:26:25 +01:00
libexec Switch to new 'libexec/git-core' directory layout 2008-07-26 12:02:24 +02:00
mingw Install zlib-1.2.8.tar.gz 2014-02-23 21:18:49 +00:00
share Installer: Do not mention Cygwin on the PATH page to avoid confusion 2014-03-19 10:25:47 +01:00
src Merge branch 'update-zlib' 2014-02-23 21:19:20 +00:00
ssl Added MSys' openssl. 2008-02-20 13:42:58 +00:00
.gitattributes .gitattributes: make sure /etc/termcap has unix line-endings 2009-03-22 14:40:59 +01:00
.gitignore Add the .vagrant/ directory to the .gitignore file 2014-01-28 12:23:03 -06:00
.gitmodules Make hacking on Git using an msysGit installer more firewall-friendly 2012-10-22 23:40:22 +01:00
README.md Aargh. Forgot one more obsolete URL 2014-02-25 08:40:50 -06:00
THIS_IS_MSYSGIT Explain why we need the THIS_IS_MSYSGIT file 2012-10-03 17:48:45 +02:00
TODO Updated TODO 2008-02-20 13:43:29 +00:00
Vagrantfile Add a Vagrantfile 2014-01-28 12:00:55 -06:00
git-cmd.bat Use the /d option to change into the %HOME% directory 2013-12-08 23:16:05 +01:00
msys.bat msys: added setlocal to keep variables in subshell 2013-09-05 20:22:42 +01:00
wine-start.sh wine-start: avoid going through msys.bat 2011-09-09 15:56:54 -05:00

README.md

Build environment for Git for Windows

This is the build environment -- also known as msysGit -- for Git for Windows.

The easiest way is to install it via the net installer. This installer will clone our two repositories, including all the necessary components to build Git for Windows, and perform an initial build.

The build environment

msysGit brings a few components that are required to build Git:

  • Bash, a Unix-type command-line shell. Quite a few components of Git itself are still shell scripts. Therefore, Bash is required to execute Git commands (see the output of cd /git && git ls-files \*.sh for a full list).
  • the GNU C Compiler. Since we try to rely only on free software (apart from the Operating System, of course), we think it makes more sense to rely on GCC than on Visual Studio express. Also, it makes the maintenance burden lighter, as upstream Git also targets mainly GCC.
  • GNU Make.
  • Perl. Still required for a couple of Git components (see the output of cd /git && git ls-files \*.perl), most notably git svn.
  • Tcl/Tk, a scripting language making it easy to implement cross-platform graphical user interfaces. We need this for gitk and git gui.
  • cURL, a library implementing HTTP and FTP transport.
  • many more libraries.
  • some Unix programs required by the shell scripts in Git.

The relationship between msysGit and Git for Windows

Git for Windows is the software package that installs a minimal environment to run Git on Windows. It comes with a Bash (a Unix-type shell), with a Perl interpreter and with the Git executable and its dependencies.

On the other hand, msysGit is the software package installing the build environment that can build Git for Windows. The easiest way is to install it via the net installer.

The difference between MSys and MinGW

The MinGW project's goal is to provide a way to compile native Windows binaries with no POSIX layer using the GNU C Compiler.

However, at least the Bash needs a POSIX layer (most notably due to the absence of the fork() call on Windows). Therefore, MSys (the minimal system) is thrown in, offering the minimal system necessary to offer Bash (and Perl) functionality on Windows.

Consequently, MSys ships with a POSIX layer (based on an old version of Cygwin) that is only used by the Bash and Perl, but not by anything compiled within that environment.

Further information

For more information and documentation, please have a look and enhance our Wiki.

For code contributions and discussions, please see our mailing list.