朱莉娅的包管理器Pkg.jl很棒,但有时它似乎保存了Project.toml或Manifest.toml中的条目以外的状态,我想知道这是怎么回事/如何防止这种情况发生。
最近,我在更改以前在标记master上使用的依赖项(通过add DESPOT#master添加到包模式)并希望在dev模式(例如在包模式运行dev ARDESOT中)中使用它时,遇到了这个问题。但是,不知怎么的,包没有更改为dev模式,所以我尝试删除它。删除它之后,它就离开了Project.toml和Manifest.toml (这是预期的行为)。但是,重新启动REPL并运行Pkg.status()仍然显示删除包的条目:


因此,我得出结论,它的状态超出了Manifest.toml和Project.toml。这些信息存储在哪里?我能强迫它以某种方式复位吗?运行Pkg垃圾收集器并不能做到这一点。这已经发生在我的多个包现在,这只是最近的例子。
发布于 2019-05-09 12:00:55
我认为这只是对Pkg.status()工作方式的混淆。我猜你的项目是用git存储库定位的吧?在这种情况下,Pkg.status()显示的是该存储库中的diff与最后一次提交,而不是绝对状态。
但是,重新启动REPL并运行Pkg.status()仍然显示删除包的条目
请注意,它显示为已删除,请注意红色文本,以及包名前面的-。这意味着,与回购的最后一次提交相比,这个包已经被删除。
这些信息存储在哪里?
在最后一次提交。
https://stackoverflow.com/questions/56050364
复制相似问题