lzip-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tarlz --diff broken


From: Antonio Diaz Diaz
Subject: Re: tarlz --diff broken
Date: Wed, 06 Sep 2023 18:13:28 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14

Devon Sean McCullough wrote:
The reason why I implemented --diff as I did is that the documentation
for GNU tar seems to imply that --directory is order sensitive only
for --create:

LOL, now to test GNU tar for the same confusion, and if present, report
that bug as well - as if I didn't have enough to do already!

As soon as I have the feature implemented in tarlz, I plan to report that the documentation for -C in GNU tar is incomplete. (Unless somebody else reports it first).

It seems that making -C order sensitive for anything except create and append is not so easy to do efficiently. The code for this in GNU tar is so intricate that I have needed to run it to check for sure for what operations -C is order sensitive. It will take me some time to figure out how to make it efficient without the complications of GNU tar.

P.S. I use # (time tarlz ...) \
| (pv --average-rate --bytes --eta --size $SIZE) \
| (cd /exfat-sd-card && split ...)
to make backups on pricey but handy SD Cards preformatted with EXFAT,
universally readable but lacking large file support, after # (time tarlz
--uncompressed ...) | wc -c for a quick $SIZE guesstimate. Any thoughts on
--multi-volume or split support?

Lacking large file support is a problem nowadays because files larger than 2 GiB are not uncommon. I plan to implement some sort of multivolume support in tarlz, but the way tarlz could split a tar file (putting at least one tar member in each lzip member) is not suitable for such file systems if large files are to be archived.

Have you tried to create the multivolume archive using lzip? It has the inconvenient that it does not keep the corresponcence between tar members and lzip members. But it has the advantage that it produces valid complete lzip files of a guaranteed maximum size. The command could be something like this:

(time tarlz --uncompressed ...) \
| (pv --average-rate --bytes --eta --size $SIZE) \
| (lzip -S 2GB -o /exfat-sd-card/volume_name -)

http://www.nongnu.org/lzip/manual/lzip_manual.html#Invoking-lzip
-S bytes
--volume-size=bytes
When compressing, and '-c' has not been also specified, split the compressed output into several volume files with names 'original_name00001.lz', 'original_name00002.lz', etc, and set the volume size limit to bytes. Input files are kept unchanged. Each volume is a complete, maybe multimember, lzip file. A small volume size may degrade compression ratio, so use it only when needed. Valid values range from 100 kB to 4 EiB.

See also examples 10, 11, and 12 about how to create and restore multivolume compressed tar archives at http://www.nongnu.org/lzip/manual/lzip_manual.html#Examples

Best regards,
Antonio.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]