descriptionMaking git usable for backing up file attributes too
repository URLhttps://github.com/przemoc/metastore
ownerpasky@ucw.cz
last changeWed, 1 Feb 2023 22:31:06 +0000 (1 23:31 +0100)
last refreshWed, 1 May 2024 04:41:26 +0000 (1 06:41 +0200)
content tags
add:
README.md

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 originally 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:

Usage

See metastore.txt file, which is plain-text version of the manual page.

If you want to use metastore within git repository, then consider copying exemplary scripts from examples/hooks/ directory to hooks subdirectory in your git directory, and make them executable. You can also tune them if it's necessary. But. Before using, please read the warning in the comments of pre-commit hook. Mind that merge conflicts can only be solved manually, because metastore file is binary in its current form (there's a plan to fix it in future). Dump action can be really helpful in such cases.

File format

See FILEFORMAT file, which describes internals of metastore file.

Requirements

Download

You can obtain any released version (tarball and signature) from:

ftp://ftp.przemoc.net/pub/software/utils/metastore/
http://ftp.przemoc.net/pub/software/utils/metastore/

Signer should be the current maintainer, see AUTHORS file.

Alternatively, you can get it from:

https://github.com/przemoc/metastore/releases/

If you want to see the latest source code, then git clone following URL:

https://github.com/przemoc/metastore

Building

Simply run make from project's root directory.

Building out-of-tree is supported out-of-the-box. Go to your chosen build directory and run there:

$ make -f path/to/metastore/Makefile

Installation

Run make install. Default settings for installation are:

 PREFIX      = /usr/local

 EXECPREFIX  = ${PREFIX}
               (/usr/local)
 BINDIR      = ${EXECPREFIX}/bin
               (/usr/local/bin)
 DATAROOTDIR = ${PREFIX}/share
               (/usr/local/share)
 DOCDIR      = ${DATAROOTDIR}/doc/metastore
               (/usr/local/share/doc/metastore)
 MANDIR      = ${DATAROOTDIR}/man
               (/usr/local/share/man)

You can always change them, e.g.:

$ make install PREFIX=/usr

DESTDIR is also supported.

Reporting issues

Please use the issue tracker provided by GitHub to send bug reports or feature requests.

https://github.com/przemoc/metastore/issues

If you're sending a bug report, then please provide some basic info:

Mailing list

metastore has one official read-only mailing list dedicated to announcements like new version releases or other important updates.

You can subscribe it using following web page: https://www.freelists.org/list/metastore-announce

or by sending email to metastore-announce-request@freelists.org with subscribe in the Subject field.

Archive for metastore-announce mailing list is available at: https://www.freelists.org/archive/metastore-announce

License

The project is licensed under the terms of the GNU GPL v2 only license. See LICENSE.GPLv2 file for the full license text.

shortlog
2023-02-01 Przemyslaw... Fix UB: Make read_int() follow SEI CERT INT13-C and... master
2022-08-15 Przemyslaw... metastore.c: Fix wrong type in formatting string.
2022-05-21 Przemyslaw... NEWS: Mention mtime-related bugfixes.
2022-05-21 Przemyslaw... metastore.c: Do not skip nanoseconds when applying...
2022-05-21 Przemyslaw... NEWS: Mention "changing owner" bugfix.
2021-04-07 Przemyslaw... Fix "changing owner" message to show owner instead...
2021-04-07 Przemyslaw... NEWS: Mention normalize_path() bugfix.
2021-04-07 Przemyslaw... AUTHORS: Add Jürgen Bubeck.
2021-04-07 Jürgen BubeckFix path normalization for the case of CWD being the...
2018-09-08 Przemyslaw... Fix conversion specifiers in "Failed to {malloc,strdup...
2018-09-08 Przemyslaw... Add missing argument to "Failed to get metadata for...
2018-02-19 Przemyslaw... Support building with empty -DNO_XATTR= (equivalent...
2018-02-18 Przemyslaw... Makefile: Support NO_XATTR variable.
2018-02-18 Przemyslaw... Support building with no extended attributes support.
2018-02-18 Przemyslaw... utils.h: Introduce new verbosity level: MSG_WARNING.
2018-02-18 Przemyslaw... metastore.c: Version information cannot be suppressed.
...
tags
6 years ago v1.1.2 metastore v1.1.2
6 years ago v1.1.1a metastore v1.1.1a
6 years ago v1.1.1 metastore v1.1.1
8 years ago v1 metastore v1 - alleged version
8 years ago v1.1.0 metastore v1.1.0
heads
14 months ago master
forks
Cached version (451s old)
 aix 
metastore/portable.git Metastore with experimental AIX support,... mike.ralphson@gmail.com 15 years ago