summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorPrzemyslaw Pawelczyk <przemoc@gmail.com>2015-02-07 18:41:51 +0100
committerPrzemyslaw Pawelczyk <przemoc@gmail.com>2015-02-07 18:41:51 +0100
commit8b96e197acdad31cc8526dbb82230f2c307e6bee (patch)
tree1088a97ef6d00c6c6dbe6e78bdc633853db938de /README
parent9451127e061ad3121d4df962fd132611d549d404 (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)
Diffstat (limited to 'README')
-rw-r--r--README109
1 files changed, 79 insertions, 30 deletions
diff --git a/README b/README
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.
+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