From 8b96e197acdad31cc8526dbb82230f2c307e6bee Mon Sep 17 00:00:00 2001 From: Przemyslaw Pawelczyk Date: Sat, 7 Feb 2015 18:41:51 +0100 Subject: [PATCH] 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) --- README | 141 ++++++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 95 insertions(+), 46 deletions(-) rewrite README (96%) diff --git a/README b/README dissimilarity index 96% index 46878dd..30d0152 100644 --- a/README +++ b/README @@ -1,46 +1,95 @@ -metastore stores or restores metadata (owner, group, permissions, xattrs -and optionally mtime) for a filesystem tree. - -See the manpage (metastore.1) for more details. - -The file format of the .metastore files is as follows: - -Data types ----------- - -CSTRING = NULL-terminated binary string - -BSTRING(N) = binary string of length N - -INT(N) = N byte integer in big endian byte order - - -File format ------------ -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 -} +metastore +========= + +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. + +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. + +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. + + +This metastore is unofficial continuation of the original metastore +application created by David Härdeman (who no longer maintains it). + + +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 +----------- + +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) + + +### 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 +----------- + +Please use the issue tracker provided by GitHub to send bug reports +or feature requests. + +https://github.com/przemoc/metastore/issues -- 2.11.4.GIT