diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-11-11 19:59:49 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-11-11 19:59:49 +0000 |
commit | c07a9eee5040025d68121e41943929a96e0421c4 (patch) | |
tree | be0ea8ccc79e92ec29d68a0bdcdbbe6d16b1308a /pym/_emerge | |
parent | 7fda15ffe221c8a4946aba3a10cc3c068616d797 (diff) | |
download | portage-c07a9eee5040025d68121e41943929a96e0421c4.tar.gz portage-c07a9eee5040025d68121e41943929a96e0421c4.tar.bz2 portage-c07a9eee5040025d68121e41943929a96e0421c4.zip |
Make post_emerge() exit early if it detects that the vdb state hasn't changed.v2.2_rc14
This works by comparing a hash of the COUNTER values for all packages in the
vdb.
svn path=/main/trunk/; revision=11859
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/__init__.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index c5084ac7b..14a63a492 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -11236,6 +11236,12 @@ def post_emerge(root_config, myopts, mtimedb, retval): _flush_elog_mod_echo() + counter_hash = settings.get("PORTAGE_COUNTER_HASH") + if counter_hash is not None and \ + counter_hash == vardbapi._counter_hash(): + # If vdb state has not changed then there's nothing else to do. + sys.exit(retval) + vdb_path = os.path.join(target_root, portage.VDB_PATH) portage.util.ensure_dirs(vdb_path) vdb_lock = None @@ -13830,6 +13836,9 @@ def emerge_main(): mysettings = trees[myroot]["vartree"].settings mysettings.unlock() adjust_config(myopts, mysettings) + mysettings["PORTAGE_COUNTER_HASH"] = \ + trees[myroot]["vartree"].dbapi._counter_hash() + mysettings.backup_changes("PORTAGE_COUNTER_HASH") mysettings.lock() del myroot, mysettings |