我是第一次尝试化石,并在几分钟内搞砸了。我创建了一个存储库,然后显然在错误的文件夹等中运行了命令,最终删除了测试存储库,以便重新启动。(在某处我读到化石是“自包含的”,所以我想,删除存储库文件就可以了。删除化石存储库的正确方法是什么?)
现在,对于我尝试的几乎每个命令(包括“所有重建”),我都会收到错误“不是有效的存储库”以及已删除的存储库名称。
现在怎么办?
根据这篇文章:
仅当 Fossil 尝试测量存储库文件的大小并发现文件不存在或文件大小小于 1024 字节时,才会出现“不是有效的存储库”错误。它通过在文件上调用 stat() 并查看 stat.st_size 字段来做到这一点。
您似乎有丢失或被截断的 Fossil 文件。确保您实际上已经删除了存储库文件,并且您的文件系统实际上已经释放了文件句柄。Fossil 将一些存储库信息存储在~/.fossil中,因此您可能也需要将其删除。
rm ~/.fossil
在极端情况下,您可能需要在删除此文件后重新启动,以确保您使用的是全新的状态。
如果您仍然遇到问题,请尝试在不同的目录中创建一个新的存储库文件。例如:
cd /tmp
fossil init foo.fsl
fossil open foo.fsl
fossil close
如果一切顺利,您将不得不寻找存储库中潜伏的任何残余物。只要关闭文件句柄,就没有理由不能删除 foo.fsl (或其他任何东西)并将其称为好。
我刚刚在 Windows 上遇到了完全相同的问题。我似乎也找到了解决办法。这就是我所做的。我不能保证它是一个通用的解决方案,甚至是一个好的解决方案。在:
C:\Users\mywindowsusername\AppData\Local
有一个名为 _fossil 的文件和一个名为 VirtualStore 的目录/文件夹。我都删除了。这似乎已经删除了存储库的所有痕迹。请注意,与您的情况一样,存储库仍处于“打开”状态。
编辑:进一步试验后,VirtualStore 似乎是一个临时目录,在提交后会消失(一个 .fossil 文件将出现在目标目录中)。
我的错误是在根目录创建存储库并克隆:fossil 继续克隆整个 C 驱动器。可能是新手常见的错误。