Choose or make a simple tar archive to work with.
$ ls -sh t.tar
24K t.tar
$ go build ./c.go
vbatts@noyee ~ (master *) $ ./c t.tar
2015/03/11 22:09:20 two passes of gzipping "t.tar" match! (f6a2c0441248a179c8a4b3c4ab7a05b6bba002ba)
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name | sha1sum
303354da22a0062936fe8218d7ede539bc95aa4b -
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name | sha1sum
303354da22a0062936fe8218d7ede539bc95aa4b -
vbatts@noyee ~ (master *) $ ./c -fast t.tar
2015/03/11 22:09:30 two passes of gzipping "t.tar" match! (7e2803957206d91cb2e0c8229ef0047a58def31c)
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name --fast | sha1sum
afb1cfef4f435b5323fd876beaaa1011f0c5fece -
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name --fast | sha1sum
afb1cfef4f435b5323fd876beaaa1011f0c5fece -
vbatts@noyee ~ (master *) $ ./c -best t.tar
2015/03/11 22:09:26 two passes of gzipping "t.tar" match! (4c14fcefe569e6c9407cd00dd18dce1dfa4559cb)
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name --best | sha1sum
e0b2923d4f5ddaaaf42f71220226a4c269ab78ed -
vbatts@noyee ~ (master *) $ cat t.tar | gzip --no-name --best | sha1sum
e0b2923d4f5ddaaaf42f71220226a4c269ab78ed -
Consistent to themselves, but not to each other.
You'll see the magic headers are the same (1f 8b 08 00
), then they diverge.
$ ./c -out-suffix .1.gz ./t.tar
2015/03/11 22:22:39 two passes of gzipping "./t.tar" match! (f6a2c0441248a179c8a4b3c4ab7a05b6bba002ba)
see also "t.tar.1.gz"
$ cat ./t.tar | gzip --no-name > t.tar.2.gz
$ vimdiff -b ./t.tar.1.gz ./t.tar.2.gz
See the vimdiff.png
images below