I am looking for some idea on how to handle git repositories that use a (large) static library and have some problems regarding the solution I was thinking about.
Suppose that many separate projects, all under version control, each rely on a large static library, which is under (very) active development. Let's say that the repo A, B, C, ...all have their own development teams, and they all rely on lib. Now the project itself libis under version control, and another team is also working. Suppose that some commands cannot / should not have access to the source for lib, but access to the headers and binaries of the static library is fine.
Now, when I first thought about how to organize this situation in git repositories, the submodules immediately remembered. Here is a brief diagram:
"lib" repo:
Dist/ -> "lib_dist" submodule
Headers/
Sources/
...
"lib_dist" repo:
Binaries/ (output from "lib" repo build process)
Headers/ (copied from "lib" repo in its build script)
"A" repo:
Headers/
Libs/
lib_dist/ -> "lib_dist" submodule
Sources/
"B" repo:
(looks just like "A")
"C" repo:
(again looks like "A")
lib Dist. lib, lib_dist. lib_dist A, B, C, ... .
: A, B, C .. , lib, A, B, C, repos , . , A , git checkout <rev_hash> ., git submodule update; lib_dist <rev_hash>, , <rev_hash>. , lib_dist " ".
: ( - ) lib_dist , git . git repos 1 , / .
, , " "? git ? ( )? , lib. , , lib-to-be-compiled-... 20- ( ).
!
EDIT: , C/++.