diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-05-31 07:15:18 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-05-31 07:15:18 +0000 |
commit | 0a5d2bcbc71998e595969f836d611a57e8061b37 (patch) | |
tree | 9c5c5261d2d4c4b36c991ee4d7fbb50e81db9e3d | |
parent | 7255572e21e1e017266da3888648c172a63870f7 (diff) | |
download | portage-0a5d2bcbc71998e595969f836d611a57e8061b37.tar.gz portage-0a5d2bcbc71998e595969f836d611a57e8061b37.tar.bz2 portage-0a5d2bcbc71998e595969f836d611a57e8061b37.zip |
Allow dbapi.aux_update() to prune empty metadata values from storage.
svn path=/main/trunk/; revision=6689
-rw-r--r-- | pym/portage/dbapi/bintree.py | 3 | ||||
-rw-r--r-- | pym/portage/dbapi/vartree.py | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index b8a24e515..94704e455 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -77,6 +77,9 @@ class bindbapi(fakedbapi): mytbz2 = portage.xpak.tbz2(tbz2path) mydata = mytbz2.get_data() mydata.update(values) + for k, v in mydata.items(): + if not v: + del mydata[k] mytbz2.recompose_mem(portage.xpak.xpak_mem(mydata)) def cp_list(self, *pargs, **kwargs): diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 23676c91b..165e04f1e 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -551,7 +551,13 @@ class vardbapi(dbapi): if not mylink.exists(): raise KeyError(cpv) for k, v in values.iteritems(): - mylink.setfile(k, v) + if v: + mylink.setfile(k, v) + else: + try: + os.unlink(os.path.join(self.getpath(cpv), k)) + except EnvironmentError: + pass def counter_tick(self, myroot, mycpv=None): return self.counter_tick_core(myroot, incrementing=1, mycpv=mycpv) |