summaryrefslogtreecommitdiff
path: root/src/metaentry.c
AgeCommit message (Collapse)Author
2022-05-24Make "--no-mtime" apply to "dump" actionAdam Spragg
2022-05-24Add ability to not save mtime in metadata filesAdam Spragg
If you're storing metadata in a version control system with multiple branches, mtime differences are going to produce a whole bunch of conflicts that you likely don't care about. This allows you to not save mtime and avoid those. Note that we use a sentinel value of -1 for the mentry `mtimensec` field to indicate this in the data, as all values of `mtime` are theoretically valid, but `mtimensec` must always be between 0 and 999,999,999 in the real world. I'm not 100% sure about the mechanism for selecting this feature. The legacy behaviour for metastore was to save mtimes in the metadata files, but ignore them for compare/apply by default, with a `--mtime` option to use the mtime data. Keeping the legacy behaviour for backwards compatibility, but adding a `--no-mtime` option to ignore mtimes when saving felt like a reasonable way of making this happen, but something about it doesn't feel great. Maybe I just didn't figure out how to make the documentation clear enough. ¯\_(ツ)_/¯
2022-05-18Sort entries in Format 1 files by path, ASCIIbetically.Adam Spragg
This ensures that the files are stable, and not subject to the order in which the OS returns directory entries. This should prevent unnecessary changes, and therefore unnecessary merge conflicts.
2022-05-18Add ability to read Format 1 metadata filesAdam Spragg
2022-05-18Add ability to write Format 1 metadata filesAdam Spragg
2022-05-18Add -r/--format option to pick the format to save asAdam Spragg
Only version 0 is supported here.
2022-05-18Separate format-specific read/write logic into own functionsAdam Spragg
2022-05-18Reuse already calculated end-of-buffer pointerAdam Spragg
2022-05-18Make buffers that are read from `const`-correctAdam Spragg
2022-05-18Label file Format 0 explicitly as Format 0Adam Spragg
2021-04-07Fix path normalization for the case of CWD being the root directory (/).Jürgen Bubeck
Previously metastore would fail if running from / and paths were given: $ pwd / $ metastore -d bin lstat failed for .bin: No such file or directory Now it works properly: $ metastore -d bin | head -1 lrwxrwxrwx root root 2018-08-17 16:31:23.120322532 +0200 ./bin/hostname Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
2018-02-19Support building with empty -DNO_XATTR= (equivalent to -DNO_XATTR=0).Przemyslaw Pawelczyk
2018-02-19Support building with no extended attributes support.Przemyslaw Pawelczyk
Support building with no extended attributes support when NO_XATTR macro is predefined to non-0 value (e.g. put -DNO_XATTR in CFLAGS).
2018-02-03Update copyright notices.Przemyslaw Pawelczyk
2018-02-03Add SPDX License Identifier to all source files.Przemyslaw Pawelczyk
The Software Package Data Exchange (SPDX) is a good initiative, it has matured over time and deserves accelerated adoption in open-source. https://spdx.org/learn https://spdx.org/using-spdx https://spdx.org/license-list
2018-02-03Slightly reformat and modernize GPLv2 only license notices.Przemyslaw Pawelczyk
Reformat second paragraph for better look. It had awkward line wrap. Modernize third paragraph. No need to send letters to FSF in Boston.
2018-01-23Fix sparse warning: symbol was not declared. Should it be static?Przemyslaw Pawelczyk
Declare file-scope objects or functions that do not need external linkage as static.
2018-01-23Fix sparse warnings: non-ANSI function declaration.Przemyslaw Pawelczyk
Explicitly specify void when a function accepts no arguments.
2018-01-03metaentry.c: Define PATH_MAX if it's undefined.Przemyslaw Pawelczyk
PATH_MAX is not guaranteed by POSIX to be present and some systems, like GNU Hurd, indeed does not define it. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html https://www.gnu.org/software/hurd/hurd/porting/guidelines.html For now let's define PATH_MAX as 4096 (if it is not already defined), because that's how Linux defines it and it seems quite reasonable. In future dependence on PATH_MAX can be removed.
2017-11-24metaentry.c: Fix underallocation for xattr_lvalues.Przemyslaw Pawelczyk
Wrong type has been used for calculating size of requested memory. Underallocation happened in mentries_fromfile() code path if sizeof(ssize_t) > sizeof(int), which is true on 64-bit platforms. Reading metadata file with extended attributes entries led to corruption of metadata represented in memory on such platforms, so applying could led to corruption of metadata on disk too. Reported-by: Uros Juvan <asmpro@gmail.com>
2016-02-05Use C99 predefined identifier __func__ instead of non-std __FUNCTION__.Przemyslaw Pawelczyk
2016-02-01Improve code formatting and convert `unsigned int` to `unsigned`.Przemyslaw Pawelczyk
2016-02-01metaentry.c: Do not compare signed and unsigned integer.Przemyslaw Pawelczyk
2016-01-12metaentry.c: Fix meta entry handling in case of xattr errors.Przemyslaw Pawelczyk
getxattr() call can fail in mentry_create(), so NULL-initialize mentry->xattr_values[i] and update mentry->xattrs upon error, so there is no attempt in mentry_free() to free unitialized xattr_names[i] and xattr_values[i] pointers. Fixes #38.
2016-01-09metaentry.c: Include <bsd/string.h> only on non-BSD platforms.Przemyslaw Pawelczyk
2015-09-13Move source files to src/ directory.Przemyslaw Pawelczyk
As a bonus you can build out-of-tree now via make -f. It's part of the work related to issue #22.