【问题标题】:Mercurial filemap exclude include... does it not do what docs say?Mercurial 文件映射排除包含...它不符合文档所说的吗?
【发布时间】:2010-01-06 03:56:19
【问题描述】:

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

exclude bot
include bot/aobiosbot.py

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

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

【问题讨论】:

    标签: mercurial filemap


    【解决方案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
    

    确定有更好的方法使用排除,但没有阅读转换代码我找不到它。

    【讨论】:

    • 感谢您提供解决此问题的提示。并踢我阅读来源。有趣,非常有趣的代码。好在这不是一个重要的问题。 :-)
    【解决方案2】:

    我通过从开发仓库(文件 hgext/convert/filemap.py)获取一些代码解决了这个问题。效果更好。 :D

    【讨论】:

    • @Maciek:也许我太晦涩了:我从 Mercurial 的开发版本中获取代码。那时候。所以,我的“效果更好”是指较新版本的 hg。可悲的是,你就在那里,我不记得到底有什么不同。我认为不同之处在于它现在可以按照我在我的 OP 中的预期工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    相关资源
    最近更新 更多