From: Kevin Ballard Date: Fri, 08 Oct 2010 21:45:58 GMT Subject: Re: Alternate .gitignore Message-ID: <6FF71159-7AB3-46D2-A417-77ED61458D4A@sb.org> In-Reply-To: On Oct 8, 2010, at 2:39 PM, Maaartin wrote: > Ævar Arnfjörð Bjarmason gmail.com> writes: > >> Have you looked into storing your binaries in a git-submodule(1) ? > > I've look at it just now and it doesn't seem to be the thing I need. According > to my very basis understanding submodules seem to be useful for embedding other > projects, but I'm working with a single project only. I'm speaking about a > single project and need to store it in different repositories at different > "ignorance levels". > > To make it clear, just imagine that compilation would be many thousand times > slower. In such a case you could prefer to store the history of the *.o files as > well, but you'd still want to avoid the pollution of the source tree. So you'd > maybe use .git for the sources as usually and .git2 (or whatever) for the object > files (maybe together with the sources). This comes very close to my situation. > > I could switch to using .git2 using $GIT_DIR, but with "*.o" in my .gitignore I > see no way how to include the ignored files. Maybe I could use $GIT_DIR/info/ > exclude somehow instead of .gitignore, but this could be quite cumbersome. Submodules are usually used to embed other projects, but they can also be used for this "ignorance levels" thing you want. Make the core repo have what everyone wants, and each "ignorance level" should go into another submodule. Lots of binary files that only some people need? Make it a submodule. People can then init the submodules they care about and update just those ones and ignore the others. You'll probably want to have some sort of documentation telling people what the different submodules are, so they don't just blindly `git submodule update --init --recursive`, but with just a little bit of effort it can work pretty well. -Kevin Ballard