【发布时间】: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 根本没有提交。 (还有一个问题:我现在应该改变我的问题,还是提出一个新问题?:)
-
我相信当一个变更集删除一个文件,而另一个变更该文件时,您应该会得到一个问题“另一方已删除,此文件已更改,您想做什么”。但是,我不确定这是否是未提交更改的情况。关于这个问题:不知道,我不是专家;-)