【问题标题】:"hg purge" deleted tracked file“hg purge”删除了跟踪文件
【发布时间】:2020-03-21 04:49:24
【问题描述】:

我知道这很奇怪,但我正在更新我的测试用例并考虑从测试用例中删除所有未跟踪的文件,因此运行 hg purge,但除了删除未跟踪的文件之外,它还删除了 230 多个测试用例的跟踪文件。

有什么方法可以恢复到原始文件或者我可以取回文件吗?这些文件在服务器上,所以我可以通过从服务器中提取它来获取它,但这没有帮助,因为我必须再次更新它。

【问题讨论】:

  • 它绝对不应该删除跟踪的文件,无论是否在工作目录中修改。请注意,“跟踪”取决于您的提交。
  • 我运行了几个脚本(旧脚本),它一定是搞砸了几个测试用例。否则为什么它只会删除 2700 个测试用例中的 230 个。无论如何,谢谢!

标签: mercurial purge mercurial-extension


【解决方案1】:

如果您修改了工作目录(通过任何方式“修改”),您可以轻松放弃更改并返回到干净的状态“.”-changeset 使用

hg up -C -r .

是的,@torek 的后续行动,hg purge 必须不接触跟踪的文件,因为根据它的 wiki

扩展清除所有未被跟踪的文件和目录 当前存储库中的 Mercurial

但我可以看到一种可能的情况,为什么会发生这种情况。描述中的下一段阐明了主题

使用 --all 选项,它还将删除被忽略的文件

(以及下面的一些纯粹的猜测......)

如果您在 .hgignore 中有文件并且将这些文件手动添加到存储库中(您可以 hg add 忽略文件),清除 可能 em> 可能会删除这些文件。

回到良好的回购状态后,您可以(相当容易)验证我的想法

  1. 安装|添加hg-isignored extension(Bitbucket,由于来自 HG 的 BB-refugee,将很快消失)并检查版本的无知状态,但被扩展文件(至少一部分)删除 - 你会看到结果和使用的模式来自.hgignore
  2. 尝试(再次)hg purge --print 以获取已清除文件的列表。如果列表(已删除和忽略的版本文件)将有交叉点,那么您将得到问题“为什么?”的答案

我看不出任何其他这种扩展行为的原因

【讨论】:

  • 必须手动更新。因为有超过 2000 个文件没有被删除/恢复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 2020-11-18
  • 1970-01-01
  • 2014-08-09
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多