From 588b3e780fef14631f7ec5c369bff07efdc5e013 Mon Sep 17 00:00:00 2001 From: Adam Spragg Date: Tue, 17 May 2022 10:44:27 +0100 Subject: Add documentation for new Format 1 --- metastore.txt | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'metastore.txt') diff --git a/metastore.txt b/metastore.txt index f3d7d55..39fdf5e 100644 --- a/metastore.txt +++ b/metastore.txt @@ -87,9 +87,40 @@ FORMATS 0 The original and default format, it is a compact binary repre‐ sentation of the file metadata stored. + 1 This format is a tab-separated, line-based text representation + of the file metadata stored. Is is not as compact as Format 0, + but is designed to integrate with text-based version control + mechanisms, like diffs, patches, merges, and conflicts. + + After the signature/version header line, the format is: + + [ ...] + + Where owner and group are names, not ids, mode is the octal rep‐ + resentation of the 16-bit "file type and mode" field described + in inode(7), and mtime is the ISO-8601 extended format represen‐ + tation of the last-modified time in UTC, with nanosecond preci‐ + sion. + + Strings are URL-encoded, and all characters from 0x00 to 0x20 + (inclusive), 0x25 (%) and 0x7F must be encoded. + + As mentioned above, the format is primarily designed to be com‐ + patible with version control tools. It is secondarily designed + to be mostly-readable by humans like you, because humans use + those tools. It is not specifically designed to be written by + humans. In the case of merge conflicts that require intervention + it is recommended that you pick one existing version of an en‐ + try, rather than trying to edit one of your own with aspects of + both. (Or manually reset the file permissions, and re-generate + the metainfo file.) Particularly, because bytes >= 0x80 are not + URL-encoded, binary xattr data probably won't be UTF-8 clean, so + you may have a hard time doing anything other than deleting un‐ + wanted lines with many editors. + AUTHORS - metastore was created by David Härdeman in 2007-2008. Now it is main‐ - tained by Przemysław Pawełczyk. All source code contributors are + metastore was created by David Härdeman in 2007-2008. Now it is main‐ + tained by Przemysław Pawełczyk. All source code contributors are listed in the AUTHORS file. -- cgit v1.2.1