summaryrefslogtreecommitdiff
path: root/doc/forum/hashing_objects_directories.mdwn
blob: 4e5f4b1c98505f9028310486cd9abb4420c3a139 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
I'm wondering how easy the addition of hashing to the directories of the objects would be.

Currently a tree directory structure becomes a flat two level tree under the .git/annex/objects directory ([[internals]]).  This, through the 555 mode on the directory prevents the accidental destruction of content, which is _good_.  However file and directory numbers soon add up in there and as such any file-systems with sub directory limitations will quickly realize the limit (certainly quicker than maybe expected).

Suggestion is therefore to change from 

 `.git/annex/objects/SHA1:123456789abcdef0123456789abcdef012345678/SHA1:123456789abcdef0123456789abcdef012345678`

to 

 `.git/annex/objects/SHA1:1/2/3456789abcdef0123456789abcdef012345678/SHA1:123456789abcdef0123456789abcdef012345678`

or anything in between to a paranoid

 `.git/annex/objects/SHA1:123/456/789/abc/def/012/345/678/9ab/cde/f01/234/5678/SHA1:123456789abcdef0123456789abcdef012345678`

Also the use of a colon specifically breaks FAT32 ([[bugs/fat_support]]), must it be a colon or could an extra directory be used? i.e. `.git/annex/objects/SHA1/*/...`