如何防止Pkg.jl保持Project.toml和Manifest.toml以外的状态

时间:2019-05-08 23:41:17

标签: julia

Julia的软件包管理器Pkg.jl很棒,但是有时候它似乎保持着Project.tomlManifest.toml中条目之外的状态,我想知道这是怎么来的/如何防止这种情况的。

最近,我更改了以前在标签master上使用的一个依赖项(通过add DESPOT#master以打包方式添加)并想在dev中使用它的依赖项时遇到了此问题。模式(例如,在打包模式下运行dev ARDESOT)。但是,该软件包没有以某种方式更改为开发模式,因此我尝试将其删除。删除后,它已从Project.tomlManifest.toml中消失(这是预期的行为)。但是,重新启动REPL并运行Pkg.status()仍显示已删除软件包的条目: enter image description here enter image description here

因此,我得出结论,它拥有Manifest.tomlProject.toml之后的状态。此信息存储在哪里?我可以强制重置吗?运行Pkg垃圾收集器无法解决问题。现在我已经用多个软件包发生了这种情况,这只是最近的一个例子。

1 个答案:

答案 0 :(得分:1)

我认为这只是对Pkg.status()的工作方式感到困惑。我猜您的项目位于git存储库中?在这种情况下,Pkg.status()显示差异与该存储库中的最后一次提交,而不是绝对状态。

  

但是,重新启动REPL并运行Pkg.status()仍显示已删除软件包的条目

请注意,它显示为已删除,请注意红色文本,并在包名称前面加上-。这意味着,与您回购的最后一次提交相比,此软件包已被删除。

  

此信息存储在哪里?

在最后一次git commit中。