Skip to content

An Inno Setup based wrapper around mingw-get (similar to mingw-get-inst) to install a development environment for building Git for Windows using MinGW.

Notifications You must be signed in to change notification settings

PhilipOakley/git-for-windows-sdk

 
 

Repository files navigation

Introduction

This is mingwGitDevEnv, an Inno Setup based wrapper around mingw-get (similar to mingw-get-inst) to install a development environment for building Git for Windows using MinGW.

Features

The installer strives to supersede the existing msysgit netinstall package with some improvements that hopefully make the life of both Git for Windows developers and users much easier. In particluar, the improvements include:

  • Real installer: Comes with an Inno Setup based installer with uninstall capabilities instead of just a self-extracting archive.

  • Package management: All required packages are installed via MinGW's new mingw-get tool. This means that the installed packages can be updated independently of updates to the mingwGitDevEnv installer, and in turn that there is no need to create a new mingwGitDevEnv installer just because of updates to packages. You have full access to all upstream MSYS / MinGW packages in addition to custom mingwGitDevEnv packages.

  • Custom packages: mingwGitDevEnv provides several updated and custom packages to improve the Git experience on Windows.

  • Execution of batch files: You can execute *.bat / *.cmd files right away without manually prefixing them with cmd.exe.

  • More consistent naming: The included Git executable is a native Windows application that has been compiled using MinGW, it is not an MSYS application using a Unix emulation layer. Only the shell environment and some tools Git depends on are provided by MSYS. This is also the case for the msysgit project, but as it contains "msys" in its name this has always been a source of confusion. Consequently, this project is called mingwGitDevEnv.

Download

Choose between the latest stable release or the latest snapshot release.

Getting involved

Setting up the environment

If you start from scratch without an existing MSYS environment (or Git client, for that matter) you have sort of a chicken-and-egg problem: In order to build the mingwGitDevEnv installer or create mingw-get packages (see the next section) you need various MSYS tools like curl or wget, sed, lzma, tar, unzip. The mingwGitDevEnv installer provides those tools, but you do not have the installer yet. The easiest way to solve this is by downloading an already existing snapshot release of the mingwGitDevEnv installer, run it to set up the development environment, and use that environment to work on mingwGitDevEnv itself. To do so, select Start the development environment on the installer's final page and type at the prompt:

$ git clone https://github.com/sschuberth/mingwGitDevEnv.git  # Clone the repository (or your fork of it)
$ cd mingwGitDevEnv                                           # Change to the working tree

Then, start hacking on mingwGitDevEnv! Everything in the root directory goes as-is to the installation directory as created by the mingwGitDevEnv installer. In particular, the mgwport / msysport and catalogue / package description files for our custom MinGW / MSYS packages are in the packages subdirectory. In case you would like to update one of the packages to a more recent version or create new package, that is the place to go.

When you are done, building an up-to-date mingwGitDevEnv installer is done by these steps:

$ ./update-mingw-get.sh  # Download the most recent catalogue / package description files
$ ./build-installer.sh   # Create the installer

If everything went fine you should now have a file matching mingwGitDevEnv-*.exe which you can use to install the Git Development Environment including your changes.

Creating mingw-get packages

Please see the separate mingwGitDevEnv-packages repository for details.

Getting in contact

We now have a mailing list for developers.

TODOs (roughly in order of priority)

  • Make git help -a work when built-ins are removed.
  • Make all Git tests pass, see the test results for the latest snapshot build.
  • Upgrade Perl (to a version that includes this patch)
  • Upgrade SVN libraries (requires new Perl)
  • Create a new "Git for Windows" installer which also comes with mingw-get package management.
  • Integrate Karsten Blees' Unicode patches (13, 14, 15, 16).
  • Create a 64-bit version of "Git for Windows".
  • Contribute patches to MSYS back upstream.
  • Capture the console output of mingw-get and show the progress in the mingwGitDevEnv GUI.

About

An Inno Setup based wrapper around mingw-get (similar to mingw-get-inst) to install a development environment for building Git for Windows using MinGW.

Resources

Stars

Watchers

Forks

Packages

No packages published