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 --- man1/metastore.1 | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'man1/metastore.1') diff --git a/man1/metastore.1 b/man1/metastore.1 index d788161..1e01daf 100644 --- a/man1/metastore.1 +++ b/man1/metastore.1 @@ -83,6 +83,46 @@ ensure that the stored metadata is interpreted correctly. .B 0 The original and default format, it is a compact binary representation of the file metadata stored. +.TP +.B 1 +This format is a tab-separated, line-based text representation of the file +metadata stored. Is is not as compact as Format \fB0\fR, 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: + +.EX + [ ...] +.EE + +Where +.I owner +and +.I group +are names, not ids, +.I mode +is the octal representation of the 16-bit "file type and mode" field described +in +.BR inode (7), +and +.I mtime +is the ISO-8601 extended format representation of the last-modified time in UTC, +with nanosecond precision. + +Strings are URL-encoded, and all characters from 0x00 to 0x20 (inclusive), 0x25 +(%) and 0x7F \fBmust\fR be encoded. + +As mentioned above, the format is primarily designed to be compatible with +version control tools. It is secondarily designed to be mostly-readable by +humans like you, because humans use those tools. It is \fInot\fR 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 entry, +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 +unwanted lines with many editors. .\" .SH AUTHORS metastore was created by David Härdeman in 2007-2008. -- cgit v1.2.1