【问题标题】:Mercurial tracking file removalMercurial 跟踪文件删除
【发布时间】:2015-03-27 10:53:55
【问题描述】:

我可以在 hg 中说“删除这个文件是这个提交的一部分”吗?我知道hg rm,但它似乎只是删除跟踪文件,而不是跟踪它的删除

具体来说,如果我在两个地方(A 和 B)有一个包含文件 t 的存储库,在 A 处说 hg rm t,然后提交和推送,在 B 处说 hg pull -u,文件 t将在那里。 :-(

我无法想象实际上有人想要这种行为,但这不是问题所在。问题是:我可以通过hg 以某种方式同步工作树,还是只同步现有 文件?

【问题讨论】:

  • 我在本地看不到这种行为:如果你更新到 B 中的相同变更集,'t' 应该消失了。你确定你已经更新到 B 中的正确版本了吗?
  • 嗯,你是对的。可能发生的情况是 t 在 B 处有一些“未提交的更改”(实际上它只是在编辑器中打开和关闭,但可能足以将其标记为已修改)。尽管如此,我的困惑仍然存在。 hg 不应该警告我“您有未提交的更改”而不是默默地丢弃已提交的删除吗? “已删除”和“变更集 C”的合并不是“变更集 C”。特别是如果 C 根本没有提交。 (还有一个问题:我现在应该改变我的问题,还是提出一个新问题?:)
  • 我相信当一个变更集删除一个文件,而另一个变更该文件时,您应该会得到一个问题“另一方已删除,此文件已更改,您想做什么”。但是,我不确定这是否是未提交更改的情况。关于这个问题:不知道,我不是专家;-)

标签: mercurial sync rm


【解决方案1】:

如果您拉取,已删除的文件将在您的历史记录中删除,但不会在您的源中删除,本地。您必须为此更新(hg up)。

如果您修改了此文件,但没有提交,Mercurial 会告诉您有未提交的更改,它将无法更新。

一旦提交,被删除的文件将与修改后的文件发生冲突,系统会询问你是保留修改后的文件,还是删除它。

【讨论】:

  • > 如果你修改了这个文件,但没有提交它,Mercurial 会告诉你你有未提交的更改,它将无法更新。 hg pull -u 时会发生这种情况吗?因为我的经验与此不符。 :-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2020-03-21
  • 1970-01-01
  • 2010-11-15
  • 2014-08-09
相关资源
最近更新 更多