tags:

views:

322

answers:

6

so I see git doesnt recognize folders, or should I say when the only change between commits is addition of empty folders to the working tree they're not show in 'git status' after 'git add .'
how would you handle the need to add empty folders to the working tree (for runtime storage) and have them be reflected/created when other repos pull from the current repo (one in which the folders were added)?

thank you

+5  A: 

People often put an empty file as a placeholder in the folder to overcome that limitation...

John Weldon
personally i'd make it a readme file with some brief explanation of why the folder exists
jk
+5  A: 

You are absolutely correct. Git, like some other version control systems, does not take cognizance of empty folders or of properties of folders. Folders only exist insofar as there are file that are in them. If you want to simulate this, you need to drop placeholder files into them.

bmargulies
+16  A: 

I usually put a .gitignore in those directories as you likely want to ignore any runtime generated data anyway.

m5h
+3  A: 

Either put empty placeholder files into the folders you want git to keep track of or add instructions to create these folders to your build system if possible.

hillu
+2  A: 

You should realize that you are asking for your source control system to set up some resources that are not source, not part of your build system, but essential to the operation of your application. I would do one of the following:

  1. Make the build create the necessary directory.
  2. Have the application create the required directories as it runs.

Similarly, if the application wanted to append to a log file, it wouldn't make sense to have that logfile start out in the revision control system, would it?

Dustin
A: 

I faced this problem when trying to use git as a backup tool with support for deduplication and compression.

My solution was to create my own system. It's available on http://github.com/meingbg/store

Again, my purpose was to store files, not work with code.

meingbg