I would like to import a SVN repository into a GitHub Enterprise repository
There are many questions related to this matter and most of them can be addressed either with Git submodules or Git subtree.
In my case I have two repositories:
- The main project repository
 - The modules repository (a big SVN repository over 2 GB)
 
This module repository has the following architecture:
foolib/
   moduleA/
      ...
   moduleB/
      ...
   ...
For the project, only few modules from foolib are used as svn:externals. For example this main project only uses moduleA from foolib.
As mentioned in this question one possible solution is to use sparse-checkout. I'm guessing Git subtree would also do the trick. Unfortunately it doesn't solve the main issue.
If my project is very small, as long as I get something from foolib, even with sparce-checkout, I will retrieve the whole history of foolib (e.g. 2 GB). This issue doesn't exist with SVN because an svn:externals property only fetches what it needs, not the whole history. 
I can imagine to do foolish things like recreating a local sparse repository dynamically using the commits listed in git log --follow foolib/moduleA. But I assume this is not a good solution. 
What would be the correct workflow to get a similar behavior in Git without having to fetch the whole history of foolib everything I need only few modules?