是否有 bzr 命令可以查看 Launchpad 上项目的所有分支?

是否有 bzr 命令可以查看 Launchpad 上项目的所有分支?

如果您访问 Launchpad 上的一个项目,您可以看到参与该项目的所有开发人员的所有活跃分支。

是否有bzr命令可以执行相同操作,而无需通过浏览器访问 Launchpad 上的项目页面?

答案1

我不知道有什么bzr命令可以做到这一点,但实际上使用脚本很容易Launchpad Python API。 例如:

#!/usr/bin/env python
import os, sys
from launchpadlib.launchpad import Launchpad

cachedir = os.path.expanduser("~/.launchpadlib/cache/")
launchpad = Launchpad.login_anonymously('find_branches',
                                        'production',
                                        cachedir)

try:
    project = launchpad.projects[sys.argv[1]]
    for b in project.getBranches():
        if b.lifecycle_status not in ["Abandoned", "Merged"]:
            print b.bzr_identity
except KeyError:
    print "Project unknown... \nUsage: " + sys.argv[0] + " lp_project_name"

因此python find_branches.py deluge我们得到:

lp:deluge
lp:~vcs-imports/deluge/trunk
lp:~mvoncken/deluge/ajax-template-dev
lp:~deluge-team/deluge/master
lp:~shaohao/deluge/0.9
lp:~damoxc/deluge/master

您可以随意使用它并执行诸如按date_created、排序之类的操作date_last_modified,或者针对您感兴趣的分支创建自己的启发式方法。请参阅:

https://launchpad.net/+apidoc/1.0.html#branch

答案2

市场是一个版本控制系统,仅此而已,完全独立的项目发射台

可以直接解析项目分支 HTML 页面或其 Atom 新闻提要。

  1. 声明一个 shell 函数:

    lslp() {
        wget -q -O - http://feeds.launchpad.net/$1/branches.atom | xml2 | grep "/feed/entry/title=" | cut -c 19-;
    }
    
    • wget -q -O - http://feeds.launchpad.net/projectname/branches.atom

      获取分支新闻提要(Atom xml)

    • xml2

      将 XML 文档转换为平面格式

    • grep "/feed/entry/title="

      过滤掉带有“/feed/entry/title=”的行,包含分支名称的 XML 节点

    • cut -c 19-

      从结果行中删除“/feed/entry/title=”。

  2. 例子:

    $ lslp deluge
    lp:deluge
    lp:~vcs-imports/deluge/trunk
    lp:~damoxc/deluge/master
    lp:~deluge-team/deluge/master
    lp:~shaohao/deluge/0.9
    lp:~mvoncken/deluge/ajax-template-dev
    

相关内容