8000 GitHub - Alphix/metastore: Store and restore metadata from a filesystem. // Unofficial continuation of David Härdeman's defunct git repo: git://git.hardeman.nu/metastore.git
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from przemoc/metastore

Store and restore metadata from a filesystem. // Unofficial continuation of David Härdeman's defunct git repo: git://git.hardeman.nu/metastore.git

License

Notifications You must be signed in to change notification settings

Alphix/metastore

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.


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 file (.metadata).


### 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 only license.
See LICENSE.GPLv2 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

No packages published

Languages

  • C 90.3%
  • Roff 5.6%
  • Makefile 4.1%
0