在我们的Mercurial仓库中,我们添加了一个非常大的文件(并执行了hg推送),然后删除了大文件(并进行了另一次推送)。
现在,如果有人hg clone
,他们仍然会删除那个大文件吗?我知道它不会出现在工作目录中,因为它已被删除,但该文件是否仍会被下拉并存储在Mercurial内部存储中?
我想确保人们不必下拉文件。我已经知道真正的大文件应该存储在Mercurial之外,所以我删除了该文件。但是我想知道人们是否还会删除大文件 - 在这种情况下我想我会从头开始重新创建存储库。
答案 0 :(得分:6)
当然它仍然会在存储库中。
您可以随时更新回旧版本,如果您更新回到提交文件时所获得的修订版本,那么它将一直存在于其中。
有两种方法可以缓解这种情况(当你提交时,而不是现在):
现在,你有四个选择:
hg convert
命令和一些过滤,--filemap
选项可用于此请注意,手动或通过hg convert
重建存储库将使所有克隆无效。任何尝试从旧克隆推送到新的中央克隆的人都会收到有关unrelated repositories
的消息。如果你的任何用户都是stupi ^ H ^ H ^ H ^ H ^ Hnot足够聪明,意识到强制推送是一个坏主意,那么你将遇到这种方法的问题。
答案 1 :(得分:4)
是的,该文件仍在历史记录中。如果要完全删除它,则需要使用Mercurial Queues - 请参阅Mercurial wiki上的Editing History。
请记住,随着修订ID的更改,这会破坏克隆。