3

我正在测试打包机制,因此设置pack-days为零,通过 ZMI 添加和删除对象以生成一些历史记录,然后执行zeopack,到目前为止效果很好。

但是,如果自上次打包以来没有任何事务,并且触发了另一个新打包,则 Data.fs.old 被删除/消失,为什么?

分别是哪些代码行正在这样做?以某种方式找不到它。

4

1 回答 1

3

启动包总是会删除.old文件。

当没有要打包的东西时,不会在其位置创建新文件。 .old

FileStorage.pack()方法.old它在获取打包锁定后立即删除现有文件。

逻辑是(删除了一些缩进和中间代码):

oldpath = self._file_name + ".old"
if os.path.exists(oldpath):
    os.remove(oldpath)

# collect pack info
pack_result = self.packer(self, referencesf, stop, gc)

if pack_result is None:
    return

os.rename(self._file_name, oldpath)
于 2013-09-16T07:53:09.083 回答