【问题标题】:Check if a url is a mercurial repository (like git ls-remote)检查一个 url 是否是一个 mercurial 存储库(如 git ls-remote)
【发布时间】:2013-04-22 11:16:58
【问题描述】:

如何检查 URL 是否指向 mercurial 存储库?使用 git,我会使用 git ls-remote $url 并检查返回值。 hg有类似的吗?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    您可以为此使用hg identify:它可以针对远程存储库运行,如果给定的路径不是存储库,Mercurial 将中止并退出代码 255。此存储库存在:

    $ hg identify https://bitbucket.org/mg/mercurial-talk; echo $?
    7788b512c5bd
    0
    

    这个没有:

    $ hg identify https://bitbucket.org/mg/git-talk; echo $?
    abort: HTTP Error 404: Not Found
    255
    

    您可能希望将 stdout 和 stderr 都重定向到 /dev/null

    【讨论】:

    • Martin,我能否请您在 Mercurial Tips&Tricks 中添加至少一些答案作为附加主题(或 - 创建自己的提示列表)?即:this,用自己的mergetool合并.hgtags,使用“internal:fail”测试合并是否微不足道
    • 优秀。这正好回答了我的问题。
    • @LazyBadger,你说的是wiki page吗?在那里链接答案会很酷,但我很遗憾地说我这些天没有花太多时间更新 wiki。不过,请添加您认为合适的链接!
    • 是的,这个 wiki 页面(或者在 Aragost 的 Mercurial Kickstart 中,如果您喜欢这种方式)。答案(此处除外):How do I check for potential merge/rebase conflicts in Mercurial?How to automatically merge .hgtags in Mercurial?
    【解决方案2】:

    AFAIK,ls-remote(在 repo 中使用)和 Git-URL 显示从本地到此 URL 的引用,是吗?

    如果您想知道 Mercurial 知道哪些远程存储库(未使用用于 push|pull,只有 知道),您可以使用 hg paths p>

    如果你想定义一些随机的 URL,是否是 Mercurial repo,你至少可以尝试从这个 URL 克隆

    【讨论】:

    • git ls-remote 可以在 git repo 之外使用。如果 $url 指向一个有效的 git repo,git ls-remote $url 返回 true。我正在为 mercurial 寻找类似的东西,而无需创建克隆。
    猜你喜欢
    • 2020-02-05
    • 2014-04-22
    • 2013-01-03
    • 2012-08-23
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多