This is an old revision of the document!
TL;DR Don't use git to store large binary files that change such as Virtual Machine Images.
Longer version
This is a summary of various email discussions on the topic of where to store large binary image files. Typical examples include videos, virtual machine images, software installers, ISOs for Operating Systems.
Since many developers check their source code into the GIT repository it may seem natural to just place the files you've built into the repo too. This can work okay for a single developer working on a project over the weekends but with a team working on many components that need to be tested and integrated this won't scale.
The way git works, no revision of any file is ever lost. So if you ever check in a big file, the repository will always contain it, and a git clone will be that much slower for every clone from that point onward.
The golden rule of revision control systems applies: check in your build scripts, not your build products.
Unfortunately, it only takes one person to start doing this and we end up with huge repositories. Please don't do this. It will make your computers sad. Thankfully, gerrit and code review systems are a massive disincentive to doing this.
You definitely need to avoid storing binary images in git. This is what artifact repositories are for, like Nexus or Artifactory
A "centralized image repository" is needed that can store multiple versions of various virtual machines and have something like /latest pointing to the newest uploaded image. It could be a simple nginx server that stores the output images from any jenkins job if it's successful, for instance. Any "client" would be able to fetch the latest "autorelease" using https://server/image/latest to get the latest image or https://server/stcv/1.1 and so on for any older image.
For the specific project "vswitch performance characterization", we have a directory as place holder to store the VM images. The VM images are not going to be in git repo. We use the same working git repository inside VM to run initial setup, and save the VM image in the host.
TAG: GIT repository file download section