Add a contributing doc + ncdu 1.16

This commit is contained in:
Yorhel 2021-07-02 13:44:45 +02:00
parent 2f07d8e8e0
commit ecb76f9797
27 changed files with 186 additions and 20 deletions

View file

@ -19,17 +19,18 @@ object is an array:
## Versioning
The `<majorver>` and `<minorver>` elements indicate the version of
the file format. These are numbers with accepted values in the range of `0
<= version <= 10000`. Major version must be `1`. Minor version is `0` for
ncdu 1.9 till 1.12, and `1` since ncdu 1.13 for the addition of the extended
mode. The major version should increase if backwards-incompatible changes are
made (preferably never), the minor version can be increased to indicate
additions to the existing format.
the file format. These are numbers with accepted values in the range of
`0 <= version <= 10000`. Major version must be `1`. Minor version is `0` for
ncdu 1.9 till 1.12, `1` for ncdu 1.13 till 1.15.2 for the addition of the
extended mode and `2` since ncdu 1.16 for the addition of the `nlink` field.
The major version should increase if backwards-incompatible changes are made
(preferably never), the minor version can be increased to indicate additions to
the existing format.
## Metadata
The `<metadata>` element is a JSON object holding whatever (short) metadata
you'd want. This block is currently (1.9-1.14.2) ignored by ncdu when
you'd want. This block is currently (1.9-1.16) ignored by ncdu when
importing, but it writes out the following keys when exporting:
progname
@ -94,15 +95,18 @@ dev
ino
: Number. Inode number as reported by `lstat().st_ino`. Together with the Device
ID this uniquely identifies a file in this dump. In the case of hard links, two
objects may appear with the same (`dev`,`ino`) combination. A value of 0 is
assumed if this field is absent. This is currently (ncdu 1.9-1.14.2) not a
problem as long as the `hlnkc` field is false, otherwise it will consider
everything with the same `dev` and empty `ino` values as a single hardlinked
file. Accepted values are in the range of `0 <= ino < 2^64`.
objects may appear with the same (`dev`,`ino`) combination. As of ncdu
1.16, this field is only exported if `st_nlink > 1`. A value of 0 is
assumed if this field is absent, which is fine as long as the `hlnkc` field
is false and `nlink` is 1, otherwise everything with the same `dev` and
empty `ino` values will be considered as a single hardlinked file.
Accepted values are in the range of `0 <= ino < 2^64`.
hlnkc
: Boolean. `true` if this is a file with `lstat().st_nlink > 1`. If absent,
`false` is assumed.
: Boolean. `true` if this is a file with `lstat().st_nlink > 1`. This field
redundant if the `nlink` field is also set, but is still included in new
dumps for backwards compatibility with ncdu versions prior to 1.16. If both
this and the `nlink` fields are absent, `false` is assumed.
read\_error
: Boolean. `true` if something went wrong while reading this entry. I.e. the
@ -139,6 +143,12 @@ excluded
interpreted to be equivalent to "pattern". This field should be absent if the
item has not been excluded from the calculation.
nlink
: (since ncdu 1.16) Number, the value of `lstat().st_nlink`. If this field is
present and has a value larger than 1, this file is considered for hardlink
counting. Accepted values are in the range `1 <= nlink < 2^32`. If absent,
`1` is assumed.
notreg
: Boolean. This is `true` if neither S\_ISREG() nor S\_ISDIR() evaluates to true.
I.e. this is a symlink, character device, block device, FIFO, socket, or
@ -166,7 +176,9 @@ mode
mtime
: Number, last modification time as a UNIX timestamp. Accepted range:
`0 <= mtime < 2^64`.
`0 <= mtime < 2^64`. As of ncdu 1.16, this number may also include an
(infinite precision) decimal part for fractional seconds, though the
decimal part is (currently) discarded during import.
## Miscellaneous notes