取消跟踪文件而不从您和其他人的文件系统中删除它们?



我使用hg forget <files>来取消跟踪一些文件,而不会像使用hg rm <files>那样从文件系统中删除它们。我提交了更改并运行hg status,如预期的那样将这些文件列为未跟踪的? <files>。然后我将变更集推送到我们的远程存储库,其他人拉出并更新,然后mercurial从他们的文件系统中删除这些文件!

为什么Mercurial不能将这些文件识别为在其他人的存储库副本上使用hg forget未跟踪的文件,就像在更改产生的副本上一样?

是他们的另一种方法来解除跟踪文件,而不删除他们从任何人的文件系统?

Git和Mercurial在这里都有同样的问题:您有一些提交O(一个旧的),其中有一个文件F。现在你从O更新到new commit N,显示"没有文件F"。

版本控制系统应该做什么?嗯,这取决于为什么F被删除了,不是吗?如果我们删除了F,因为它以前使用过,但现在是无用的杂乱,它应该被删除

那么,为什么删除no-longer-used是正确的,但保持accidentally-committed也是正确的?如果VCS只看到commit O同时具有no-longer-used accidentally-committed,而commit N两个文件都没有,那么VCS应该如何知道这两个文件中的哪个是指的?

(据我所知,Git和Mercurial都没有很好的答案)

相关内容

  • 没有找到相关文章

最新更新