2

从 subversion 转换,我借此机会清理了 repo,并将其拆分为三个大部分独立的项目。但是......我有一个文件映射,上面写着

exclude bot
include bot/aobiosbot.py

其中应该包括除“bot”子目录之外的所有内容,但仍包括该目录中的“aobiosbot.py”文件。问题是,转换后的仓库是空的(我用“hg clone”测试)。如果我添加一个“包含”。作为第 1 行,我得到了除“bot”目录之外的所有内容......包括“bot/aobiosbot.py”。但我告诉它包含该文件。

(真的,filemap 的文档很糟糕。必须准确指定排除/包含选项。我发现我倾向于同意 Joel 的规范……至少在这里。谁会笨拙……)

4

2 回答 2

1

嗯,我承认无法弄清楚为什么你所拥有的东西不起作用,但我可以确认它不是。

但是,对于我的测试 src 存储库,如下所示:

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

确信使用排除有更好的方法,但是如果不阅读转换代码,我就找不到它。

于 2010-01-06T05:32:34.567 回答
0

我已经通过从开发仓库(文件 hgext/convert/filemap.py)中获取一些代码来解决它。效果更好。:D

于 2010-01-07T22:14:20.847 回答