Hi Lucas,
You are tell about advanced using of Mercurial, but I never use something beyond ~7 commands (st, pull -u, commit, push, add, addrem, revert). Cooker can compile specified Hg revision:
tux@slitaz:~$ cooker --help
. . . . .
rev|-r Cook packages of a specific revision.
But, if I understand correctly, it will re-cook ALL the packages (too many).
Revision number you can see in the Hg web interface http://hg.slitaz.org/wok/
Here you can see some very useful tools.
Search: http://hg.slitaz.org/wok/log?rev=postfix
File log: http://hg.slitaz.org/wok/log/c8f848a49bc1/postfix/receipt
See receipt with annotations (committer and revision to the left side on each line): http://hg.slitaz.org/wok/annotate/c8f848a49bc1/postfix/receipt
Maybe these tools are enough to you to track changes?
As for «jumping to the past», really, as Pascal stated, you need to «downgrade» not only the postfix, but all of its dependencies, and all dependencies of all dependencies, back to that day X.
I'm not sure you can do this without a chroot (you don't have one, right?).
I using chroot to compile packages. I don't want to my system became garbage dump.
- how to cook a package and its dependencies: normally cook will download dependencies (not cook them), is it sufficient to cook the dependencies first, to prevent cook from downloading them?
In the chroot with installed all you need to compile packages:
# cook postfix
You need to have /home/slitaz/wok/postfix/receipt in the chroot to have ability to cook postfix. Also you need "stuff" folder with stuff: in other words, copy "postfix" folder with all its content from "official" wok to your "chroot" wok.
All "build dependencies" are downloaded from the mirror. But if you compile some of them, "cook" will install yours packages instead of "official" mirrored packages. This way I tried yesterday to recompile "db", "db-dev" and "libdb" without static libs: "cook" used my packages when I re-cooked postfix. Next, when I gave up, I removed "db" and other folders from /home/slitaz/wok chroot, and removed "db" packages from /home/slitaz/packages to return to regular official "db" packages.