diff options
| author | Przemyslaw Pawelczyk <przemoc@gmail.com> | 2015-02-07 18:41:51 +0100 | 
|---|---|---|
| committer | Przemyslaw Pawelczyk <przemoc@gmail.com> | 2015-02-07 18:41:51 +0100 | 
| commit | 8b96e197acdad31cc8526dbb82230f2c307e6bee (patch) | |
| tree | 1088a97ef6d00c6c6dbe6e78bdc633853db938de | |
| parent | 9451127e061ad3121d4df962fd132611d549d404 (diff) | |
README: Update it a bit and mention this metastore status.
New description shamelessly copied from David's software page:
http://david.hardeman.nu/software.php (https://archive.today/vW7Ar)
| -rw-r--r-- | README | 109 | 
1 files changed, 79 insertions, 30 deletions
| @@ -1,46 +1,95 @@ -metastore stores or restores metadata (owner, group, permissions, xattrs -and optionally mtime) for a filesystem tree. +metastore +========= -See the manpage (metastore.1) for more details. +metastore is a tool to store the metadata of files/directories/links in +a file tree to a separate file and to later compare and apply the stored +metadata to said file tree. -The file format of the .metastore files is as follows: +It was written as a supplement to git which does not store all metadata, +making it unsuitable for e.g. storing /etc in a repository. -Data types ----------- +metastore can also be helpful if you want to create a tarball of a file +tree and make sure that "everything" (e.g. xattrs, mtime, owner, group) +is stored along with the files. -CSTRING = NULL-terminated binary string -BSTRING(N) = binary string of length N +This metastore is unofficial continuation of the original metastore +application created by David Härdeman (who no longer maintains it). -INT(N) = N byte integer in big endian byte order + +Stored metadata +--------------- + +metastore stores following metadata in its files: + +- owner, +- group, +- permissions, +- xattrs, +- mtime - optionally. + + +Usage +----- + +See the manual page (metastore.1) for details on usage.  File format  ----------- -HEADER -N * ENTRY +Following sections explain internals of .metastore files. + + +### Data types + +    CSTRING     = NUL-terminated binary string +    BSTRING(N)  = binary string of length N +    INT(N)      = N byte integer in big 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) +### HEADER format -ENTRY format ------------- -CSTRING - Path (absolute or relative) -CSTRING - Owner (owner name, not uid) -CSTRING - Group (group name, not gid) +    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 +    } + + +License +------- + +The project is licensed under the terms of the GNU GPL v2 license. +See LICENSE file for the full license text. + + +Bug reports +----------- -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) +Please use the issue tracker provided by GitHub to send bug reports +or feature requests. -INT(4)  - num_xattrs -FOR (i = 0; i < num_xattrs; i++) { -    CSTRING           - xattr name -    INT(4)            - xattrlen -    BSTRING(xattrlen) - xattr value -} +https://github.com/przemoc/metastore/issues | 
