On 04/17/14 17:45, Jens Lehmann wrote:
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

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
   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.<name>.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.
great! that works.

It would be even better if we could store this config in the repository,
but this helps already a lot.


To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to