Julia的软件包管理器Pkg.jl
很棒,但是有时候它似乎保持着Project.toml
或Manifest.toml
中条目之外的状态,我想知道这是怎么来的/如何防止这种情况的。
最近,我更改了以前在标签master
上使用的一个依赖项(通过add DESPOT#master
以打包方式添加)并想在dev
中使用它的依赖项时遇到了此问题。模式(例如,在打包模式下运行dev ARDESOT
)。但是,该软件包没有以某种方式更改为开发模式,因此我尝试将其删除。删除后,它已从Project.toml
和Manifest.toml
中消失(这是预期的行为)。但是,重新启动REPL并运行Pkg.status()
仍显示已删除软件包的条目:
因此,我得出结论,它拥有Manifest.toml
和Project.toml
之后的状态。此信息存储在哪里?我可以强制重置吗?运行Pkg
垃圾收集器无法解决问题。现在我已经用多个软件包发生了这种情况,这只是最近的一个例子。
答案 0 :(得分:1)
我认为这只是对Pkg.status()
的工作方式感到困惑。我猜您的项目位于git存储库中?在这种情况下,Pkg.status()
显示差异与该存储库中的最后一次提交,而不是绝对状态。
但是,重新启动REPL并运行Pkg.status()仍显示已删除软件包的条目
请注意,它显示为已删除,请注意红色文本,并在包名称前面加上-
。这意味着,与您回购的最后一次提交相比,此软件包已被删除。
此信息存储在哪里?
在最后一次git commit中。