Version 0 --------- Following sections explain internals of metastore file (.metadata). ### Data types CSTRING = NUL-terminated binary string BSTRING(N) = binary string of length N INT(N) = N byte integer in little-endian byte order ### File layout HEADER N * ENTRY ### HEADER format BSTRING(10) - Magic header - "MeTaSt00r3" BSTRING(8) - Version - "\0\0\0\0\0\0\0\0" (currently) ### ENTRY format CSTRING - Path (absolute or relative) CSTRING - Owner (owner name, not uid) CSTRING - Group (group name, not gid) INT(8) - Mtime (seconds) INT(8) - Mtime (nanoseconds) INT(2) - Mode (st_mode from struct stat st_mode AND 0177777, i.e. unix permissions and type of file) INT(4) - num_xattrs FOR (i = 0; i < num_xattrs; i++) { CSTRING - xattr name INT(4) - xattrlen BSTRING(xattrlen) - xattr value }