forked from przemoc/metastore
-
Notifications
You must be signed in to change notification settings - Fork 0
Store and restore metadata from a filesystem. // Unofficial continuation of David Härdeman's defunct git repo: git://git.hardeman.nu/metastore.git
License
kmdawson/metastore
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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
About
Store and restore metadata from a filesystem. // Unofficial continuation of David Härdeman's defunct git repo: git://git.hardeman.nu/metastore.git
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 93.4%
- Makefile 3.8%
- Shell 2.8%