threads / discuss / 25391

Alternate .gitignore

Subject: Alternate .gitignore

## tl;dr

4 messages between Oct 8, 2010 and Oct 8, 2010.

replies: 3people: 3as markdown or json

Maaartin· Oct 8, 2010, 12:31 UTC · lore

I'm using git for a project, where I'd like to store not only the sources but some quite large generated files, too. However, I'd like to keep them separated, so my source depository doesn't grow too much. The problem could be solved nicely if there was a possibility to use .gitignore for the source tree and let say .gitignore2 for the extended tree. I'd use two depositories: .git and .git2.

The content if .gitignore2 could be a subset of the content of .gitignore, so the extended tree would contain the sources as well, which is not really a problem. Or maybe I could make the depositories disjoint, I'm not sure now.

Is something like this possible or is it too strange requirement?
Ævar Arnfjörð Bjarmason· Oct 8, 2010, 12:45 UTC · re: Maaartin · lore

Re: Alternate .gitignore

On Fri, Oct 8, 2010 at 12:31, Maaartin <grajcar1@seznam.cz> wrote:
Show 11 quoted lines
> I'm using git for a project, where I'd like to store not only the sources but
> some quite large generated files, too. However, I'd like to keep them separated,
> so my source depository doesn't grow too much. The problem could be solved
> nicely if there was a possibility to use .gitignore for the source tree and let
> say .gitignore2 for the extended tree. I'd use two depositories: .git and .git2.
>
> The content if .gitignore2 could be a subset of the content of .gitignore, so
> the extended tree would contain the sources as well, which is not really a
> problem. Or maybe I could make the depositories disjoint, I'm not sure now.
>
> Is something like this possible or is it too strange requirement?
Have you looked into storing your binaries in a git-submodule(1) ?
Maaartin· Oct 8, 2010, 21:39 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Alternate .gitignore

Ævar Arnfjörð Bjarmason <avarab <at> 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.

Kevin Ballard· Oct 8, 2010, 21:45 UTC · re: Maaartin · lore

Re: Alternate .gitignore

On Oct 8, 2010, at 2:39 PM, Maaartin wrote:
Show 19 quoted lines
> Ævar Arnfjörð Bjarmason <avarab <at> 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

← back to recent threads