From 6da5733d33d648429e14fae8fc745378c47fe78d Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 25 May 2015 10:36:17 +0200 Subject: [PATCH] Support Vagrant: quick & easy Linux virtual machine setup When developing Git for Windows, we always have to ensure that we do not break any non-Windows platforms, e.g. by introducing Windows-specific code into the platform-independent source code. At other times, it is necessary to test whether a bug is Windows-specific or not, in order to send the bug report to the correct place. Having access to a Linux-based Git comes in really handy in such a situation. Vagrant offers a painless way to install and use a defined Linux development environment on Windows (and other Operating Systems). We offer a Vagrantfile to that end for two reasons: 1) To allow Windows users to gain the full power of Linux' Git 2) To offer users an easy path to verify that the issue they are about to report is really a Windows-specific issue; otherwise they would need to report it to git@vger.kernel.org instead. Using it is easy: Download and install https://www.virtualbox.org/, then download and install https://www.vagrantup.com/, then direct your command-line window to the Git source directory containing the Vagrantfile and run the commands: vagrant up vagrant ssh See https://github.com/git-for-windows/git/wiki/Vagrant for details. As part of switching Git for Windows' development environment from msysGit to the MSys2-based Git SDK, this Vagrantfile was copy-edited from msysGit: https://github.com/msysgit/msysgit/blob/0be8f2208/Vagrantfile Signed-off-by: Johannes Schindelin --- .gitignore | 3 +++ Vagrantfile | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 Vagrantfile diff --git a/.gitignore b/.gitignore index a05241916c9c9a..06e33c51d43ba5 100644 --- a/.gitignore +++ b/.gitignore @@ -247,3 +247,6 @@ *.pdb /Debug/ /Release/ +/.vagrant/ +/vagrant2[0-9][0-9][0-9]*-*-* +/d2[0-9][0-9][0-9]*-*-* diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 00000000000000..fde777e12e6a10 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,58 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# This Vagrantfile defines the requirements of a Linux development environment +# to develop/run Git. This environment can be set up conveniently by installing +# Vagrant and VirtualBox and calling "vagrant up" in the /usr/src/git directory. +# +# See https://github.com/git-for-windows/git/wiki/Vagrant for details. + +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! +VAGRANTFILE_API_VERSION = "2" + +$provision = < /tmp/.profile + mv /tmp/.profile /home/vagrant/.profile +} + +# add a nice greeting +cat >> /home/vagrant/.profile << \EOF + +cd /vagrant/ +export PATH=/home/vagrant/bin:$PATH +cat << \TOOEOF + +Welcome to the Vagrant setup for Git! +-------------------------------------- + +To build & install Git, just execute + + make -j NO_PERL_MAKEMAKER=t install + +For more information, see https://github.com/git-for-windows/git/wiki/Vagrant +TOOEOF +EOF + +cat << EOF + +Now that everything is set up, connect to the Vagrant machine with the command: + + vagrant ssh + +EOF +PROVISION + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + # Start with a 64-bit Ubuntu 12.04 "Precise Penguin" box + config.vm.box = "ubuntu/trusty64" + config.vm.box_url = "https://atlas.hashicorp.com/ubuntu/boxes/trusty64" + + config.vm.provision :shell, :inline => $provision +end