随着时间的推移,许多开发人员提交了文件,然后将其添加到 .hgignore 中。据我所知,没有办法从 Mercurial 的历史中删除项目,这没关系。但我也听说有一种方法可以进行克隆,我认为使用转换插件来克隆/导出存储库,同时指定哪些文件不包含在转换中。
我忍不住认为有人有一个脚本可以使用 .hgignore 文件中的模式进行导出/过滤/转换。
有人创造过这样的野兽吗?
最佳答案
您可以从 .hgignore 创建一个文件映射,执行如下操作:
hg clone -U yourrepo temprepo # create a temp repo with no files in working dir
cd tmprepo
hg revert --all # put files in working dir
hg forget ** # un-add the files
hg status --ignored --no-status | sed 's/^/exclude /' > ../filemap
这将为您提供一个文件映射,您可以将其传递到 hg Convert
中,以删除所有添加的文件,这些文件将在您的 .hgignore 的情况下被忽略。
但请理解,运行转换会创建一个与您之前的存储库无关的全新存储库。所有现有克隆都将无法与新克隆一起使用。通常不值得。
关于mercurial - 想做一个带有 hgignore 模式过滤器的善变克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195506/