Có lệnh bzr để xem tất cả các nhánh của dự án trên Launchpad không?


10

Nếu bạn truy cập một dự án trên Launchpad, bạn có thể thấy tất cả các nhánh hoạt động của tất cả các nhà phát triển tham gia vào dự án.

bzrlệnh nào để thực hiện tương tự mà không cần truy cập trang của dự án trên Launchpad trong trình duyệt không?

Câu trả lời:


12

Tôi không biết bất kỳ bzrlệnh nào thực hiện điều này, nhưng thực ra kịch bản rất dễ sử dụng API python Launchpad . Ví dụ:

#!/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"

Vì vậy, với python find_branches.py delugechúng tôi nhận được:

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

Bạn có thể chạy hoang dã với nó và làm những việc như sắp xếp theo date_created, date_last_modifiedhoặc tạo dựa trên kinh nghiệm của riêng bạn cho những gì các chi nhánh là thú vị cho bạn. Xem:

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


4

Bazaar là một hệ thống kiểm soát phiên bản không hơn thế, dự án hoàn toàn tách biệt với Launchpad .

Có thể phân tích trực tiếp trang HTML của nhánh dự án hoặc nguồn cấp tin tức Atom của nó.

  1. Khai báo hàm 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

      lấy nguồn cấp tin tức chi nhánh (Atom xml)

    • xml2

      chuyển đổi tài liệu XML sang định dạng phẳng

    • grep "/feed/entry/title="

      lọc ra các dòng có "/ feed / entry / title =", các nút XML có chứa tên nhánh

    • cut -c 19-

      xóa "/ feed / entry / title =" khỏi dòng kết quả.

  2. Thí dụ:

    $ 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
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.