title: Git with large files
body: <h2>Situation</h2>
  
  <p>I have two servers, Production and Development. On Production server, there are two applications and multiple (6) databases (MySQL) which I need to distribute to developers for testing. All source codes are stored in <a href="http://gitlab.org" rel="noreferrer">GitLab</a> on Development server and developers are working only with this server and don't have access to production server. When we release an application, master logs into production and pulls new version from Git. The databases are large (over 500M each and counting) and I need to distribute them as easy as possible to developers for testing.</p>
  
  <h2>Possible solutions</h2>
  
  <ul>
  <li><p><strike>After a backup script which dumps databases, each to a single file, execute a script which pushes each database to its own branch. A developer pulls one of these branches if he wants to update his local copy.</strike></p>
  
  <p>This one was found non working.</p></li>
  <li><p>Cron on production server saves binary logs every day and pushes them into the branch of that database. So, in the branch, there are files with daily changes and developer pulls the files he doesn't have. The current SQL dump will be sent to the developer another way. And when the size of the repository becomes too large, we will send full dump to the developers and flush all data in the repository and start from the beginning.</p></li>
  </ul>
  
  <h2>Questions</h2>
  
  <ul>
  <li>Is the solution possible?</li>
  <li>If git is pushing/pulling to/from repository, does it upload/download whole files, or just changes in them (i.e. adds new lines or edits the current ones)?</li>
  <li><strike>Can Git manage so large files?</strike> No.</li>
  <li><strike>How to set how many revisions are preserved in a repository?</strike> Doesn't matter with the new solution.</li>
  <li>Is there any better solution? I don't want to force the developers to download such large files over FTP or anything similar.</li>
  </ul>