Browse files

Add a Vagrantfile

Vagrant offers a painless way to install and use a defined Linux
development environment. We offer a Vagrantfile to that end for two

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 instead.

Using it is easy: Download and install, then
download and install (both are Open Source in
case you desire a more complicated installation), then direct your
command-line window to the Git source directory containing the Vagrantfile
and run the commands:

	vagrant up
	vagrant ssh

Signed-off-by: Johannes Schindelin <>
  • Loading branch information...
1 parent 753d3d6 commit 0be8f2208d795c0fc75d4667fac78987e63c914d @dscho dscho committed Jan 28, 2014
Showing with 59 additions and 0 deletions.
  1. +59 −0 Vagrantfile
59 Vagrantfile
@@ -0,0 +1,59 @@
+# -*- 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 Git directory.
+# See for details.
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+$provision = <<PROVISION
+apt-get update
+apt-get install -y make gcc libexpat-dev libcurl4-openssl-dev gettext tk8.5 libsvn-perl
+# clean .profile in case we're re-provisioning
+n="$(grep -n 'cd /vagrant' < /home/vagrant/.profile 2> /dev/null |
+ sed 's/:.*//')"
+test -z "$n" || {
+ head -n $(($n-1)) < /home/vagrant/.profile > /tmp/.profile
+ mv /tmp/.profile /home/vagrant/.profile
+# add a nice greeting
+cat >> /home/vagrant/.profile << \EOF
+cd /vagrant/git
+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 and
+remember that this project is only as good as you make it.
+cat << EOF
+Now that everything is set up, connect to the Vagrant machine with the command:
+ vagrant ssh
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # Start with a 64-bit Ubuntu 12.04 "Precise Penguin" box
+ = "ubuntu"
+ config.vm.box_url = ""
+ config.vm.provision :shell, :inline => $provision

0 comments on commit 0be8f22

Please sign in to comment.