mercurial - 想做一个带有 hgignore 模式过滤器的善变克隆

标签 mercurial clone partial

随着时间的推移,许多开发人员提交了文件,然后将其添加到 .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/

相关文章:

merge Mercurial fork,更改分支

Java 的 Eclipse Galileo 的 "clone()"方法生成器

java - 如何复制 java.util.list 集合

c# - 创建由数据库驱动的对象来填充 TreeView - 非常慢

javascript - Couchbase 部分更新未按预期工作

grails - 通过具有部分下载支持的 Controller 提供文件

version-control - Mercurial 钩子(Hook)没有正确执行

git - 如何配置自动推送?

Mercurial - smartencode - smartdecode - 多个文件模式 - Mercurial.ini

java - 在Java中使用正则表达式进行部分搜索