for base in commit:
new = '%s.new' % base
OS.rename(new, base)
+
+ ## Remove files in the base-dir which don't correspond to ones we just
+ ## committed
+ allow = {}
+ basedir = conf['base-dir']
+ bdl = len(basedir)
+ for base in commit:
+ if base.startswith(basedir): allow[base[bdl:]] = 1
+ for found in OS.listdir(basedir):
+ if found not in allow: OS.remove(OS.path.join(basedir, found))
finally:
OS.chdir(cwd)
rmtree('tmp')
OS.chdir(cwd)
if OS.path.exists('repos'): OS.rename('repos', 'repos.old')
OS.rename('tmp/repos', 'repos')
- if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf'):
+ if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf', False):
moan('configuration file changed: recommend running another update')
OS.rename('tmp/tripe-keys.conf', 'tripe-keys.conf')
rmtree('repos.old')