Mercurial文件映射排除包括。。。它不符合医生说的吗?
从subversion转换过来后,我借此机会清理了回购协议,并将其分为三个主要独立的项目。但是我有一个文件映射,上面写着Mercurial文件映射排除包括。。。它不符合医生说的吗?,mercurial,filemap,Mercurial,Filemap,从subversion转换过来后,我借此机会清理了回购协议,并将其分为三个主要独立的项目。但是我有一个文件映射,上面写着 exclude bot include bot/aobiosbot.py 它应该包括除“bot”子目录之外的所有内容,但仍然包括该目录中的“aobiosbot.py”文件。问题是,转换后的回购协议是空的(我使用“hg克隆”进行测试)。如果我添加一个“include.”作为第1行,我会得到除“bot”目录之外的所有内容。。。包括“bot/aobiosbot.py”。但我告诉它
exclude bot
include bot/aobiosbot.py
它应该包括除“bot”子目录之外的所有内容,但仍然包括该目录中的“aobiosbot.py”文件。问题是,转换后的回购协议是空的(我使用“hg克隆”进行测试)。如果我添加一个“include.”作为第1行,我会得到除“bot”目录之外的所有内容。。。包括“bot/aobiosbot.py”。但我告诉它要包括那个文件
(真的,filemap的文档很糟糕。排除/包括选项必须精确指定。我发现我倾向于同意Joel的规格…至少在这里是这样。谁会这么想…Hrm,我承认我无法弄清楚为什么你的东西不起作用,但我可以确认它不起作用 但是,我的测试src repo如下所示:
src
|-- bot
| |-- aobiosbot.py
| `-- excludeme
`-- dir1
`-- includeme
include dir1
include bot/aobiosbot.py
和这样的文件映射:
src
|-- bot
| |-- aobiosbot.py
| `-- excludeme
`-- dir1
`-- includeme
include dir1
include bot/aobiosbot.py
我的结论是:
dest
|-- bot
| `-- aobiosbot.py
`-- dir1
`-- includeme
通过在repo根目录中执行以下操作,可以快速填充该文件映射:
for thefile in * .* ; do
echo include $thefile >> ../filemap
done
我确信有一种更好的方法使用exclude,但是如果不阅读转换代码,我就找不到它。我从dev repo(文件hgext/convert/filemap.py)中获取了一些代码,解决了这个问题。效果好多了D感谢您的提示,帮助我们解决这个问题。还有踢我去看资料。有趣,非常有趣的代码。幸好这不是一个重要的问题。:-)@Maciek:也许我太晦涩了:我从Mercurial的开发版本中获取了代码。当时。所以,我的“更好用”指的是更新版本的hg。可悲的是,你说得对,我记不起到底有什么不同。我认为区别在于它现在的工作方式和我在OP中预期的一样。