rlm@1: The point of this system to to rlm@1: rlm@1: 1. Determine the provenence of every file on my system. rlm@1: 2. Always have an "undo" button. rlm@1: rlm@1: These criteria have evolved from my frustrations rlm@1: with my previous LFS system. rlm@1: rlm@1: rlm@1: User expreience: rlm@1: rlm@1: Suppose I want to install emacs. rlm@1: rlm@1: here's a sample terminal session rlm@1: rlm@1: $ pkg emacs "a text editor" rlm@1: > creating user emacs. rlm@1: > cd /pkg/emacs rlm@1: rlm@1: $ wget http://emacs.com/emacs.tar.bz2 rlm@1: > downloaded emacs.tar.bz2 rlm@1: rlm@1: $ unp emacs.tar.bz2; cd emacs; configure; rlm@1: make install; rlm@1: > install stuff.. rlm@1: rlm@1: $ hg st rlm@1: > a bunch of files are added rlm@1: rlm@1: 1. Say I don't want emacs after all. rlm@1: $ hg purge; hg revert --all rlm@1: rlm@1: 2. Complete emacs instilation rlm@1: > hg addr; hg commit -m "emacs." rlm@1: rlm@1: (this commits as the emacs user) rlm@1: rlm@1: 3. can examine provenance of information rlm@2: $ pkg-report emacs rlm@1: > package emacs owns the following files: rlm@1: > emacs rlm@1: > man/emacs rlm@1: > .... rlm@1: rlm@1: 4. see all the commits that the "emacs" user made. rlm@1: $ pkg-history emacs rlm@1: > rlm@1: rlm@1: 5. remove a package in its entirety rlm@1: $ pkg-remove emacs rlm@1: > removed rlm@1: > rlm@1: rlm@12: the root-level mercurial repository is owned by rlm@12: hg-commiter:hg-wheel, where hg-committer is the rlm@12: user for which the "hg" alise for each package rlm@12: user is setuid. rlm@1: rlm@12: high level users can be added to hg-heel to rlm@12: administer the root-level mercurial repsitory, rlm@12: which will allow them to do things like hg log, hg rlm@12: purge, etc. rlm@1: