From: Jens Lehmann Date: Thu, 17 Apr 2014 15:45:40 GMT Subject: Re: automatic submodule deinit (platform specific blacklist) Message-ID: <534FF724.9060707@web.de> In-Reply-To: <2348605.ZgCffZToXK@ws-gergap> Am 17.04.2014 10:02, schrieb Gerhard Gappmeier: > Hi all > > in our cross-platform projects we always have a certain Windows-only > submodule, which contains all the compatibility stuff and missing libraries for > Windows. > > When cloning such a repository on a Linux machine the typical procedure is: > git clone git@server:project.git > cd project > git submodule init > git submodule deinit path/to/windows-stuff > git submodule update > > This way you avoid wasting time and disk space to clone stuff that you don't > need on Linux (or on whatever non-windows machine your are actually working). > > It would be really cool to add a kind of platform specific submodule blacklist, > either in .gitconfig or maybe even better in .gitattributes so that we can add > this configuration to the repository. > > Example .gitattributes how this could look like: > # common stuff > *.sh eol=lf > *.conf eol=lf > > # submodule config > [src/windows-compat] > platforms = win32 > > By default the platforms could have the value "all". But one can change it to > a list of platform names e.g. "platforms = linux, macosx" or "win32" like in > the example above. > > Such a feature would also make it possible to simply use "git clone -- > recursive git@server:project.git" avoiding the single stops as shown above. > > What do your think? Is something like this possible? > Or is it even possible already somehow? > > Today I'm using a shell script to automate this steps, but this is just a > workaround. It would be cool if git itself could do this for us. What about setting "submodule..update" to "none" in the config of your non-Windows machines? Then they would be initialized (= the URL setting gets copied to .git/config) but never checked out.