ncdu 1.21 + 2.7

This commit is contained in:
Yorhel 2024-11-19 15:02:22 +01:00
parent 68bf70e0eb
commit 76b8f42f1d
32 changed files with 171 additions and 24 deletions

View file

@ -17,6 +17,12 @@ respective issue tracker or send a mail to
# Entries
`2024-11-31` - NocFA
: Thanks for your incredible software, NCDU has been in my sysadmin toolkit for years.
Appreciate incredible FOSS developers like you making the world a better place, one piece of quality software at a time.
If I find a donate button somewhere in your pages, I shall be abusively clicking on it.
`2024-10-10` - Hamster
: Hey there, use the App since years. Really enjoy it, many thanks!

View file

@ -10,6 +10,16 @@ crap I've written over the years. :)
<!-- These announcements are parsed by mkfeed.pl, see that file for formatting -->
## Announcements <a href="/feed.atom"><img src="/img/feed_icon.png" alt="Atom feed"></a>
`2024-11-19` - ncdu 2.7 released <!-- tags: ncdu, link: /ncdu -->
: Adds support for transparent compression for JSON import and export, tilde
expansion in the config file, new `--export-block-size` and `--compress`
flags and a few minor bug fixes. [Homepage](/ncdu) -
[Changelog](/ncdu/changes2).
`2024-11-19` - ncdu 1.21 released <!-- tags: ncdu, link: /ncdu -->
: Adds support for tilde expansion in the config file and backports a few
fixes from the 2.x branch. [Homepage](/ncdu) - [Changelog](/ncdu/changes).
`2024-10-22` - nginx-confgen 2.2 released <!-- tags: nginx-confgen, link: /nginx-confgen -->
: Adds support for `$#array` syntax and fixes a minor bug.
[Homepage](/nginx-confgen) - [Changelog](/nginx-confgen/changes).

View file

@ -36,13 +36,13 @@ Colors
Static binaries
: Convenient static binaries for Linux. Download, extract and run; no
compilation or installation necessary:
[x86](/download/ncdu-2.6-linux-x86.tar.gz) -
[x86_64](/download/ncdu-2.6-linux-x86_64.tar.gz) -
[ARM](/download/ncdu-2.6-linux-arm.tar.gz) -
[AArch64](/download/ncdu-2.6-linux-aarch64.tar.gz).
[x86](/download/ncdu-2.7-linux-x86.tar.gz) -
[x86_64](/download/ncdu-2.7-linux-x86_64.tar.gz) -
[ARM](/download/ncdu-2.7-linux-arm.tar.gz) -
[AArch64](/download/ncdu-2.7-linux-aarch64.tar.gz).
Zig version (stable)
: 2.6 (2024-09-27 - [ncdu-2.6.tar.gz](/download/ncdu-2.6.tar.gz) - [changes](/ncdu/changes2))
: 2.7 (2024-11-19 - [ncdu-2.7.tar.gz](/download/ncdu-2.7.tar.gz) - [changes](/ncdu/changes2))
Requires Zig 0.12 or 0.13.
@ -51,7 +51,7 @@ Zig version (stable)
need a more stable compilation environment.
C version (LTS)
: 1.20 (2024-04-21 - [ncdu-1.20.tar.gz](/download/ncdu-1.20.tar.gz) - [changes](/ncdu/changes))
: 1.21 (2024-11-19 - [ncdu-1.21.tar.gz](/download/ncdu-1.21.tar.gz) - [changes](/ncdu/changes))
Lags a bit behind on the 2.x version in terms of features and performance,
but is still being maintained and perfectly usable.

View file

@ -196,6 +196,10 @@ prev
absent if this is the first item in a directory. This field forms a
singly-linked list of all items in a directory.
BUG: ncdu 2.6 incorrectly outputs a root item with prev=0. The root item is
not supposed to be part of a directory and this field is properly absent in
later versions.
**Fields for type >= 0**
asize
@ -350,15 +354,14 @@ Data block size
Testing
: If you're implementing a custom writer for this format, make sure to check
out the
[ncdubinexp.pl](https://code.blicky.net/yorhel/ncdu/src/ncdubinexp.pl)
script in the git repository. Ncdu only reads the parts of a file that it
actually needs, so passing a file to ncdu is no guarantee that it is
well-formed. The ncdubinexp.pl script is more thorough in validating file
correctness but misses a few invariants that ncdu does check for, so
the best way to verify a file is to run both:
out the 'validate' subcommand of
[ncdutils](https://code.blicky.net/yorhel/ncdutils). Ncdu only reads the
parts of a file that it actually needs, so passing a file to ncdu is no
guarantee that it is well-formed. ncdutils is more thorough:
```
ncdu -o/dev/null -f file.ncdu # Read entire tree and export to /dev/null
ncdubinfmt.pl <file.ncdu # Read and verify the entire file
ncdutils validate file.ncdu
```
Passing `--list-blocks` and `--list-items` may also be useful for
diagnostics.

View file

@ -126,9 +126,9 @@ excluded
`"otherfs"` or `"othfs"`
: If the item is on a different device/filesystem. Every version of ncdu
versions recognizes `"otherfs"` when importing, but versions 1.20 or
2.4 and earlier wrote `"othfs"` when exporting. Later versions
recognize both strings and output `"otherfs"`.
versions recognizes `"otherfs"` when importing, but versions before
1.21 or 2.5 wrote `"othfs"` when exporting. Later versions recognize
both strings and output `"otherfs"`.
`"kernfs"`
: If the item has been excluded with `--exclude-kernfs` (since ncdu 1.15).
@ -187,11 +187,11 @@ mtime
As mentioned above, file/directory names are **not** converted to any specific
encoding when exporting. If you want the exported info dump to be valid JSON
(and thus valid UTF-8), you'll have to ensure that you have either no non-UTF-8
filenames in your filesystem, or you should process the dump through a
conversion utility such as `iconv`. When browsing an imported file with ncdu,
you'll usually want to ensure that the filenames are in the same encoding as
what your terminal is expecting. The browsing interface may look garbled or
(and thus valid UTF-8), you'll have to ensure that either all filenames in your
directory tree are valid UTF-8 or you should process the dump through a
conversion utility such as `iconv`. When browsing an imported file with ncdu
1.x, you'll usually want to ensure that the filenames are in the same encoding
as what your terminal is expecting. The browsing interface may look garbled or
otherwise ugly if that's not the case.
Another important thing to keep in mind is that an export can be fairly large.
@ -201,6 +201,11 @@ that. For example, prefer the use of a stream-based JSON parser over a JSON
library that reads the entire file in a single generic data structure, and only
keep the minimum amount of data that you care about in memory.
[BUG#245](https://code.blicky.net/yorhel/ncdu/issues/245): Ncdu versions before
1.21 or 2.7 did not correctly read escaped UTF-16 surrogate pairs. For
portability with these versions, unicode points above U+FFFF should be encoded
as UTF-8 instead. Ncdu itself never outputs UTF-16 surrogate pairs.
## Example Export
Here's a simple example export that displays the basic structure of the format.