title: SVN to GIT migration or: how to organize a big repo with different languages
body: <p>I know this topic has been here a few times, but not exactly as my situation is here.</p>
  
  <p>We want to migrate from SVN to GIT using Atlassian Stash/Bitbucket Server. Our SVN repo is a "god object" repo, it's not that small. About 9 years history, 20,000 commits. </p>
  
  <p>Because of historical reasons (...) the structure is like</p>
  
  <pre><code>svn:/url/trunk1
  -| C# Libs (Visual Studio solutions + dll files)
  --| Hardware related
  ---| Products
  ----| a lot of different solutions here...
  ---| non products
  ----| different other solutiosn here
  -| Equipment (VS solutions, no Libs)
  --| Equipment A
  ---| Project A1 
  ----| trunk
  ----| branches
  ----| tags
  ---| Project A2
  ----| trunk
  --| Equipment B
  ---| Project B1
  ----| trunk
  ----| branches
  ----| tags
  ---| Project B2
  ---| no trunk but VS solution directly
  -| Products
  --| Product group A
  ---| Product A1
  ----| trunk
  -----| matlab code
  -----| documentation
  -----| embedded c code
  ----| branches
  ----| tags
  ---| Product A2
  ----| trunk
  -----| matlab code
  -----| documentation
  -----| embedded c code
  ----| branches
  ----| tags
  -| Schematic/pcb
  --| again some subfolders followed by products 
  </code></pre>
  
  <p>So it's a mess. There is a giant trunk1, we have mixed matlab + c code in the Product->Projects (and each project has its own trunk/branch). Then there are completely independent folders for pcb schematics and c# dll libs, though there is some connection to the products folder.</p>
  
  <p>Two big questions:
  1) would you even try to migrate this whole thing to a (lot of) GIT repos or would you re-organize it?
  2) How do you organize repos with different languages like matlab code, embedded c firmware code and (loosely coupled) C# code? Do you split it up for each language, what do you do when a certain project needs parts of other repos and so on?</p>
  
  <p>Thank you very much!</p>