From: Torgil Svensson Date: Thu, 14 Dec 2006 21:27:26 GMT Subject: Re: [RFC] Submodules in GIT Message-ID: In-Reply-To: On 12/10/06, Torgil Svensson wrote: > What if we use linus "module" file concept and allow the link objects > to track subtrees? An object may look like this: > > commit: > link: /path/to/remote/tree/or/blob > Special customer release for a specific HW platform > --------------------------------------------------- > "Lib1/lib1.h" -> "/headers/lib1.h" > "Lib1/lib1.so" -> "/i386/Lib1/lib1.so" > "App1_binary" -> "/i386/App1/App1_binary" This example is somewhat complex since the build for lib1.so and the header-file might not has gone through the same commit on the lib1 subproject. Consider this example: lib1 - library project (source tracking) ------------------------------------------ Blob: /src/lib1.h app1 - application project (source tracking) ----------------------------------------- Link: /headers/lib1.h -> /src/lib1.h build1 - Build project (binary build tracking) ------------------------------------ Link: /src/lib1 -> / Link: /src/app1 -> / Blob: /i386/lib1/lib1.so Blob: /i386/app1/app1 Release Project (file compilation tracking) ----------------------------------- Link: /headers/lib1.h -> /src/lib1.h Link: /bin/lib1.so -> /i386/lib1/lib1.so Link: /bin/app1 -> /i386/app1/app1 , and should be the same, dictated by the app1 project. Can we enforce this in the modules file or should the different supermodules fix this somehow using scripts/hooks? How do the super-projects in this case get access to the blobs pointed by the links - transparent or explicit in the build-process?