# HG changeset patch # User Kristian H?gsberg # Date 1188844711 14400 # Node ID 38be5ee4d23189afbc567f8054f20f5e7cc8f149 # Parent e15eb9ef9c28f2f408db489ba8029fe7e3cbeaf2 Add TODO and .gitignore. diff -r e15eb9ef9c28 -r 38be5ee4d231 .gitignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Mon Sep 03 14:38:31 2007 -0400 @@ -0,0 +1,7 @@ +.gitignore +*.o +*~ +*.repo +razor +pkgs +set diff -r e15eb9ef9c28 -r 38be5ee4d231 TODO --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TODO Mon Sep 03 14:38:31 2007 -0400 @@ -0,0 +1,37 @@ +- pkg manifest is list of files + + /usr/bin/bash 1321321372198798 + + plus provides, requires and version? + +- keep history of installed packages/journal of package transaction, + so we can roll back to yesterday, or see what got installed in the + latest yum update. + +- we build a cache of the currently installed set to service + dependency inquiries fast: + + map from property to pkg (as hash) providing it + map from property to pkgs requiring it + map from pkg name to manifest + map from string to string pool index + + no implicit provides? not even pkgname? + +- properties are strings, stored in a string table + +- on disk maps are binary files of (string table index, hash) pairs + +- at run time, we mmap the map, and keep changes in memory in a splay + tree or similar. if searching the splay tree fails we punt to the + mmap. once the transaction is done, we merge the map and the splay + tree and write it back out. + +- the on-disk string pool is sorted and we keep a list of indices into + the string pool in sorted order so we can bsearch the list with a + string to get its string pool index. maybe a hash table is better, + less I/O as we will expect to find the string within the block we + look up with the hash function. + +- signed pkgs +- gzip pkg xml files somehow?